@@ -506,13 +506,18 @@ class Assembler : public AbstractAssembler {
506506 LFSU_OPCODE = (49u << OPCODE_SHIFT | 00u << 1 ),
507507 LFSX_OPCODE = (31u << OPCODE_SHIFT | 535u << 1 ),
508508
509+ LFIWAX_OPCODE = (31u << OPCODE_SHIFT | 855u << 1 ),
510+ LFIWZX_OPCODE = (31u << OPCODE_SHIFT | 887u << 1 ),
511+
509512 STFD_OPCODE = (54u << OPCODE_SHIFT | 00u << 1 ),
510513 STFDU_OPCODE = (55u << OPCODE_SHIFT | 00u << 1 ),
511514 STFDX_OPCODE = (31u << OPCODE_SHIFT | 727u << 1 ),
512515 STFS_OPCODE = (52u << OPCODE_SHIFT | 00u << 1 ),
513516 STFSU_OPCODE = (53u << OPCODE_SHIFT | 00u << 1 ),
514517 STFSX_OPCODE = (31u << OPCODE_SHIFT | 663u << 1 ),
515518
519+ STFIWX_OPCODE = (31u << OPCODE_SHIFT | 983u << 1 ),
520+
516521 FSQRT_OPCODE = (63u << OPCODE_SHIFT | 22u << 1 ), // A-FORM
517522 FSQRTS_OPCODE = (59u << OPCODE_SHIFT | 22u << 1 ), // A-FORM
518523
@@ -555,6 +560,10 @@ class Assembler : public AbstractAssembler {
555560 XVDIVSP_OPCODE = (60u << OPCODE_SHIFT | 88u << 3 ),
556561 XXBRD_OPCODE = (60u << OPCODE_SHIFT | 475u << 2 | 23u << 16 ), // XX2-FORM
557562 XXBRW_OPCODE = (60u << OPCODE_SHIFT | 475u << 2 | 15u << 16 ), // XX2-FORM
563+ XVCVHPSP_OPCODE= (60u << OPCODE_SHIFT | 475u << 2 | 24u << 16 ), // XX2-FORM
564+ XVCVSPHP_OPCODE= (60u << OPCODE_SHIFT | 475u << 2 | 25u << 16 ), // XX2-FORM
565+ XSCVHPDP_OPCODE= (60u << OPCODE_SHIFT | 347u << 2 | 16u << 16 ), // XX2-FORM
566+ XSCVDPHP_OPCODE= (60u << OPCODE_SHIFT | 347u << 2 | 17u << 16 ), // XX2-FORM
558567 XXPERM_OPCODE = (60u << OPCODE_SHIFT | 26u << 3 ),
559568 XXSEL_OPCODE = (60u << OPCODE_SHIFT | 3u << 4 ),
560569 XXSPLTIB_OPCODE= (60u << OPCODE_SHIFT | 360u << 1 ),
@@ -2076,6 +2085,9 @@ class Assembler : public AbstractAssembler {
20762085 inline void lfdu ( FloatRegister d, int si16, Register a);
20772086 inline void lfdx ( FloatRegister d, Register a, Register b);
20782087
2088+ inline void lfiwax (FloatRegister d, Register a, Register b);
2089+ inline void lfiwzx (FloatRegister d, Register a, Register b);
2090+
20792091 // PPC 1, section 4.6.3 Floating-Point Store Instructions
20802092 inline void stfs ( FloatRegister s, int si16, Register a);
20812093 inline void stfsu ( FloatRegister s, int si16, Register a);
@@ -2084,6 +2096,8 @@ class Assembler : public AbstractAssembler {
20842096 inline void stfdu ( FloatRegister s, int si16, Register a);
20852097 inline void stfdx ( FloatRegister s, Register a, Register b);
20862098
2099+ inline void stfiwx (FloatRegister s, Register a, Register b);
2100+
20872101 // PPC 1, section 4.6.4 Floating-Point Move Instructions
20882102 inline void fmr ( FloatRegister d, FloatRegister b);
20892103 inline void fmr_ ( FloatRegister d, FloatRegister b);
@@ -2348,6 +2362,10 @@ class Assembler : public AbstractAssembler {
23482362 inline void xxleqv ( VectorSRegister d, VectorSRegister a, VectorSRegister b);
23492363 inline void xxbrd ( VectorSRegister d, VectorSRegister b);
23502364 inline void xxbrw ( VectorSRegister d, VectorSRegister b);
2365+ inline void xvcvhpsp ( VectorSRegister d, VectorSRegister b);
2366+ inline void xvcvsphp ( VectorSRegister d, VectorSRegister b);
2367+ inline void xscvhpdp ( VectorSRegister d, VectorSRegister b);
2368+ inline void xscvdphp ( VectorSRegister d, VectorSRegister b);
23512369 inline void xxland ( VectorSRegister d, VectorSRegister a, VectorSRegister b);
23522370 inline void xxsel ( VectorSRegister d, VectorSRegister a, VectorSRegister b, VectorSRegister c);
23532371 inline void xxspltib ( VectorSRegister d, int ui8);
@@ -2474,10 +2492,13 @@ class Assembler : public AbstractAssembler {
24742492 inline void lfsx ( FloatRegister d, Register b);
24752493 inline void lfd ( FloatRegister d, int si16);
24762494 inline void lfdx ( FloatRegister d, Register b);
2495+ inline void lfiwax (FloatRegister d, Register b);
2496+ inline void lfiwzx (FloatRegister d, Register b);
24772497 inline void stfs ( FloatRegister s, int si16);
24782498 inline void stfsx ( FloatRegister s, Register b);
24792499 inline void stfd ( FloatRegister s, int si16);
24802500 inline void stfdx ( FloatRegister s, Register b);
2501+ inline void stfiwx (FloatRegister s, Register b);
24812502 inline void lvebx ( VectorRegister d, Register s2);
24822503 inline void lvehx ( VectorRegister d, Register s2);
24832504 inline void lvewx ( VectorRegister d, Register s2);
0 commit comments