Mercurial > hg > truffle
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 |