comparison src/share/vm/prims/methodHandles.hpp @ 3757:f8c9417e3571

7052219: JSR 292: Crash in ~BufferBlob::MethodHandles adapters Reviewed-by: twisti, kvn, jrose
author never
date Tue, 14 Jun 2011 14:41:33 -0700
parents cba7b5c2d53f
children 81d815b05abb
comparison
equal deleted inserted replaced
3755:5cf771a79037 3757:f8c9417e3571
579 enum { 579 enum {
580 // format of query to getConstant: 580 // format of query to getConstant:
581 GC_JVM_PUSH_LIMIT = 0, 581 GC_JVM_PUSH_LIMIT = 0,
582 GC_JVM_STACK_MOVE_UNIT = 1, 582 GC_JVM_STACK_MOVE_UNIT = 1,
583 GC_CONV_OP_IMPLEMENTED_MASK = 2, 583 GC_CONV_OP_IMPLEMENTED_MASK = 2,
584 GC_OP_ROT_ARGS_DOWN_LIMIT_BIAS = 3,
584 585
585 // format of result from getTarget / encode_target: 586 // format of result from getTarget / encode_target:
586 ETF_HANDLE_OR_METHOD_NAME = 0, // all available data (immediate MH or method) 587 ETF_HANDLE_OR_METHOD_NAME = 0, // all available data (immediate MH or method)
587 ETF_DIRECT_HANDLE = 1, // ultimate method handle (will be a DMH, may be self) 588 ETF_DIRECT_HANDLE = 1, // ultimate method handle (will be a DMH, may be self)
588 ETF_METHOD_NAME = 2, // ultimate method as MemberName 589 ETF_METHOD_NAME = 2, // ultimate method as MemberName
589 ETF_REFLECT_METHOD = 3 // ultimate method as java.lang.reflect object (sans refClass) 590 ETF_REFLECT_METHOD = 3, // ultimate method as java.lang.reflect object (sans refClass)
591
592 // ad hoc constants
593 OP_ROT_ARGS_DOWN_LIMIT_BIAS = -1
590 }; 594 };
591 static int get_named_constant(int which, Handle name_box, TRAPS); 595 static int get_named_constant(int which, Handle name_box, TRAPS);
592 static oop encode_target(Handle mh, int format, TRAPS); // report vmtarget (to Java code) 596 static oop encode_target(Handle mh, int format, TRAPS); // report vmtarget (to Java code)
593 static bool class_cast_needed(klassOop src, klassOop dst); 597 static bool class_cast_needed(klassOop src, klassOop dst);
594 598
826 //------------------------------------------------------------------------------ 830 //------------------------------------------------------------------------------
827 // MethodHandlesAdapterGenerator 831 // MethodHandlesAdapterGenerator
828 // 832 //
829 class MethodHandlesAdapterGenerator : public StubCodeGenerator { 833 class MethodHandlesAdapterGenerator : public StubCodeGenerator {
830 public: 834 public:
831 MethodHandlesAdapterGenerator(CodeBuffer* code) : StubCodeGenerator(code) {} 835 MethodHandlesAdapterGenerator(CodeBuffer* code) : StubCodeGenerator(code, PrintMethodHandleStubs) {}
832 836
833 void generate(); 837 void generate();
834 }; 838 };
835 839
836 #endif // SHARE_VM_PRIMS_METHODHANDLES_HPP 840 #endif // SHARE_VM_PRIMS_METHODHANDLES_HPP