215 |
215 |
216 @Test |
216 @Test |
217 public void testConstObject() { |
217 public void testConstObject() { |
218 ResolvedJavaType type = metaAccess.lookupJavaType(objectOnStack()); |
218 ResolvedJavaType type = metaAccess.lookupJavaType(objectOnStack()); |
219 DebugInfoCompiler compiler = (asm, values) -> { |
219 DebugInfoCompiler compiler = (asm, values) -> { |
220 values[0] = type.getJavaClass(); |
220 values[0] = constantReflection.asJavaClass(type); |
221 return null; |
221 return null; |
222 }; |
222 }; |
223 testObjectOnStack(compiler); |
223 testObjectOnStack(compiler); |
224 testObjectInLocal(compiler); |
224 testObjectInLocal(compiler); |
225 } |
225 } |
226 |
226 |
227 @Test |
227 @Test |
228 public void testRegObject() { |
228 public void testRegObject() { |
229 ResolvedJavaType type = metaAccess.lookupJavaType(objectOnStack()); |
229 ResolvedJavaType type = metaAccess.lookupJavaType(objectOnStack()); |
230 DebugInfoCompiler compiler = (asm, values) -> { |
230 DebugInfoCompiler compiler = (asm, values) -> { |
231 Register reg = asm.emitLoadPointer((HotSpotConstant) type.getJavaClass()); |
231 Register reg = asm.emitLoadPointer((HotSpotConstant) constantReflection.asJavaClass(type)); |
232 values[0] = reg.asValue(target.getLIRKind(JavaKind.Object)); |
232 values[0] = reg.asValue(target.getLIRKind(JavaKind.Object)); |
233 return null; |
233 return null; |
234 }; |
234 }; |
235 testObjectOnStack(compiler); |
235 testObjectOnStack(compiler); |
236 testObjectInLocal(compiler); |
236 testObjectInLocal(compiler); |
238 |
238 |
239 @Test |
239 @Test |
240 public void testStackObject() { |
240 public void testStackObject() { |
241 ResolvedJavaType type = metaAccess.lookupJavaType(objectOnStack()); |
241 ResolvedJavaType type = metaAccess.lookupJavaType(objectOnStack()); |
242 DebugInfoCompiler compiler = (asm, values) -> { |
242 DebugInfoCompiler compiler = (asm, values) -> { |
243 Register reg = asm.emitLoadPointer((HotSpotConstant) type.getJavaClass()); |
243 Register reg = asm.emitLoadPointer((HotSpotConstant) constantReflection.asJavaClass(type)); |
244 values[0] = asm.emitPointerToStack(reg); |
244 values[0] = asm.emitPointerToStack(reg); |
245 return null; |
245 return null; |
246 }; |
246 }; |
247 testObjectOnStack(compiler); |
247 testObjectOnStack(compiler); |
248 testObjectInLocal(compiler); |
248 testObjectInLocal(compiler); |
251 @Test |
251 @Test |
252 public void testRegNarrowObject() { |
252 public void testRegNarrowObject() { |
253 Assume.assumeTrue(HotSpotVMConfig.config().useCompressedOops); |
253 Assume.assumeTrue(HotSpotVMConfig.config().useCompressedOops); |
254 ResolvedJavaType type = metaAccess.lookupJavaType(objectOnStack()); |
254 ResolvedJavaType type = metaAccess.lookupJavaType(objectOnStack()); |
255 DebugInfoCompiler compiler = (asm, values) -> { |
255 DebugInfoCompiler compiler = (asm, values) -> { |
256 HotSpotConstant wide = (HotSpotConstant) type.getJavaClass(); |
256 HotSpotConstant wide = (HotSpotConstant) constantReflection.asJavaClass(type); |
257 Register reg = asm.emitLoadPointer((HotSpotConstant) wide.compress()); |
257 Register reg = asm.emitLoadPointer((HotSpotConstant) wide.compress()); |
258 values[0] = reg.asValue(asm.narrowOopKind); |
258 values[0] = reg.asValue(asm.narrowOopKind); |
259 return null; |
259 return null; |
260 }; |
260 }; |
261 testObjectOnStack(compiler); |
261 testObjectOnStack(compiler); |
265 @Test |
265 @Test |
266 public void testStackNarrowObject() { |
266 public void testStackNarrowObject() { |
267 Assume.assumeTrue(HotSpotVMConfig.config().useCompressedOops); |
267 Assume.assumeTrue(HotSpotVMConfig.config().useCompressedOops); |
268 ResolvedJavaType type = metaAccess.lookupJavaType(objectOnStack()); |
268 ResolvedJavaType type = metaAccess.lookupJavaType(objectOnStack()); |
269 DebugInfoCompiler compiler = (asm, values) -> { |
269 DebugInfoCompiler compiler = (asm, values) -> { |
270 HotSpotConstant wide = (HotSpotConstant) type.getJavaClass(); |
270 HotSpotConstant wide = (HotSpotConstant) constantReflection.asJavaClass(type); |
271 Register reg = asm.emitLoadPointer((HotSpotConstant) wide.compress()); |
271 Register reg = asm.emitLoadPointer((HotSpotConstant) wide.compress()); |
272 values[0] = asm.emitNarrowPointerToStack(reg); |
272 values[0] = asm.emitNarrowPointerToStack(reg); |
273 return null; |
273 return null; |
274 }; |
274 }; |
275 testObjectOnStack(compiler); |
275 testObjectOnStack(compiler); |