comparison src/cpu/x86/vm/interp_masm_x86_32.hpp @ 726:be93aad57795

6655646: dynamic languages need dynamically linked call sites Summary: invokedynamic instruction (JSR 292 RI) Reviewed-by: twisti, never
author jrose
date Tue, 21 Apr 2009 23:21:04 -0700
parents e5b0439ef4ae
children 87684f1a88b5
comparison
equal deleted inserted replaced
725:928912ce8438 726:be93aad57795
74 void get_constant_pool(Register reg) { get_method(reg); movptr(reg, Address(reg, methodOopDesc::constants_offset())); } 74 void get_constant_pool(Register reg) { get_method(reg); movptr(reg, Address(reg, methodOopDesc::constants_offset())); }
75 void get_constant_pool_cache(Register reg) { get_constant_pool(reg); movptr(reg, Address(reg, constantPoolOopDesc::cache_offset_in_bytes())); } 75 void get_constant_pool_cache(Register reg) { get_constant_pool(reg); movptr(reg, Address(reg, constantPoolOopDesc::cache_offset_in_bytes())); }
76 void get_cpool_and_tags(Register cpool, Register tags) { get_constant_pool(cpool); movptr(tags, Address(cpool, constantPoolOopDesc::tags_offset_in_bytes())); 76 void get_cpool_and_tags(Register cpool, Register tags) { get_constant_pool(cpool); movptr(tags, Address(cpool, constantPoolOopDesc::tags_offset_in_bytes()));
77 } 77 }
78 void get_unsigned_2_byte_index_at_bcp(Register reg, int bcp_offset); 78 void get_unsigned_2_byte_index_at_bcp(Register reg, int bcp_offset);
79 void get_cache_and_index_at_bcp(Register cache, Register index, int bcp_offset); 79 void get_cache_and_index_at_bcp(Register cache, Register index, int bcp_offset, bool giant_index = false);
80 void get_cache_entry_pointer_at_bcp(Register cache, Register tmp, int bcp_offset); 80 void get_cache_entry_pointer_at_bcp(Register cache, Register tmp, int bcp_offset, bool giant_index = false);
81 void get_cache_index_at_bcp(Register index, int bcp_offset, bool giant_index = false);
81 82
82 // Expression stack 83 // Expression stack
83 void f2ieee(); // truncate ftos to 32bits 84 void f2ieee(); // truncate ftos to 32bits
84 void d2ieee(); // truncate dtos to 64bits 85 void d2ieee(); // truncate dtos to 64bits
85 86
224 225
225 void profile_taken_branch(Register mdp, Register bumped_count); 226 void profile_taken_branch(Register mdp, Register bumped_count);
226 void profile_not_taken_branch(Register mdp); 227 void profile_not_taken_branch(Register mdp);
227 void profile_call(Register mdp); 228 void profile_call(Register mdp);
228 void profile_final_call(Register mdp); 229 void profile_final_call(Register mdp);
229 void profile_virtual_call(Register receiver, Register mdp, Register scratch2); 230 void profile_virtual_call(Register receiver, Register mdp, Register scratch2,
231 bool receiver_can_be_null = false);
230 void profile_ret(Register return_bci, Register mdp); 232 void profile_ret(Register return_bci, Register mdp);
231 void profile_null_seen(Register mdp); 233 void profile_null_seen(Register mdp);
232 void profile_typecheck(Register mdp, Register klass, Register scratch); 234 void profile_typecheck(Register mdp, Register klass, Register scratch);
233 void profile_typecheck_failed(Register mdp); 235 void profile_typecheck_failed(Register mdp);
234 void profile_switch_default(Register mdp); 236 void profile_switch_default(Register mdp);