8056950: Compiled code (64-bit) on SPARC should sign extend INT parameters passed on registers to runtime or native methods.
authorgoetz
Mon, 04 Jul 2016 16:28:27 +0200
changeset 40061 8df4c4a20902
parent 40060 0e7ca474ea35
child 40062 3b21b3295f19
8056950: Compiled code (64-bit) on SPARC should sign extend INT parameters passed on registers to runtime or native methods. Reviewed-by: thartmann, simonis
hotspot/src/cpu/sparc/vm/globalDefinitions_sparc.hpp
hotspot/src/share/vm/runtime/sharedRuntime.hpp
--- a/hotspot/src/cpu/sparc/vm/globalDefinitions_sparc.hpp	Tue Jul 12 20:42:46 2016 +0000
+++ b/hotspot/src/cpu/sparc/vm/globalDefinitions_sparc.hpp	Mon Jul 04 16:28:27 2016 +0200
@@ -32,7 +32,7 @@
 
 // Indicates whether the C calling conventions require that
 // 32-bit integer argument values are extended to 64 bits.
-const bool CCallingConventionRequiresIntsAsLongs = false;
+const bool CCallingConventionRequiresIntsAsLongs = true;
 
 #define SUPPORTS_NATIVE_CX8
 
--- a/hotspot/src/share/vm/runtime/sharedRuntime.hpp	Tue Jul 12 20:42:46 2016 +0000
+++ b/hotspot/src/share/vm/runtime/sharedRuntime.hpp	Mon Jul 04 16:28:27 2016 +0200
@@ -388,16 +388,6 @@
   static int c_calling_convention(const BasicType *sig_bt, VMRegPair *regs, VMRegPair *regs2,
                                   int total_args_passed);
 
-  // Compute the new number of arguments in the signature if 32 bit ints
-  // must be converted to longs. Needed if CCallingConventionRequiresIntsAsLongs
-  // is true.
-  static int  convert_ints_to_longints_argcnt(int in_args_count, BasicType* in_sig_bt);
-  // Adapt a method's signature if it contains 32 bit integers that must
-  // be converted to longs. Needed if CCallingConventionRequiresIntsAsLongs
-  // is true.
-  static void convert_ints_to_longints(int i2l_argcnt, int& in_args_count,
-                                       BasicType*& in_sig_bt, VMRegPair*& in_regs);
-
   static size_t trampoline_size();
 
   static void generate_trampoline(MacroAssembler *masm, address destination);