Mercurial > hg > graal-jvmci-8
comparison src/cpu/x86/vm/graalRuntime_x86.cpp @ 8502:ff4fa8b0516e
-Create push patch
author | Christos Kotselidis <christos.kotselidis@oracle.com> |
---|---|
date | Wed, 20 Mar 2013 20:13:08 +0100 |
parents | 96a337d307bd |
children | c3657d00e343 |
comparison
equal
deleted
inserted
replaced
8501:41fc46da946a | 8502:ff4fa8b0516e |
---|---|
1203 // doing last java sp setup manually) | 1203 // doing last java sp setup manually) |
1204 int call_offset = __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, graal_wb_pre_call), obj); | 1204 int call_offset = __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, graal_wb_pre_call), obj); |
1205 | 1205 |
1206 oop_maps = new OopMapSet(); | 1206 oop_maps = new OopMapSet(); |
1207 oop_maps->add_gc_map(call_offset, map); | 1207 oop_maps->add_gc_map(call_offset, map); |
1208 restore_live_registers(sasm, save_fpu_registers); | 1208 restore_live_registers(sasm); |
1209 } | 1209 } |
1210 __ ret(0); | 1210 __ ret(0); |
1211 break; | 1211 break; |
1212 } | 1212 } |
1213 case graal_wb_post_call_id: { | 1213 case graal_wb_post_call_id: { |
1214 Register obj = j_rarg0; | 1214 Register obj = j_rarg0; |
1215 Register caddr = j_rarg1; | |
1215 { | 1216 { |
1216 GraalStubFrame f(sasm, "graal_wb_post_call", dont_gc_arguments); | 1217 GraalStubFrame f(sasm, "graal_wb_post_call", dont_gc_arguments); |
1217 OopMap* map = save_live_registers(sasm, 2, save_fpu_registers); | 1218 OopMap* map = save_live_registers(sasm, 2, save_fpu_registers); |
1218 | 1219 |
1219 // note: really a leaf routine but must setup last java sp | 1220 // note: really a leaf routine but must setup last java sp |
1220 // => use call_RT for now (speed can be improved by | 1221 // => use call_RT for now (speed can be improved by |
1221 // doing last java sp setup manually) | 1222 // doing last java sp setup manually) |
1222 int call_offset = __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, graal_wb_post_call), obj); | 1223 int call_offset = __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, graal_wb_post_call), obj, caddr); |
1223 | 1224 |
1224 oop_maps = new OopMapSet(); | 1225 oop_maps = new OopMapSet(); |
1225 oop_maps->add_gc_map(call_offset, map); | 1226 oop_maps->add_gc_map(call_offset, map); |
1226 restore_live_registers(sasm, save_fpu_registers); | 1227 restore_live_registers(sasm); |
1227 } | 1228 } |
1228 __ ret(0); | 1229 __ ret(0); |
1229 break; | 1230 break; |
1230 } | 1231 } |
1231 case graal_ver_oop_id: { | 1232 |
1232 Register obj = j_rarg0; | |
1233 { | |
1234 GraalStubFrame f(sasm, "graal_wb_post_call", dont_gc_arguments); | |
1235 OopMap* map = save_live_registers(sasm, 2, save_fpu_registers); | |
1236 | |
1237 // note: really a leaf routine but must setup last java sp | |
1238 // => use call_RT for now (speed can be improved by | |
1239 // doing last java sp setup manually) | |
1240 int call_offset = __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, graal_ver_oop), obj); | |
1241 | |
1242 oop_maps = new OopMapSet(); | |
1243 oop_maps->add_gc_map(call_offset, map); | |
1244 restore_live_registers(sasm, save_fpu_registers); | |
1245 } | |
1246 __ ret(0); | |
1247 break; | |
1248 } | |
1249 case graal_identity_hash_code_id: { | 1233 case graal_identity_hash_code_id: { |
1250 Register obj = j_rarg0; // Incoming | 1234 Register obj = j_rarg0; // Incoming |
1251 __ set_info("identity_hash_code", dont_gc_arguments); | 1235 __ set_info("identity_hash_code", dont_gc_arguments); |
1252 __ enter(); | 1236 __ enter(); |
1253 OopMap* map = save_live_registers(sasm, 1); | 1237 OopMap* map = save_live_registers(sasm, 1); |