@@ -637,6 +637,11 @@ class Assembler : public AbstractAssembler {
637
637
#define LCDBR_ZOPC (unsigned int )(179 << 24 | 19 << 16 )
638
638
#define LCXBR_ZOPC (unsigned int )(179 << 24 | 67 << 16 )
639
639
640
+ // Load Halfword Immediate on Condition
641
+ #define LOCHI_ZOPC (unsigned long )(0xECL << 40 | 0x42L )
642
+ #define LOCHHI_ZOPC (unsigned long )(0xECL << 40 | 0x4EL )
643
+ #define LOCGHI_ZOPC (unsigned long )(0xECL << 40 | 0x46L )
644
+
640
645
// Add
641
646
// RR, signed
642
647
#define AR_ZOPC (unsigned int )(26 << 8 )
@@ -987,8 +992,8 @@ class Assembler : public AbstractAssembler {
987
992
#define BASR_ZOPC (unsigned int )(13 << 8 )
988
993
#define BCT_ZOPC (unsigned int )(70 << 24 )
989
994
#define BCTR_ZOPC (unsigned int )(6 << 8 )
990
- #define BCTG_ZOPC (unsigned int )(227L << 40 | 70 )
991
- #define BCTGR_ZOPC (unsigned long )(0xb946 << 16 )
995
+ #define BCTG_ZOPC (unsigned long )(227L << 40 | 70 )
996
+ #define BCTGR_ZOPC (unsigned int )(0xb946 << 16 )
992
997
// Absolute
993
998
#define BC_ZOPC (unsigned int )(71 << 24 )
994
999
#define BAL_ZOPC (unsigned int )(69 << 24 )
@@ -2075,6 +2080,11 @@ class Assembler : public AbstractAssembler {
2075
2080
inline void z_llilh (Register r1, int64_t i2); // r1 = i2_imm16 ; uint64 <- (uint16<<16)
2076
2081
inline void z_llill (Register r1, int64_t i2); // r1 = i2_imm16 ; uint64 <- uint16
2077
2082
2083
+ // load halfword immediate on condition
2084
+ inline void z_lochi ( Register r1, int64_t i2, branch_condition m3); // load immediate r1[32-63] = i2_simm16 ; int32 <- int16
2085
+ inline void z_lochhi (Register r1, int64_t i2, branch_condition m3); // load immediate r1[ 0-31] = i2_simm16 ; int32 <- int16
2086
+ inline void z_locghi (Register r1, int64_t i2, branch_condition m3); // load immediate r1[ 0-63] = i2_simm16 ; int64 <- int16
2087
+
2078
2088
// insert immediate
2079
2089
inline void z_ic ( Register r1, int64_t d2, Register x2, Register b2); // insert character
2080
2090
inline void z_icy ( Register r1, int64_t d2, Register x2, Register b2); // insert character
0 commit comments