comparison src/cpu/x86/vm/graalCodeInstaller_x86.hpp @ 14574:6bab029d6e3a

removed com/oracle/graal/hotspot/bridge/Marks.java and replaced with enum
author twisti
date Mon, 17 Mar 2014 17:32:35 -0700
parents e14198669e5c
children
comparison
equal deleted inserted replaced
14573:e3888db8b8a1 14574:6bab029d6e3a
149 if (hotspot_method->is_a(HotSpotResolvedJavaMethod::klass())) { 149 if (hotspot_method->is_a(HotSpotResolvedJavaMethod::klass())) {
150 method = getMethodFromHotSpotMethod(hotspot_method); 150 method = getMethodFromHotSpotMethod(hotspot_method);
151 } 151 }
152 #endif 152 #endif
153 switch (_next_call_type) { 153 switch (_next_call_type) {
154 case MARK_INLINE_INVOKE: 154 case INLINE_INVOKE:
155 break; 155 break;
156 case MARK_INVOKEVIRTUAL: 156 case INVOKEVIRTUAL:
157 case MARK_INVOKEINTERFACE: { 157 case INVOKEINTERFACE: {
158 assert(method == NULL || !method->is_static(), "cannot call static method with invokeinterface"); 158 assert(method == NULL || !method->is_static(), "cannot call static method with invokeinterface");
159 159
160 NativeCall* call = nativeCall_at(_instructions->start() + pc_offset); 160 NativeCall* call = nativeCall_at(_instructions->start() + pc_offset);
161 call->set_destination(SharedRuntime::get_resolve_virtual_call_stub()); 161 call->set_destination(SharedRuntime::get_resolve_virtual_call_stub());
162 _instructions->relocate(call->instruction_address(), 162 _instructions->relocate(call->instruction_address(),
163 virtual_call_Relocation::spec(_invoke_mark_pc), 163 virtual_call_Relocation::spec(_invoke_mark_pc),
164 Assembler::call32_operand); 164 Assembler::call32_operand);
165 break; 165 break;
166 } 166 }
167 case MARK_INVOKESTATIC: { 167 case INVOKESTATIC: {
168 assert(method == NULL || method->is_static(), "cannot call non-static method with invokestatic"); 168 assert(method == NULL || method->is_static(), "cannot call non-static method with invokestatic");
169 169
170 NativeCall* call = nativeCall_at(_instructions->start() + pc_offset); 170 NativeCall* call = nativeCall_at(_instructions->start() + pc_offset);
171 call->set_destination(SharedRuntime::get_resolve_static_call_stub()); 171 call->set_destination(SharedRuntime::get_resolve_static_call_stub());
172 _instructions->relocate(call->instruction_address(), 172 _instructions->relocate(call->instruction_address(),
173 relocInfo::static_call_type, Assembler::call32_operand); 173 relocInfo::static_call_type, Assembler::call32_operand);
174 break; 174 break;
175 } 175 }
176 case MARK_INVOKESPECIAL: { 176 case INVOKESPECIAL: {
177 assert(method == NULL || !method->is_static(), "cannot call static method with invokespecial"); 177 assert(method == NULL || !method->is_static(), "cannot call static method with invokespecial");
178 NativeCall* call = nativeCall_at(_instructions->start() + pc_offset); 178 NativeCall* call = nativeCall_at(_instructions->start() + pc_offset);
179 call->set_destination(SharedRuntime::get_resolve_opt_virtual_call_stub()); 179 call->set_destination(SharedRuntime::get_resolve_opt_virtual_call_stub());
180 _instructions->relocate(call->instruction_address(), 180 _instructions->relocate(call->instruction_address(),
181 relocInfo::opt_virtual_call_type, Assembler::call32_operand); 181 relocInfo::opt_virtual_call_type, Assembler::call32_operand);
195 } 195 }
196 196
197 197
198 inline void CodeInstaller::pd_relocate_poll(address pc, jint mark) { 198 inline void CodeInstaller::pd_relocate_poll(address pc, jint mark) {
199 switch (mark) { 199 switch (mark) {
200 case MARK_POLL_NEAR: { 200 case POLL_NEAR: {
201 relocate_poll_near(pc); 201 relocate_poll_near(pc);
202 _instructions->relocate(pc, relocInfo::poll_type, Assembler::disp32_operand); 202 _instructions->relocate(pc, relocInfo::poll_type, Assembler::disp32_operand);
203 break; 203 break;
204 } 204 }
205 case MARK_POLL_FAR: 205 case POLL_FAR:
206 // This is a load from a register so there is no relocatable operand. 206 // This is a load from a register so there is no relocatable operand.
207 // We just have to ensure that the format is not disp32_operand 207 // We just have to ensure that the format is not disp32_operand
208 // so that poll_Relocation::fix_relocation_after_move does the right 208 // so that poll_Relocation::fix_relocation_after_move does the right
209 // thing (i.e. ignores this relocation record) 209 // thing (i.e. ignores this relocation record)
210 _instructions->relocate(pc, relocInfo::poll_type, Assembler::imm_operand); 210 _instructions->relocate(pc, relocInfo::poll_type, Assembler::imm_operand);
211 break; 211 break;
212 case MARK_POLL_RETURN_NEAR: { 212 case POLL_RETURN_NEAR: {
213 relocate_poll_near(pc); 213 relocate_poll_near(pc);
214 _instructions->relocate(pc, relocInfo::poll_return_type, Assembler::disp32_operand); 214 _instructions->relocate(pc, relocInfo::poll_return_type, Assembler::disp32_operand);
215 break; 215 break;
216 } 216 }
217 case MARK_POLL_RETURN_FAR: 217 case POLL_RETURN_FAR:
218 // see comment above for MARK_POLL_FAR 218 // see comment above for MARK_POLL_FAR
219 _instructions->relocate(pc, relocInfo::poll_return_type, Assembler::imm_operand); 219 _instructions->relocate(pc, relocInfo::poll_return_type, Assembler::imm_operand);
220 break; 220 break;
221 default: 221 default:
222 fatal("invalid mark value"); 222 fatal("invalid mark value");