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;