--- old/src/cpu/sparc/vm/sparc.ad 2016-06-28 15:26:54.816613247 +0200 +++ new/src/cpu/sparc/vm/sparc.ad 2016-06-28 15:26:54.752613250 +0200 @@ -720,7 +720,7 @@ return offset; } -static inline jdouble replicate_immI(int con, int count, int width) { +static inline jlong replicate_immI(int con, int count, int width) { // Load a constant replicated "count" times with width "width" assert(count*width == 8 && width <= 4, "sanity"); int bit_width = width * 8; @@ -729,17 +729,15 @@ for (int i = 0; i < count - 1; i++) { val |= (val << bit_width); } - jdouble dval = *((jdouble*) &val); // coerce to double type - return dval; + return val; } -static inline jdouble replicate_immF(float con) { +static inline jlong replicate_immF(float con) { // Replicate float con 2 times and pack into vector. int val = *((int*)&con); jlong lval = val; lval = (lval << 32) | (lval & 0xFFFFFFFFl); - jdouble dval = *((jdouble*) &lval); // coerce to double type - return dval; + return lval; } // Standard Sparc opcode form2 field breakdown