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