Mercurial > hg > graal-jvmci-8
comparison src/share/vm/prims/methodHandles.hpp @ 3274:2a23b1b5a0a8
7018355: JSR 292: VM crash in DefNewGeneration::copy_to_survivor_space
Reviewed-by: kvn, jrose
author | twisti |
---|---|
date | Mon, 18 Apr 2011 01:33:28 -0700 |
parents | 8033953d67ff |
children | 167b70ff3abc |
comparison
equal
deleted
inserted
replaced
2485:97e8046e2562 | 3274:2a23b1b5a0a8 |
---|---|
263 | 263 |
264 static inline address from_compiled_entry(EntryKind ek); | 264 static inline address from_compiled_entry(EntryKind ek); |
265 static inline address from_interpreted_entry(EntryKind ek); | 265 static inline address from_interpreted_entry(EntryKind ek); |
266 | 266 |
267 // helpers for decode_method. | 267 // helpers for decode_method. |
268 static methodOop decode_methodOop(methodOop m, int& decode_flags_result); | 268 static methodOop decode_methodOop(methodOop m, int& decode_flags_result); |
269 static methodOop decode_vmtarget(oop vmtarget, int vmindex, oop mtype, klassOop& receiver_limit_result, int& decode_flags_result); | 269 static methodHandle decode_vmtarget(oop vmtarget, int vmindex, oop mtype, KlassHandle& receiver_limit_result, int& decode_flags_result); |
270 static methodOop decode_MemberName(oop mname, klassOop& receiver_limit_result, int& decode_flags_result); | 270 static methodHandle decode_MemberName(oop mname, KlassHandle& receiver_limit_result, int& decode_flags_result); |
271 static methodOop decode_MethodHandle(oop mh, klassOop& receiver_limit_result, int& decode_flags_result); | 271 static methodHandle decode_MethodHandle(oop mh, KlassHandle& receiver_limit_result, int& decode_flags_result); |
272 static methodOop decode_DirectMethodHandle(oop mh, klassOop& receiver_limit_result, int& decode_flags_result); | 272 static methodHandle decode_DirectMethodHandle(oop mh, KlassHandle& receiver_limit_result, int& decode_flags_result); |
273 static methodOop decode_BoundMethodHandle(oop mh, klassOop& receiver_limit_result, int& decode_flags_result); | 273 static methodHandle decode_BoundMethodHandle(oop mh, KlassHandle& receiver_limit_result, int& decode_flags_result); |
274 static methodOop decode_AdapterMethodHandle(oop mh, klassOop& receiver_limit_result, int& decode_flags_result); | 274 static methodHandle decode_AdapterMethodHandle(oop mh, KlassHandle& receiver_limit_result, int& decode_flags_result); |
275 | 275 |
276 // Find out how many stack slots an mh pushes or pops. | 276 // Find out how many stack slots an mh pushes or pops. |
277 // The result is *not* reported as a multiple of stack_move_unit(); | 277 // The result is *not* reported as a multiple of stack_move_unit(); |
278 // It is a signed net number of pushes (a difference in vmslots). | 278 // It is a signed net number of pushes (a difference in vmslots). |
279 // To compare with a stack_move value, first multiply by stack_move_unit(). | 279 // To compare with a stack_move value, first multiply by stack_move_unit(). |
315 _dmf_binds_argument = 0x10, | 315 _dmf_binds_argument = 0x10, |
316 _DMF_BOUND_MASK = (_dmf_binds_argument*2 - _dmf_binds_method), | 316 _DMF_BOUND_MASK = (_dmf_binds_argument*2 - _dmf_binds_method), |
317 _dmf_adapter_lsb = 0x20, | 317 _dmf_adapter_lsb = 0x20, |
318 _DMF_ADAPTER_MASK = (_dmf_adapter_lsb << CONV_OP_LIMIT) - _dmf_adapter_lsb | 318 _DMF_ADAPTER_MASK = (_dmf_adapter_lsb << CONV_OP_LIMIT) - _dmf_adapter_lsb |
319 }; | 319 }; |
320 static methodOop decode_method(oop x, klassOop& receiver_limit_result, int& decode_flags_result); | 320 static methodHandle decode_method(oop x, KlassHandle& receiver_limit_result, int& decode_flags_result); |
321 enum { | 321 enum { |
322 // format of query to getConstant: | 322 // format of query to getConstant: |
323 GC_JVM_PUSH_LIMIT = 0, | 323 GC_JVM_PUSH_LIMIT = 0, |
324 GC_JVM_STACK_MOVE_UNIT = 1, | 324 GC_JVM_STACK_MOVE_UNIT = 1, |
325 GC_CONV_OP_IMPLEMENTED_MASK = 2, | 325 GC_CONV_OP_IMPLEMENTED_MASK = 2, |