OpenJDK / jdk / hs
changeset 46789:1bf8c1e8b79a
8185975: PPC64: Fix vsldoi interface according to the ISA
Reviewed-by: mdoerr
Contributed-by: Gustavo Serra Scalet <gustavo.scalet@eldorado.org.br>
author | mdoerr |
---|---|
date | Thu, 10 Aug 2017 17:25:46 +0200 |
parents | fb479838027c |
children | e1b555ed3e50 |
files | hotspot/src/cpu/ppc/vm/assembler_ppc.hpp hotspot/src/cpu/ppc/vm/assembler_ppc.inline.hpp hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp |
diffstat | 4 files changed, 7 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp Thu Aug 10 13:57:57 2017 +0200 +++ b/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp Thu Aug 10 17:25:46 2017 +0200 @@ -2027,7 +2027,7 @@ inline void vperm( VectorRegister d, VectorRegister a, VectorRegister b, VectorRegister c); inline void vsel( VectorRegister d, VectorRegister a, VectorRegister b, VectorRegister c); inline void vsl( VectorRegister d, VectorRegister a, VectorRegister b); - inline void vsldoi( VectorRegister d, VectorRegister a, VectorRegister b, int si4); + inline void vsldoi( VectorRegister d, VectorRegister a, VectorRegister b, int ui4); inline void vslo( VectorRegister d, VectorRegister a, VectorRegister b); inline void vsr( VectorRegister d, VectorRegister a, VectorRegister b); inline void vsro( VectorRegister d, VectorRegister a, VectorRegister b);
--- a/hotspot/src/cpu/ppc/vm/assembler_ppc.inline.hpp Thu Aug 10 13:57:57 2017 +0200 +++ b/hotspot/src/cpu/ppc/vm/assembler_ppc.inline.hpp Thu Aug 10 17:25:46 2017 +0200 @@ -800,7 +800,7 @@ inline void Assembler::vperm( VectorRegister d, VectorRegister a, VectorRegister b, VectorRegister c){ emit_int32( VPERM_OPCODE | vrt(d) | vra(a) | vrb(b) | vrc(c)); } inline void Assembler::vsel( VectorRegister d, VectorRegister a, VectorRegister b, VectorRegister c){ emit_int32( VSEL_OPCODE | vrt(d) | vra(a) | vrb(b) | vrc(c)); } inline void Assembler::vsl( VectorRegister d, VectorRegister a, VectorRegister b) { emit_int32( VSL_OPCODE | vrt(d) | vra(a) | vrb(b)); } -inline void Assembler::vsldoi( VectorRegister d, VectorRegister a, VectorRegister b, int si4) { emit_int32( VSLDOI_OPCODE| vrt(d) | vra(a) | vrb(b) | vsldoi_shb(simm(si4,4))); } +inline void Assembler::vsldoi( VectorRegister d, VectorRegister a, VectorRegister b, int ui4) { emit_int32( VSLDOI_OPCODE| vrt(d) | vra(a) | vrb(b) | vsldoi_shb(uimm(ui4,4))); } inline void Assembler::vslo( VectorRegister d, VectorRegister a, VectorRegister b) { emit_int32( VSLO_OPCODE | vrt(d) | vra(a) | vrb(b)); } inline void Assembler::vsr( VectorRegister d, VectorRegister a, VectorRegister b) { emit_int32( VSR_OPCODE | vrt(d) | vra(a) | vrb(b)); } inline void Assembler::vsro( VectorRegister d, VectorRegister a, VectorRegister b) { emit_int32( VSRO_OPCODE | vrt(d) | vra(a) | vrb(b)); }
--- a/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp Thu Aug 10 13:57:57 2017 +0200 +++ b/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.cpp Thu Aug 10 17:25:46 2017 +0200 @@ -4576,12 +4576,12 @@ vspltisw(VR0, -1); vsldoi(mask_32bit, zeroes, VR0, 4); - vsldoi(mask_64bit, zeroes, VR0, -8); + vsldoi(mask_64bit, zeroes, VR0, 8); // Get the initial value into v8 vxor(VR8, VR8, VR8); mtvrd(VR8, crc); - vsldoi(VR8, zeroes, VR8, -8); // shift into bottom 32 bits + vsldoi(VR8, zeroes, VR8, 8); // shift into bottom 32 bits li (rLoaded, 0); @@ -4930,7 +4930,7 @@ addi(barretConstants, barretConstants, 16); lvx(const2, barretConstants); - vsldoi(VR1, VR0, VR0, -8); + vsldoi(VR1, VR0, VR0, 8); vxor(VR0, VR0, VR1); // xor two 64 bit results together // shift left one bit
--- a/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp Thu Aug 10 13:57:57 2017 +0200 +++ b/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp Thu Aug 10 17:25:46 2017 +0200 @@ -2729,7 +2729,7 @@ __ vspltisb (vTmp2, -16); __ vrld (keyPerm, keyPerm, vTmp2); __ vrld (keyPerm, keyPerm, vTmp2); - __ vsldoi (keyPerm, keyPerm, keyPerm, -8); + __ vsldoi (keyPerm, keyPerm, keyPerm, 8); // load the 1st round key to vKey1 __ li (keypos, 0); @@ -2929,7 +2929,7 @@ __ vspltisb (vTmp2, -16); __ vrld (keyPerm, keyPerm, vTmp2); __ vrld (keyPerm, keyPerm, vTmp2); - __ vsldoi (keyPerm, keyPerm, keyPerm, -8); + __ vsldoi (keyPerm, keyPerm, keyPerm, 8); __ cmpwi (CCR0, keylen, 44); __ beq (CCR0, L_do44);