Mercurial > hg > truffle
comparison src/cpu/x86/vm/graalRuntime_x86.cpp @ 7220:fcae6d960acd
added more compiler intrinsics
author | Christian Haeubl <haeubl@ssw.jku.at> |
---|---|
date | Tue, 11 Dec 2012 08:28:00 +0100 |
parents | 1baf7f1e3f23 |
children | 2ae3e26b7e9a |
comparison
equal
deleted
inserted
replaced
7219:69b3b2695fea | 7220:fcae6d960acd |
---|---|
1177 } | 1177 } |
1178 __ ret(0); | 1178 __ ret(0); |
1179 break; | 1179 break; |
1180 } | 1180 } |
1181 | 1181 |
1182 case graal_identity_hash_code_id: { | |
1183 Register obj = j_rarg0; // Incoming | |
1184 __ set_info("identity_hash_code", dont_gc_arguments); | |
1185 __ enter(); | |
1186 OopMap* map = save_live_registers(sasm, 1); | |
1187 int call_offset = __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, graal_identity_hash_code), obj); | |
1188 oop_maps = new OopMapSet(); | |
1189 oop_maps->add_gc_map(call_offset, map); | |
1190 restore_live_registers_except_rax(sasm); | |
1191 __ leave(); | |
1192 __ ret(0); | |
1193 break; | |
1194 } | |
1195 case graal_thread_is_interrupted_id: { | |
1196 Register thread = j_rarg0; | |
1197 Register clear_interrupted = j_rarg1; | |
1198 | |
1199 __ set_info("identity_hash_code", dont_gc_arguments); | |
1200 __ enter(); | |
1201 OopMap* map = save_live_registers(sasm, 1); | |
1202 int call_offset = __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, graal_thread_is_interrupted), thread, clear_interrupted); | |
1203 oop_maps = new OopMapSet(); | |
1204 oop_maps->add_gc_map(call_offset, map); | |
1205 restore_live_registers_except_rax(sasm); | |
1206 __ leave(); | |
1207 __ ret(0); | |
1208 break; | |
1209 } | |
1210 | |
1182 default: | 1211 default: |
1183 { GraalStubFrame f(sasm, "unimplemented entry", dont_gc_arguments); | 1212 { GraalStubFrame f(sasm, "unimplemented entry", dont_gc_arguments); |
1184 __ movptr(rax, (int)id); | 1213 __ movptr(rax, (int)id); |
1185 __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, unimplemented_entry), rax); | 1214 __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, unimplemented_entry), rax); |
1186 __ should_not_reach_here(); | 1215 __ should_not_reach_here(); |