summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeale Ferguson <neale@sinenomine.net>2013-04-25 10:01:14 -0400
committerNeale Ferguson <neale@sinenomine.net>2013-04-25 17:19:28 -0400
commita42bc8f14a3393150fb6fbb772c2b0259267f5ae (patch)
treeb414428573c514b6cdba27d0086bea998af8ca9d
parent92b3dc346aad94e7e6a91e7356adcebbb180c618 (diff)
downloadffts-a42bc8f14a3393150fb6fbb772c2b0259267f5ae.zip
ffts-a42bc8f14a3393150fb6fbb772c2b0259267f5ae.tar.gz
Add lazy rgctx support to s390x
-rw-r--r--s390x/s390x-codegen.h23
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)
OpenPOWER on IntegriCloud