@@ -514,13 +514,18 @@ class Assembler : public AbstractAssembler {
514514 LFSU_OPCODE = (49u << OPCODE_SHIFT | 00u << 1 ),
515515 LFSX_OPCODE = (31u << OPCODE_SHIFT | 535u << 1 ),
516516
517+ LFIWAX_OPCODE = (31u << OPCODE_SHIFT | 855u << 1 ),
518+ LFIWZX_OPCODE = (31u << OPCODE_SHIFT | 887u << 1 ),
519+
517520 STFD_OPCODE = (54u << OPCODE_SHIFT | 00u << 1 ),
518521 STFDU_OPCODE = (55u << OPCODE_SHIFT | 00u << 1 ),
519522 STFDX_OPCODE = (31u << OPCODE_SHIFT | 727u << 1 ),
520523 STFS_OPCODE = (52u << OPCODE_SHIFT | 00u << 1 ),
521524 STFSU_OPCODE = (53u << OPCODE_SHIFT | 00u << 1 ),
522525 STFSX_OPCODE = (31u << OPCODE_SHIFT | 663u << 1 ),
523526
527+ STFIWX_OPCODE = (31u << OPCODE_SHIFT | 983u << 1 ),
528+
524529 FSQRT_OPCODE = (63u << OPCODE_SHIFT | 22u << 1 ), // A-FORM
525530 FSQRTS_OPCODE = (59u << OPCODE_SHIFT | 22u << 1 ), // A-FORM
526531
@@ -563,6 +568,10 @@ class Assembler : public AbstractAssembler {
563568 XVDIVSP_OPCODE = (60u << OPCODE_SHIFT | 88u << 3 ),
564569 XXBRD_OPCODE = (60u << OPCODE_SHIFT | 475u << 2 | 23u << 16 ), // XX2-FORM
565570 XXBRW_OPCODE = (60u << OPCODE_SHIFT | 475u << 2 | 15u << 16 ), // XX2-FORM
571+ XVCVHPSP_OPCODE= (60u << OPCODE_SHIFT | 475u << 2 | 24u << 16 ), // XX2-FORM
572+ XVCVSPHP_OPCODE= (60u << OPCODE_SHIFT | 475u << 2 | 25u << 16 ), // XX2-FORM
573+ XSCVHPDP_OPCODE= (60u << OPCODE_SHIFT | 347u << 2 | 16u << 16 ), // XX2-FORM
574+ XSCVDPHP_OPCODE= (60u << OPCODE_SHIFT | 347u << 2 | 17u << 16 ), // XX2-FORM
566575 XXPERM_OPCODE = (60u << OPCODE_SHIFT | 26u << 3 ),
567576 XXSEL_OPCODE = (60u << OPCODE_SHIFT | 3u << 4 ),
568577 XXSPLTIB_OPCODE= (60u << OPCODE_SHIFT | 360u << 1 ),
@@ -2119,6 +2128,9 @@ class Assembler : public AbstractAssembler {
21192128 inline void lfdu ( FloatRegister d, int si16, Register a);
21202129 inline void lfdx ( FloatRegister d, Register a, Register b);
21212130
2131+ inline void lfiwax (FloatRegister d, Register a, Register b);
2132+ inline void lfiwzx (FloatRegister d, Register a, Register b);
2133+
21222134 // PPC 1, section 4.6.3 Floating-Point Store Instructions
21232135 inline void stfs ( FloatRegister s, int si16, Register a);
21242136 inline void stfsu ( FloatRegister s, int si16, Register a);
@@ -2127,6 +2139,8 @@ class Assembler : public AbstractAssembler {
21272139 inline void stfdu ( FloatRegister s, int si16, Register a);
21282140 inline void stfdx ( FloatRegister s, Register a, Register b);
21292141
2142+ inline void stfiwx (FloatRegister s, Register a, Register b);
2143+
21302144 // PPC 1, section 4.6.4 Floating-Point Move Instructions
21312145 inline void fmr ( FloatRegister d, FloatRegister b);
21322146 inline void fmr_ ( FloatRegister d, FloatRegister b);
@@ -2391,6 +2405,10 @@ class Assembler : public AbstractAssembler {
23912405 inline void xxleqv ( VectorSRegister d, VectorSRegister a, VectorSRegister b);
23922406 inline void xxbrd ( VectorSRegister d, VectorSRegister b);
23932407 inline void xxbrw ( VectorSRegister d, VectorSRegister b);
2408+ inline void xvcvhpsp ( VectorSRegister d, VectorSRegister b);
2409+ inline void xvcvsphp ( VectorSRegister d, VectorSRegister b);
2410+ inline void xscvhpdp ( VectorSRegister d, VectorSRegister b);
2411+ inline void xscvdphp ( VectorSRegister d, VectorSRegister b);
23942412 inline void xxland ( VectorSRegister d, VectorSRegister a, VectorSRegister b);
23952413 inline void xxsel ( VectorSRegister d, VectorSRegister a, VectorSRegister b, VectorSRegister c);
23962414 inline void xxspltib ( VectorSRegister d, int ui8);
@@ -2536,10 +2554,13 @@ class Assembler : public AbstractAssembler {
25362554 inline void lfsx ( FloatRegister d, Register b);
25372555 inline void lfd ( FloatRegister d, int si16);
25382556 inline void lfdx ( FloatRegister d, Register b);
2557+ inline void lfiwax (FloatRegister d, Register b);
2558+ inline void lfiwzx (FloatRegister d, Register b);
25392559 inline void stfs ( FloatRegister s, int si16);
25402560 inline void stfsx ( FloatRegister s, Register b);
25412561 inline void stfd ( FloatRegister s, int si16);
25422562 inline void stfdx ( FloatRegister s, Register b);
2563+ inline void stfiwx (FloatRegister s, Register b);
25432564 inline void lvebx ( VectorRegister d, Register s2);
25442565 inline void lvehx ( VectorRegister d, Register s2);
25452566 inline void lvewx ( VectorRegister d, Register s2);
0 commit comments