comparison c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotXirGenerator.java @ 2183:eed52202caea

Added parameter to array store exception runtime call (new in HotSpot).
author Thomas Wuerthinger <wuerthinger@ssw.jku.at>
date Wed, 16 Feb 2011 15:13:34 +0100
parents 50b45e2d9725
children 2a36994d0967
comparison
equal deleted inserted replaced
2182:9569fdf936ff 2183:eed52202caea
994 assert kind == CiKind.Object; 994 assert kind == CiKind.Object;
995 useRegisters(asm, AMD64.rax); 995 useRegisters(asm, AMD64.rax);
996 asm.bindOutOfLine(slowStoreCheck); 996 asm.bindOutOfLine(slowStoreCheck);
997 checkSubtype(asm, temp, valueHub, compHub); 997 checkSubtype(asm, temp, valueHub, compHub);
998 asm.jneq(store, temp, asm.w(0)); 998 asm.jneq(store, temp, asm.w(0));
999 XirOperand scratch = asm.createRegisterTemp("scratch", CiKind.Object, AMD64.r10);
1000 asm.mov(scratch, valueHub);
999 asm.callRuntime(config.throwArrayStoreException, null); 1001 asm.callRuntime(config.throwArrayStoreException, null);
1000 asm.jmp(store); 1002 asm.jmp(store);
1001 } 1003 }
1002 1004
1003 return asm.finishTemplate("arraycopy<" + kind + ">"); 1005 return asm.finishTemplate("arraycopy<" + kind + ">");
1082 if (is(STORE_CHECK, flags) && kind == CiKind.Object) { 1084 if (is(STORE_CHECK, flags) && kind == CiKind.Object) {
1083 useRegisters(asm, AMD64.rax); 1085 useRegisters(asm, AMD64.rax);
1084 asm.bindOutOfLine(slowStoreCheck); 1086 asm.bindOutOfLine(slowStoreCheck);
1085 checkSubtype(asm, temp, valueHub, compHub); 1087 checkSubtype(asm, temp, valueHub, compHub);
1086 asm.jneq(store, temp, asm.w(0)); 1088 asm.jneq(store, temp, asm.w(0));
1089 XirOperand scratch = asm.createRegisterTemp("scratch", CiKind.Object, AMD64.r10);
1090 asm.mov(scratch, valueHub);
1087 asm.callRuntime(config.throwArrayStoreException, null); 1091 asm.callRuntime(config.throwArrayStoreException, null);
1088 asm.jmp(store); 1092 asm.jmp(store);
1089 } 1093 }
1090 return asm.finishTemplate("arraystore<" + kind + ">"); 1094 return asm.finishTemplate("arraystore<" + kind + ">");
1091 } 1095 }