Mercurial > hg > truffle
comparison src/cpu/x86/vm/c1_Runtime1_x86.cpp @ 1423:760213a60e8b
* rewrite of the code installation
* partial support for safepoints
* macro-based CiTargetMethod interface
* code stub support
author | Lukas Stadler <lukas.stadler@oracle.com> |
---|---|
date | Mon, 16 Aug 2010 18:59:36 -0700 |
parents | e1a275dbc8cd |
children | abc670a709dc |
comparison
equal
deleted
inserted
replaced
1422:3483ec571caf | 1423:760213a60e8b |
---|---|
1364 | 1364 |
1365 // This is called by pushing args and not with C abi | 1365 // This is called by pushing args and not with C abi |
1366 __ movptr(rsi, Address(rsp, (klass_off) * VMRegImpl::stack_slot_size)); // subclass | 1366 __ movptr(rsi, Address(rsp, (klass_off) * VMRegImpl::stack_slot_size)); // subclass |
1367 __ movptr(rax, Address(rsp, (sup_k_off) * VMRegImpl::stack_slot_size)); // superclass | 1367 __ movptr(rax, Address(rsp, (sup_k_off) * VMRegImpl::stack_slot_size)); // superclass |
1368 | 1368 |
1369 Label success; | |
1369 Label miss; | 1370 Label miss; |
1371 if (UseC1X) { | |
1372 // TODO this should really be within the XirSnippets | |
1373 __ check_klass_subtype_fast_path(rsi, rax, rcx, &success, &miss, NULL); | |
1374 }; | |
1375 | |
1370 __ check_klass_subtype_slow_path(rsi, rax, rcx, rdi, NULL, &miss); | 1376 __ check_klass_subtype_slow_path(rsi, rax, rcx, rdi, NULL, &miss); |
1371 | 1377 |
1372 // fallthrough on success: | 1378 // fallthrough on success: |
1379 __ bind(success); | |
1373 __ movptr(Address(rsp, (result_off) * VMRegImpl::stack_slot_size), 1); // result | 1380 __ movptr(Address(rsp, (result_off) * VMRegImpl::stack_slot_size), 1); // result |
1374 __ pop(rax); | 1381 __ pop(rax); |
1375 __ pop(rcx); | 1382 __ pop(rcx); |
1376 __ pop(rsi); | 1383 __ pop(rsi); |
1377 __ pop(rdi); | 1384 __ pop(rdi); |