src/share/vm/c1/c1_LinearScan.cpp

changeset 1804
0a43776437b6
parent 1732
c466efa608d5
child 1832
b4776199210f
equal deleted inserted replaced
1803:93767e6a2dfd 1804:0a43776437b6
2606 2606
2607 #ifdef X86 2607 #ifdef X86
2608 } else if (opr->is_double_xmm()) { 2608 } else if (opr->is_double_xmm()) {
2609 assert(opr->fpu_regnrLo() == opr->fpu_regnrHi(), "assumed in calculation"); 2609 assert(opr->fpu_regnrLo() == opr->fpu_regnrHi(), "assumed in calculation");
2610 VMReg rname_first = opr->as_xmm_double_reg()->as_VMReg(); 2610 VMReg rname_first = opr->as_xmm_double_reg()->as_VMReg();
2611 # ifdef _LP64
2612 first = new LocationValue(Location::new_reg_loc(Location::dbl, rname_first));
2613 second = &_int_0_scope_value;
2614 # else
2611 first = new LocationValue(Location::new_reg_loc(Location::normal, rname_first)); 2615 first = new LocationValue(Location::new_reg_loc(Location::normal, rname_first));
2612 // %%% This is probably a waste but we'll keep things as they were for now 2616 // %%% This is probably a waste but we'll keep things as they were for now
2613 if (true) { 2617 if (true) {
2614 VMReg rname_second = rname_first->next(); 2618 VMReg rname_second = rname_first->next();
2615 second = new LocationValue(Location::new_reg_loc(Location::normal, rname_second)); 2619 second = new LocationValue(Location::new_reg_loc(Location::normal, rname_second));
2616 } 2620 }
2621 # endif
2617 #endif 2622 #endif
2618 2623
2619 } else if (opr->is_double_fpu()) { 2624 } else if (opr->is_double_fpu()) {
2620 // On SPARC, fpu_regnrLo/fpu_regnrHi represents the two halves of 2625 // On SPARC, fpu_regnrLo/fpu_regnrHi represents the two halves of
2621 // the double as float registers in the native ordering. On X86, 2626 // the double as float registers in the native ordering. On X86,
2637 #ifdef SPARC 2642 #ifdef SPARC
2638 assert(opr->fpu_regnrLo() == opr->fpu_regnrHi() + 1, "assumed in calculation (only fpu_regnrHi is used)"); 2643 assert(opr->fpu_regnrLo() == opr->fpu_regnrHi() + 1, "assumed in calculation (only fpu_regnrHi is used)");
2639 #endif 2644 #endif
2640 2645
2641 VMReg rname_first = frame_map()->fpu_regname(opr->fpu_regnrHi()); 2646 VMReg rname_first = frame_map()->fpu_regname(opr->fpu_regnrHi());
2642 2647 #ifdef _LP64
2648 first = new LocationValue(Location::new_reg_loc(Location::dbl, rname_first));
2649 second = &_int_0_scope_value;
2650 #else
2643 first = new LocationValue(Location::new_reg_loc(Location::normal, rname_first)); 2651 first = new LocationValue(Location::new_reg_loc(Location::normal, rname_first));
2644 // %%% This is probably a waste but we'll keep things as they were for now 2652 // %%% This is probably a waste but we'll keep things as they were for now
2645 if (true) { 2653 if (true) {
2646 VMReg rname_second = rname_first->next(); 2654 VMReg rname_second = rname_first->next();
2647 second = new LocationValue(Location::new_reg_loc(Location::normal, rname_second)); 2655 second = new LocationValue(Location::new_reg_loc(Location::normal, rname_second));
2648 } 2656 }
2657 #endif
2649 2658
2650 } else { 2659 } else {
2651 ShouldNotReachHere(); 2660 ShouldNotReachHere();
2652 first = NULL; 2661 first = NULL;
2653 second = NULL; 2662 second = NULL;

mercurial