< prev index next >

src/cpu/ppc/vm/assembler_ppc.inline.hpp

Print this page

        

*** 862,871 **** --- 862,895 ---- inline void Assembler::stvx( VectorRegister d, Register s2) { emit_int32( STVX_OPCODE | vrt(d) | rb(s2)); } inline void Assembler::stvxl( VectorRegister d, Register s2) { emit_int32( STVXL_OPCODE | vrt(d) | rb(s2)); } inline void Assembler::lvsl( VectorRegister d, Register s2) { emit_int32( LVSL_OPCODE | vrt(d) | rb(s2)); } inline void Assembler::lvsr( VectorRegister d, Register s2) { emit_int32( LVSR_OPCODE | vrt(d) | rb(s2)); } + inline void Assembler::load_perm(VectorRegister perm, Register addr) { + #if defined(VM_LITTLE_ENDIAN) + lvsr(perm, addr); + #else + lvsl(perm, addr); + #endif + } + + inline void Assembler::vec_perm(VectorRegister first_dest, VectorRegister second, VectorRegister perm) { + #if defined(VM_LITTLE_ENDIAN) + vperm(first_dest, second, first_dest, perm); + #else + vperm(first_dest, first_dest, second, perm); + #endif + } + + inline void Assembler::vec_perm(VectorRegister dest, VectorRegister first, VectorRegister second, VectorRegister perm) { + #if defined(VM_LITTLE_ENDIAN) + vperm(dest, second, first, perm); + #else + vperm(dest, first, second, perm); + #endif + } + inline void Assembler::load_const(Register d, void* x, Register tmp) { load_const(d, (long)x, tmp); } // Load a 64 bit constant encoded by a `Label'. This works for bound
< prev index next >