Mercurial > hg > truffle
comparison src/cpu/x86/vm/templateTable_x86_64.cpp @ 13010:bd3237e0e18d
8026328: Setting a breakpoint on invokedynamic crashes the JVM
Reviewed-by: jrose, roland
author | twisti |
---|---|
date | Thu, 24 Oct 2013 16:23:07 -0700 |
parents | d13d7aba8c12 |
children | 42790b7e4d48 |
comparison
equal
deleted
inserted
replaced
12968:97d400662426 | 13010:bd3237e0e18d |
---|---|
2978 __ shrl(flags, ConstantPoolCacheEntry::tos_state_shift); | 2978 __ shrl(flags, ConstantPoolCacheEntry::tos_state_shift); |
2979 // Make sure we don't need to mask flags after the above shift | 2979 // Make sure we don't need to mask flags after the above shift |
2980 ConstantPoolCacheEntry::verify_tos_state_shift(); | 2980 ConstantPoolCacheEntry::verify_tos_state_shift(); |
2981 // load return address | 2981 // load return address |
2982 { | 2982 { |
2983 const address table_addr = (is_invokeinterface || is_invokedynamic) ? | 2983 const address table_addr = (address) Interpreter::invoke_return_entry_table_for(code); |
2984 (address)Interpreter::return_5_addrs_by_index_table() : | |
2985 (address)Interpreter::return_3_addrs_by_index_table(); | |
2986 ExternalAddress table(table_addr); | 2984 ExternalAddress table(table_addr); |
2987 __ lea(rscratch1, table); | 2985 __ lea(rscratch1, table); |
2988 __ movptr(flags, Address(rscratch1, flags, Address::times_ptr)); | 2986 __ movptr(flags, Address(rscratch1, flags, Address::times_ptr)); |
2989 } | 2987 } |
2990 | 2988 |