src/share/vm/opto/output.cpp

changeset 7001
b6a8cc1e0d92
parent 6723
0bf37f737702
child 7003
69ea58782b1a
equal deleted inserted replaced
7000:631c3a4ea10c 7001:b6a8cc1e0d92
781 // holds the first raw word of the native double representation. 781 // holds the first raw word of the native double representation.
782 // This is actually reasonable, since locals and stack arrays 782 // This is actually reasonable, since locals and stack arrays
783 // grow downwards in all implementations. 783 // grow downwards in all implementations.
784 // (If, on some machine, the interpreter's Java locals or stack 784 // (If, on some machine, the interpreter's Java locals or stack
785 // were to grow upwards, the embedded doubles would be word-swapped.) 785 // were to grow upwards, the embedded doubles would be word-swapped.)
786 jint *dp = (jint*)&d; 786 jlong_accessor acc = { jlong_cast(d) };
787 array->append(new ConstantIntValue(dp[1])); 787 array->append(new ConstantIntValue(acc.words[1]));
788 array->append(new ConstantIntValue(dp[0])); 788 array->append(new ConstantIntValue(acc.words[0]));
789 #endif 789 #endif
790 break; 790 break;
791 } 791 }
792 case Type::Long: { 792 case Type::Long: {
793 jlong d = t->is_long()->get_con(); 793 jlong d = t->is_long()->get_con();
800 // holds the first raw word of the native double representation. 800 // holds the first raw word of the native double representation.
801 // This is actually reasonable, since locals and stack arrays 801 // This is actually reasonable, since locals and stack arrays
802 // grow downwards in all implementations. 802 // grow downwards in all implementations.
803 // (If, on some machine, the interpreter's Java locals or stack 803 // (If, on some machine, the interpreter's Java locals or stack
804 // were to grow upwards, the embedded doubles would be word-swapped.) 804 // were to grow upwards, the embedded doubles would be word-swapped.)
805 jint *dp = (jint*)&d; 805 jlong_accessor acc = { d };
806 array->append(new ConstantIntValue(dp[1])); 806 array->append(new ConstantIntValue(acc.words[1]));
807 array->append(new ConstantIntValue(dp[0])); 807 array->append(new ConstantIntValue(acc.words[0]));
808 #endif 808 #endif
809 break; 809 break;
810 } 810 }
811 case Type::Top: // Add an illegal value here 811 case Type::Top: // Add an illegal value here
812 array->append(new LocationValue(Location())); 812 array->append(new LocationValue(Location()));

mercurial