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())); |