diff options
author | Neale Ferguson <neale@sinenomine.net> | 2013-04-25 10:01:14 -0400 |
---|---|---|
committer | Neale Ferguson <neale@sinenomine.net> | 2013-04-25 17:19:28 -0400 |
commit | a42bc8f14a3393150fb6fbb772c2b0259267f5ae (patch) | |
tree | b414428573c514b6cdba27d0086bea998af8ca9d | |
parent | 92b3dc346aad94e7e6a91e7356adcebbb180c618 (diff) | |
download | ffts-a42bc8f14a3393150fb6fbb772c2b0259267f5ae.zip ffts-a42bc8f14a3393150fb6fbb772c2b0259267f5ae.tar.gz |
Add lazy rgctx support to s390x
-rw-r--r-- | s390x/s390x-codegen.h | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/s390x/s390x-codegen.h b/s390x/s390x-codegen.h index d3292bf..3677b2d 100644 --- a/s390x/s390x-codegen.h +++ b/s390x/s390x-codegen.h @@ -593,11 +593,14 @@ typedef struct { #define s390_basr(c, r1, r2) S390_RR(c, 0x0d, r1, r2) #define s390_bctr(c, r1, r2) S390_RR(c, 0x06, r1, r2) #define s390_bctrg(c, r1, r2) S390_RRE(c, 0xb946, r1, r2) +#define s390_bnzr(c, r) S390_RR(c, 0x07, 0x07, r) #define s390_bras(c, r, o) S390_RI(c, 0xa75, r, o) #define s390_brasl(c, r, o) S390_RIL_1(c, 0xc05, r, o) #define s390_brc(c, m, d) S390_RI(c, 0xa74, m, d) +#define s390_brcl(c, m, d) S390_RIL_2(c, 0xc04, m, d) #define s390_br(c, r) S390_RR(c, 0x07, 0xf, r) #define s390_break(c) S390_RR(c, 0, 0, 0) +#define s390_bzr(c, r) S390_RR(c, 0x07, 0x08, r) #define s390_c(c, r, x, b, d) S390_RX(c, 0x59, r, x, b, d) #define s390_cdb(c, r, x, b, d) S390_RXE(c, 0xed19, r, x, b, d) #define s390_cdbr(c, r1, r2) S390_RRE(c, 0xb319, r1, r2) @@ -636,7 +639,7 @@ typedef struct { #define s390_icy(c, r, x, b, d) S390_RXY(c, 0xe373, r, x, b, d) #define s390_j(c,d) s390_brc(c, S390_CC_UN, d) #define s390_jc(c, m, d) s390_brc(c, m, d) -#define s390_jcl(c, m, d) S390_RIL_2(c, 0xc04, m, d) +#define s390_jcl(c, m, d) s390_brcl(c, m, d) #define s390_jcy(c, d) s390_brc(c, S390_CC_CY, d) #define s390_je(c, d) s390_brc(c, S390_CC_EQ, d) #define s390_jeo(c, d) s390_brc(c, S390_CC_ZR|S390_CC_OV, d) @@ -654,6 +657,24 @@ typedef struct { #define s390_jno(c, d) s390_brc(c, S390_CC_NO, d) #define s390_jp(c, d) s390_brc(c, S390_CC_GT, d) #define s390_jz(c, d) s390_brc(c, S390_CC_ZR, d) +#define s390_jg(c,d) s390_brcl(c, S390_CC_UN, d) +#define s390_jgcy(c, d) s390_brcl(c, S390_CC_CY, d) +#define s390_jge(c, d) s390_brcl(c, S390_CC_EQ, d) +#define s390_jgeo(c, d) s390_brcl(c, S390_CC_ZR|S390_CC_OV, d) +#define s390_jgh(c, d) s390_brcl(c, S390_CC_GT, d) +#define s390_jgho(c, d) s390_brcl(c, S390_CC_GT|S390_CC_OV, d) +#define s390_jgl(c, d) s390_brcl(c, S390_CC_LT, d) +#define s390_jglo(c, d) s390_brcl(c, S390_CC_LT|S390_CC_OV, d) +#define s390_jgm(c, d) s390_brcl(c, S390_CC_LT, d) +#define s390_jgnc(c, d) s390_brcl(c, S390_CC_NC, d) +#define s390_jgne(c, d) s390_brcl(c, S390_CC_NZ, d) +#define s390_jgnh(c, d) s390_brcl(c, S390_CC_LE, d) +#define s390_jgnl(c, d) s390_brcl(c, S390_CC_GE, d) +#define s390_jgnz(c, d) s390_brcl(c, S390_CC_NZ, d) +#define s390_jgo(c, d) s390_brcl(c, S390_CC_OV, d) +#define s390_jgno(c, d) s390_brcl(c, S390_CC_NO, d) +#define s390_jgp(c, d) s390_brcl(c, S390_CC_GT, d) +#define s390_jgz(c, d) s390_brcl(c, S390_CC_ZR, d) #define s390_l(c, r, x, b, d) S390_RX(c, 0x58, r, x, b, d) #define s390_ly(c, r, x, b, d) S390_RXY(c, 0xe358, r, x, b, d) #define s390_la(c, r, x, b, d) S390_RX(c, 0x41, r, x, b, d) |