Mercurial > hg > graal-jvmci-8
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"); |