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