Mercurial > hg > truffle
comparison src/share/vm/opto/output.cpp @ 20804:7848fc12602b
Merge with jdk8u40-b25
author | Gilles Duboscq <gilles.m.duboscq@oracle.com> |
---|---|
date | Tue, 07 Apr 2015 14:58:49 +0200 |
parents | 52b4284cb496 fc2c88ea11a9 |
children |
comparison
equal
deleted
inserted
replaced
20184:84105dcdb05b | 20804:7848fc12602b |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | 4 * |
5 * This code is free software; you can redistribute it and/or modify it | 5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as | 6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
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; |
787 array->append(new ConstantIntValue(dp[1])); | 787 acc.long_value = jlong_cast(d); |
788 array->append(new ConstantIntValue(dp[0])); | 788 array->append(new ConstantIntValue(acc.words[1])); |
789 array->append(new ConstantIntValue(acc.words[0])); | |
789 #endif | 790 #endif |
790 break; | 791 break; |
791 } | 792 } |
792 case Type::Long: { | 793 case Type::Long: { |
793 jlong d = t->is_long()->get_con(); | 794 jlong d = t->is_long()->get_con(); |
800 // holds the first raw word of the native double representation. | 801 // holds the first raw word of the native double representation. |
801 // This is actually reasonable, since locals and stack arrays | 802 // This is actually reasonable, since locals and stack arrays |
802 // grow downwards in all implementations. | 803 // grow downwards in all implementations. |
803 // (If, on some machine, the interpreter's Java locals or stack | 804 // (If, on some machine, the interpreter's Java locals or stack |
804 // were to grow upwards, the embedded doubles would be word-swapped.) | 805 // were to grow upwards, the embedded doubles would be word-swapped.) |
805 jint *dp = (jint*)&d; | 806 jlong_accessor acc; |
806 array->append(new ConstantIntValue(dp[1])); | 807 acc.long_value = d; |
807 array->append(new ConstantIntValue(dp[0])); | 808 array->append(new ConstantIntValue(acc.words[1])); |
809 array->append(new ConstantIntValue(acc.words[0])); | |
808 #endif | 810 #endif |
809 break; | 811 break; |
810 } | 812 } |
811 case Type::Top: // Add an illegal value here | 813 case Type::Top: // Add an illegal value here |
812 array->append(new LocationValue(Location())); | 814 array->append(new LocationValue(Location())); |
852 is_method_handle_invoke = true; | 854 is_method_handle_invoke = true; |
853 } | 855 } |
854 } | 856 } |
855 | 857 |
856 // Check if a call returns an object. | 858 // Check if a call returns an object. |
857 if (mcall->return_value_is_used() && | 859 if (mcall->returns_pointer()) { |
858 mcall->tf()->range()->field_at(TypeFunc::Parms)->isa_ptr()) { | |
859 return_oop = true; | 860 return_oop = true; |
860 } | 861 } |
861 safepoint_pc_offset += mcall->ret_addr_offset(); | 862 safepoint_pc_offset += mcall->ret_addr_offset(); |
862 debug_info()->add_safepoint(safepoint_pc_offset, mcall->_oop_map); | 863 debug_info()->add_safepoint(safepoint_pc_offset, mcall->_oop_map); |
863 } | 864 } |