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);