Mercurial > hg > graal-jvmci-8
comparison c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotXirGenerator.java @ 1478:5571b97fc1ec
More JNI global handle clean ups.
author | Thomas Wuerthinger <wuerthinger@ssw.jku.at> |
---|---|
date | Fri, 26 Nov 2010 19:45:05 +0100 |
parents | 2c754f3a2722 |
children | 2fe369533fed |
comparison
equal
deleted
inserted
replaced
1477:30e1f67703da | 1478:5571b97fc1ec |
---|---|
370 // -- out of line ------------------------------------------------------- | 370 // -- out of line ------------------------------------------------------- |
371 fieldPatching.emitOutOfLine(); | 371 fieldPatching.emitOutOfLine(); |
372 return asm.finishTemplate("putfield<" + kind + ">"); | 372 return asm.finishTemplate("putfield<" + kind + ">"); |
373 } | 373 } |
374 XirParameter fieldOffset = asm.createConstantInputParameter("fieldOffset", CiKind.Int); | 374 XirParameter fieldOffset = asm.createConstantInputParameter("fieldOffset", CiKind.Int); |
375 if (kind == CiKind.Object) { | |
376 verifyPointer(asm, value); | |
377 } | |
375 if (is(NULL_CHECK, flags)) { | 378 if (is(NULL_CHECK, flags)) { |
376 asm.nop(1); | 379 asm.nop(1); |
377 asm.mark(MARK_IMPLICIT_NULL); | 380 asm.mark(MARK_IMPLICIT_NULL); |
378 } | |
379 if (kind == CiKind.Object) { | |
380 verifyPointer(asm, value); | |
381 } | 381 } |
382 asm.pstore(kind, object, fieldOffset, value, is(NULL_CHECK, flags)); | 382 asm.pstore(kind, object, fieldOffset, value, is(NULL_CHECK, flags)); |
383 if (is(WRITE_BARRIER, flags)) { | 383 if (is(WRITE_BARRIER, flags)) { |
384 XirOperand temp = asm.createTemp("temp", CiKind.Word); | 384 XirOperand temp = asm.createTemp("temp", CiKind.Word); |
385 asm.mov(temp, object); | 385 asm.mov(temp, object); |