[xbuild] Log build errors and raise events even if a build fails.
[mono.git] / mono / arch / s390x / s390x-codegen.h
index 8aefa465771798dbc5334d6f586ce5d38d15eb92..26411b4507deb884d49c9a527fe308dab8b9c9f3 100644 (file)
@@ -140,8 +140,9 @@ typedef enum {
                                         (glong)val <= (glong)((1<<15)-1))
 #define s390_is_uimm16(val)            ((glong)val >= 0 && (glong)val <= 65535)
 #define s390_is_uimm20(val)            ((glong)val >= 0 && (glong)val <= 1048575)
+#define s390_is_imm20(val)             ((glong)val >= -524288 && (glong)val <= 524287)
 #define s390_is_imm12(val)             ((glong)val >= (glong)-(1<<11) && \
-                                        (glong)val <= (glong)((1<<15)-1))
+                                        (glong)val <= (glong)((1<<11)-1))
 #define s390_is_uimm12(val)            ((glong)val >= 0 && (glong)val <= 4095)
 
 #define STK_BASE                       s390_r15
@@ -271,7 +272,7 @@ typedef struct {
        char    b2 : 4;
        int     d2 : 20;
        char    op2;
-} RXY_Format __attribute__ ((packed));
+} __attribute__ ((packed)) RXY_Format;
 
 typedef struct {
        char    op;
@@ -304,7 +305,7 @@ typedef struct {
        char    b2 : 4;
        int     d2 : 20;
        char    op2;
-} RSY_Format_1 __attribute__ ((packed));
+} __attribute__ ((packed)) RSY_Format_1;
 
 typedef struct {
        char    op1;
@@ -313,7 +314,7 @@ typedef struct {
        char    b2 : 4;
        int     d2 : 20;
        char    op2;
-} RSY_Format_2 __attribute__ ((packed));
+} __attribute__ ((packed)) RSY_Format_2;
 
 typedef struct {
        char    op1;
@@ -353,14 +354,14 @@ typedef struct {
        char    r1 : 4;
        char    op2 : 4;
        int     i2;
-} RIL_Format_1 __attribute__ ((packed));
+} __attribute__ ((packed)) RIL_Format_1;
 
 typedef struct {
        char    op1;
        char    m1 : 4;
        char    op2 : 4;
        int     i2;
-} RIL_Format_2 __attribute__ ((packed));
+} __attribute__ ((packed)) RIL_Format_2;
 
 typedef struct {
        char    op;
@@ -375,7 +376,7 @@ typedef struct {
        char    b1 : 4;
        int     d1 : 20;
        char    op2;
-} SIY_Format __attribute__ ((packed));
+} __attribute__ ((packed)) SIY_Format;
 
 typedef struct {
        short   op;
@@ -428,17 +429,17 @@ typedef struct {
        short   d1 : 12;
        char    b2 : 4;
        short   d2 : 12;
-} SSE_Format __attribute__ ((packed));
+} __attribute__ ((packed)) SSE_Format;
 
 #define s390_emit16(c, x) do                   \
 {                                              \
-       *((guint16 *) c) = x;                   \
+       *((guint16 *) c) = (guint16) x;         \
        c += sizeof(guint16);                   \
 } while(0)
 
 #define s390_emit32(c, x) do                   \
 {                                              \
-       *((guint32 *) c) = x;                   \
+       *((guint32 *) c) = (guint32) x;         \
        c += sizeof(guint32);                   \
 } while(0)
 
@@ -658,6 +659,7 @@ typedef struct {
 #define s390_lam(c, r1, r2, b, d)      S390_RS_1(c, 0x9a, r1, r2, b, d)
 #define s390_larl(c, r, o)             S390_RIL_1(c, 0xc00, r, o)
 #define s390_lb(c, r, x, b, d)         S390_RXY(c, 0xe376, r, x, b, d)
+#define s390_lbr(c, r1, r2)            S390_RRE(c, 0xb926, r1, r2)
 #define s390_lcdbr(c, r1, r2)          S390_RRE(c, 0xb313, r1, r2)
 #define s390_lcgr(c, r1, r2)           S390_RRE(c, 0xb903, r1, r2)
 #define s390_lcr(c, r1, r2)            S390_RR(c, 0x13, r1, r2)
@@ -671,6 +673,7 @@ typedef struct {
 #define s390_ler(c, r1, r2)            S390_RR(c, 0x38, r1, r2)
 #define s390_ley(c, r, x, b, d)                S390_RXY(c, 0xed64, r, x, b, d)
 #define s390_lgb(c, r, x, b, d)                S390_RXY(c, 0xe377, r, x, b, d)
+#define s390_lgbr(c, r1, r2)           S390_RRE(c, 0xb906, r1, r2)
 #define s390_lg(c, r, x, b, d)         S390_RXY(c, 0xe304, r, x, b, d)
 #define s390_lgf(c, r, x, b, d)                S390_RXY(c, 0xe314, r, x, b, d)
 #define s390_lgfr(c, r1, r2)           S390_RRE(c, 0xb914, r1, r2)
@@ -678,13 +681,19 @@ typedef struct {
 #define s390_lghi(c, r, v)             S390_RI(c, 0xa79, r, v)
 #define s390_lgr(c, r1, r2)            S390_RRE(c, 0xb904, r1, r2)
 #define s390_lh(c, r, x, b, d)         S390_RX(c, 0x48, r, x, b, d)
+#define s390_lhr(c, r1, r2)            S390_RRE(c, 0xb927, r1, r2)
 #define s390_lhg(c, r, x, b, d)                S390_RXY(c, 0xe315, r, x, b, d)
+#define s390_lghr(c, r1, r2)           S390_RRE(c, 0xb907, r1, r2)
 #define s390_lhi(c, r, v)              S390_RI(c, 0xa78, r, v)
 #define s390_lhy(c, r, x, b, d)                S390_RXY(c, 0xe378, r, x, b, d)
+#define s390_llcr(c, r1, r2)           S390_RRE(c, 0xb994, r1, r2)
 #define s390_llgc(c, r, x, b, d)       S390_RXY(c, 0xe390, r, x, b, d)
+#define s390_llgcr(c, r1, r2)          S390_RRE(c, 0xb984, r1, r2)
 #define s390_llgf(c, r, x, b, d)       S390_RXY(c, 0xe316, r, x, b, d)
 #define s390_llgfr(c, r1, r2)          S390_RRE(c, 0xb916, r1, r2)
 #define s390_llgh(c, r, x, b, d)       S390_RXY(c, 0xe391, r, x, b, d)
+#define s390_llghr(c, r1, r2)          S390_RRE(c, 0xb985, r1, r2)
+#define s390_llhr(c, r1, r2)           S390_RRE(c, 0xb995, r1, r2)
 #define s390_lm(c, r1, r2, b, d)       S390_RS_1(c, 0x98, r1, r2, b, d)
 #define s390_lmg(c, r1, r2, b, d)      S390_RSY_1(c, 0xeb04, r1, r2, b, d)
 #define s390_lndbr(c, r1, r2)          S390_RRE(c, 0xb311, r1, r2)
@@ -764,7 +773,6 @@ typedef struct {
 #define s390_stey(c, r, x, b, d)       S390_RXY(c, 0xed66, r, x, b, d)
 #define s390_stfpc(c, b, d)            S390_S(c, 0xb29c, b, d)
 #define s390_stg(c, r, x, b, d)                S390_RXY(c, 0xe324, r, x, b, d)
-#define s390_stg(c, r, x, b, d)                S390_RXY(c, 0xe324, r, x, b, d)
 #define s390_sth(c, r, x, b, d)                S390_RX(c, 0x40, r, x, b, d)
 #define s390_sthy(c, r, x, b, d)       S390_RXY(c, 0xe370, r, x, b, d)
 #define s390_stm(c, r1, r2, b, d)      S390_RS_1(c, 0x90, r1, r2, b, d)