Mercurial > hg > truffle
comparison src/cpu/x86/vm/c1_LIRAssembler_x86.cpp @ 1572:87fc6aca31ab
6955349: C1: Make G1 barriers work with x64
Summary: This fixes G1 barriers in c1 on x64.
Reviewed-by: never
author | iveresov |
---|---|
date | Thu, 27 May 2010 22:01:55 -0700 |
parents | 61b2245abf36 |
children | e9ff18c4ace7 |
comparison
equal
deleted
inserted
replaced
1571:2d127394260e | 1572:87fc6aca31ab |
---|---|
2460 break; | 2460 break; |
2461 default: ShouldNotReachHere(); | 2461 default: ShouldNotReachHere(); |
2462 } | 2462 } |
2463 #endif // _LP64 | 2463 #endif // _LP64 |
2464 } else { | 2464 } else { |
2465 #ifdef _LP64 | |
2466 Register r_lo; | |
2467 if (right->type() == T_OBJECT || right->type() == T_ARRAY) { | |
2468 r_lo = right->as_register(); | |
2469 } else { | |
2470 r_lo = right->as_register_lo(); | |
2471 } | |
2472 #else | |
2465 Register r_lo = right->as_register_lo(); | 2473 Register r_lo = right->as_register_lo(); |
2466 Register r_hi = right->as_register_hi(); | 2474 Register r_hi = right->as_register_hi(); |
2467 assert(l_lo != r_hi, "overwriting registers"); | 2475 assert(l_lo != r_hi, "overwriting registers"); |
2476 #endif | |
2468 switch (code) { | 2477 switch (code) { |
2469 case lir_logic_and: | 2478 case lir_logic_and: |
2470 __ andptr(l_lo, r_lo); | 2479 __ andptr(l_lo, r_lo); |
2471 NOT_LP64(__ andptr(l_hi, r_hi);) | 2480 NOT_LP64(__ andptr(l_hi, r_hi);) |
2472 break; | 2481 break; |