mirror of
https://github.com/openjdk/jdk.git
synced 2026-03-18 11:53:17 +00:00
8188757: PPC64: Disable VSR52-63 in ppc.ad
Reviewed-by: mdoerr
This commit is contained in:
parent
7b17b2d2a3
commit
febf1d80ea
@ -759,20 +759,20 @@ inline void Assembler::lvsl( VectorRegister d, Register s1, Register s2) { emit
|
||||
inline void Assembler::lvsr( VectorRegister d, Register s1, Register s2) { emit_int32( LVSR_OPCODE | vrt(d) | ra0mem(s1) | rb(s2)); }
|
||||
|
||||
// Vector-Scalar (VSX) instructions.
|
||||
inline void Assembler::lxvd2x( VectorSRegister d, Register s1) { emit_int32( LXVD2X_OPCODE | vsrt(d) | ra(0) | rb(s1) | 1u); }
|
||||
inline void Assembler::lxvd2x( VectorSRegister d, Register s1, Register s2) { emit_int32( LXVD2X_OPCODE | vsrt(d) | ra0mem(s1) | rb(s2) | 1u); }
|
||||
inline void Assembler::stxvd2x( VectorSRegister d, Register s1) { emit_int32( STXVD2X_OPCODE | vsrs(d) | ra(0) | rb(s1) | 1u); }
|
||||
inline void Assembler::stxvd2x( VectorSRegister d, Register s1, Register s2) { emit_int32( STXVD2X_OPCODE | vsrs(d) | ra0mem(s1) | rb(s2) | 1u); }
|
||||
inline void Assembler::mtvsrd( VectorSRegister d, Register a) { emit_int32( MTVSRD_OPCODE | vsrt(d) | ra(a) | 1u); }
|
||||
inline void Assembler::mtvsrwz( VectorSRegister d, Register a) { emit_int32( MTVSRWZ_OPCODE | vsrt(d) | ra(a) | 1u); }
|
||||
inline void Assembler::xxspltw( VectorSRegister d, VectorSRegister b, int ui2) { emit_int32( XXSPLTW_OPCODE | vsrt(d) | vsrb(b) | xxsplt_uim(uimm(ui2,2)) | 1u << 1 | 1u); }
|
||||
inline void Assembler::xxlxor( VectorSRegister d, VectorSRegister a, VectorSRegister b) { emit_int32( XXLXOR_OPCODE | vsrt(d) | vsra(a) | vsrb(b) | 1u << 2 | 1u << 1 | 1u); }
|
||||
inline void Assembler::xxleqv( VectorSRegister d, VectorSRegister a, VectorSRegister b) { emit_int32( XXLEQV_OPCODE | vsrt(d) | vsra(a) | vsrb(b) | 1u << 2 | 1u << 1 | 1u); }
|
||||
inline void Assembler::lxvd2x( VectorSRegister d, Register s1) { emit_int32( LXVD2X_OPCODE | vsrt(d) | ra(0) | rb(s1)); }
|
||||
inline void Assembler::lxvd2x( VectorSRegister d, Register s1, Register s2) { emit_int32( LXVD2X_OPCODE | vsrt(d) | ra0mem(s1) | rb(s2)); }
|
||||
inline void Assembler::stxvd2x( VectorSRegister d, Register s1) { emit_int32( STXVD2X_OPCODE | vsrs(d) | ra(0) | rb(s1)); }
|
||||
inline void Assembler::stxvd2x( VectorSRegister d, Register s1, Register s2) { emit_int32( STXVD2X_OPCODE | vsrs(d) | ra0mem(s1) | rb(s2)); }
|
||||
inline void Assembler::mtvsrd( VectorSRegister d, Register a) { emit_int32( MTVSRD_OPCODE | vsrt(d) | ra(a)); }
|
||||
inline void Assembler::mtvsrwz( VectorSRegister d, Register a) { emit_int32( MTVSRWZ_OPCODE | vsrt(d) | ra(a)); }
|
||||
inline void Assembler::xxspltw( VectorSRegister d, VectorSRegister b, int ui2) { emit_int32( XXSPLTW_OPCODE | vsrt(d) | vsrb(b) | xxsplt_uim(uimm(ui2,2))); }
|
||||
inline void Assembler::xxlxor( VectorSRegister d, VectorSRegister a, VectorSRegister b) { emit_int32( XXLXOR_OPCODE | vsrt(d) | vsra(a) | vsrb(b)); }
|
||||
inline void Assembler::xxleqv( VectorSRegister d, VectorSRegister a, VectorSRegister b) { emit_int32( XXLEQV_OPCODE | vsrt(d) | vsra(a) | vsrb(b)); }
|
||||
inline void Assembler::mtvrd( VectorRegister d, Register a) { emit_int32( MTVSRD_OPCODE | vsrt(d->to_vsr()) | ra(a)); }
|
||||
inline void Assembler::mfvrd( Register a, VectorRegister d) { emit_int32( MFVSRD_OPCODE | vsrt(d->to_vsr()) | ra(a)); }
|
||||
inline void Assembler::mtvrwz( VectorRegister d, Register a) { emit_int32( MTVSRWZ_OPCODE | vsrt(d->to_vsr()) | ra(a)); }
|
||||
inline void Assembler::mfvrwz( Register a, VectorRegister d) { emit_int32( MFVSRWZ_OPCODE | vsrt(d->to_vsr()) | ra(a)); }
|
||||
inline void Assembler::xxpermdi(VectorSRegister d, VectorSRegister a, VectorSRegister b, int dm) { emit_int32( XXPERMDI_OPCODE | vsrt(d) | vsra(a) | vsrb(b) | 0u << 10 | vsdm(dm) | 1u << 2 | 1u << 1 | 1u); }
|
||||
inline void Assembler::xxpermdi(VectorSRegister d, VectorSRegister a, VectorSRegister b, int dm) { emit_int32( XXPERMDI_OPCODE | vsrt(d) | vsra(a) | vsrb(b) | vsdm(dm)); }
|
||||
inline void Assembler::xxmrghw( VectorSRegister d, VectorSRegister a, VectorSRegister b) { emit_int32( XXMRGHW_OPCODE | vsrt(d) | vsra(a) | vsrb(b)); }
|
||||
inline void Assembler::xxmrglw( VectorSRegister d, VectorSRegister a, VectorSRegister b) { emit_int32( XXMRGHW_OPCODE | vsrt(d) | vsra(a) | vsrb(b)); }
|
||||
|
||||
|
||||
@ -903,71 +903,43 @@ reg_class dbl_reg(
|
||||
F31, F31_H // nv!
|
||||
);
|
||||
|
||||
// Class for all 128bit vector registers
|
||||
reg_class vectorx_reg(VSR0,
|
||||
VSR1,
|
||||
VSR2,
|
||||
VSR3,
|
||||
VSR4,
|
||||
VSR5,
|
||||
VSR6,
|
||||
VSR7,
|
||||
VSR8,
|
||||
VSR9,
|
||||
VSR10,
|
||||
VSR11,
|
||||
VSR12,
|
||||
VSR13,
|
||||
VSR14,
|
||||
VSR15,
|
||||
VSR16,
|
||||
VSR17,
|
||||
VSR18,
|
||||
VSR19,
|
||||
VSR20,
|
||||
VSR21,
|
||||
VSR22,
|
||||
VSR23,
|
||||
VSR24,
|
||||
VSR25,
|
||||
VSR26,
|
||||
VSR27,
|
||||
VSR28,
|
||||
VSR29,
|
||||
VSR30,
|
||||
VSR31,
|
||||
VSR32,
|
||||
VSR33,
|
||||
VSR34,
|
||||
VSR35,
|
||||
VSR36,
|
||||
VSR37,
|
||||
VSR38,
|
||||
VSR39,
|
||||
VSR40,
|
||||
VSR41,
|
||||
VSR42,
|
||||
VSR43,
|
||||
VSR44,
|
||||
VSR45,
|
||||
VSR46,
|
||||
VSR47,
|
||||
VSR48,
|
||||
VSR49,
|
||||
VSR50,
|
||||
VSR51,
|
||||
VSR52,
|
||||
VSR53,
|
||||
VSR54,
|
||||
VSR55,
|
||||
VSR56,
|
||||
VSR57,
|
||||
VSR58,
|
||||
VSR59,
|
||||
VSR60,
|
||||
VSR61,
|
||||
VSR62,
|
||||
VSR63
|
||||
// ----------------------------
|
||||
// Vector-Scalar Register Class
|
||||
// ----------------------------
|
||||
|
||||
reg_class vs_reg(
|
||||
VSR32,
|
||||
VSR33,
|
||||
VSR34,
|
||||
VSR35,
|
||||
VSR36,
|
||||
VSR37,
|
||||
VSR38,
|
||||
VSR39,
|
||||
VSR40,
|
||||
VSR41,
|
||||
VSR42,
|
||||
VSR43,
|
||||
VSR44,
|
||||
VSR45,
|
||||
VSR46,
|
||||
VSR47,
|
||||
VSR48,
|
||||
VSR49,
|
||||
VSR50,
|
||||
VSR51
|
||||
// VSR52, // nv!
|
||||
// VSR53, // nv!
|
||||
// VSR54, // nv!
|
||||
// VSR55, // nv!
|
||||
// VSR56, // nv!
|
||||
// VSR57, // nv!
|
||||
// VSR58, // nv!
|
||||
// VSR59, // nv!
|
||||
// VSR60, // nv!
|
||||
// VSR61, // nv!
|
||||
// VSR62, // nv!
|
||||
// VSR63 // nv!
|
||||
);
|
||||
|
||||
%}
|
||||
@ -4206,7 +4178,7 @@ ins_attrib ins_field_load_ic_node(0);
|
||||
// Formats are generated automatically for constants and base registers.
|
||||
|
||||
operand vecX() %{
|
||||
constraint(ALLOC_IN_RC(vectorx_reg));
|
||||
constraint(ALLOC_IN_RC(vs_reg));
|
||||
match(VecX);
|
||||
|
||||
format %{ %}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user