Mercurial > hg > truffle
comparison src/share/vm/c1/c1_LinearScan.cpp @ 2345:b9684d5ccb52
7011490: Wrong computation results in Test6880034
Summary: incorrect handling of c2i deoptimization on little endian architectures
Reviewed-by: never
author | vladidan |
---|---|
date | Thu, 10 Mar 2011 14:56:11 -0500 |
parents | b92c45f2bc75 |
children | 1d1603768966 |
comparison
equal
deleted
inserted
replaced
2336:df1347358fe6 | 2345:b9684d5ccb52 |
---|---|
2701 // must be present | 2701 // must be present |
2702 assert(use_fpu_stack_allocation(), "should not have float stack values without fpu stack allocation (all floats must be SSE2)"); | 2702 assert(use_fpu_stack_allocation(), "should not have float stack values without fpu stack allocation (all floats must be SSE2)"); |
2703 assert(_fpu_stack_allocator != NULL, "must be present"); | 2703 assert(_fpu_stack_allocator != NULL, "must be present"); |
2704 opr = _fpu_stack_allocator->to_fpu_stack(opr); | 2704 opr = _fpu_stack_allocator->to_fpu_stack(opr); |
2705 | 2705 |
2706 assert(opr->fpu_regnrLo() == opr->fpu_regnrHi(), "assumed in calculation (only fpu_regnrHi is used)"); | 2706 assert(opr->fpu_regnrLo() == opr->fpu_regnrHi(), "assumed in calculation (only fpu_regnrLo is used)"); |
2707 #endif | 2707 #endif |
2708 #ifdef SPARC | 2708 #ifdef SPARC |
2709 assert(opr->fpu_regnrLo() == opr->fpu_regnrHi() + 1, "assumed in calculation (only fpu_regnrHi is used)"); | 2709 assert(opr->fpu_regnrLo() == opr->fpu_regnrHi() + 1, "assumed in calculation (only fpu_regnrHi is used)"); |
2710 #endif | 2710 #endif |
2711 #ifdef ARM | 2711 #ifdef ARM |
2713 #endif | 2713 #endif |
2714 #ifdef PPC | 2714 #ifdef PPC |
2715 assert(opr->fpu_regnrLo() == opr->fpu_regnrHi(), "assumed in calculation (only fpu_regnrHi is used)"); | 2715 assert(opr->fpu_regnrLo() == opr->fpu_regnrHi(), "assumed in calculation (only fpu_regnrHi is used)"); |
2716 #endif | 2716 #endif |
2717 | 2717 |
2718 #ifdef VM_LITTLE_ENDIAN | |
2719 VMReg rname_first = frame_map()->fpu_regname(opr->fpu_regnrLo()); | |
2720 #else | |
2718 VMReg rname_first = frame_map()->fpu_regname(opr->fpu_regnrHi()); | 2721 VMReg rname_first = frame_map()->fpu_regname(opr->fpu_regnrHi()); |
2722 #endif | |
2723 | |
2719 #ifdef _LP64 | 2724 #ifdef _LP64 |
2720 first = new LocationValue(Location::new_reg_loc(Location::dbl, rname_first)); | 2725 first = new LocationValue(Location::new_reg_loc(Location::dbl, rname_first)); |
2721 second = &_int_0_scope_value; | 2726 second = &_int_0_scope_value; |
2722 #else | 2727 #else |
2723 first = new LocationValue(Location::new_reg_loc(Location::normal, rname_first)); | 2728 first = new LocationValue(Location::new_reg_loc(Location::normal, rname_first)); |