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 }