8056950: Compiled code (64-bit) on SPARC should sign extend INT parameters passed on registers to runtime or native methods.
Reviewed-by: thartmann, simonis
--- 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);