X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fmcs51%2Fgen.h;h=ada89d6acdd75b0ff18645416437d2c452c852e0;hb=0e6cf188b9f92fb856bf66a17d2e1662497d8ac0;hp=4c5045793fc613ddbcf9093e40de992cda06c666;hpb=1e268ec9106bf4b907eff98c705e11689c9dcb64;p=fw%2Fsdcc diff --git a/src/mcs51/gen.h b/src/mcs51/gen.h index 4c504579..ada89d6a 100644 --- a/src/mcs51/gen.h +++ b/src/mcs51/gen.h @@ -29,9 +29,9 @@ enum { AOP_LIT = 1, AOP_REG, AOP_DIR, - AOP_DPTR, AOP_DPTR2, AOP_R0, AOP_R1, + AOP_DPTR, AOP_R0, AOP_R1, AOP_STK, AOP_IMMD, AOP_STR, - AOP_CRY, AOP_ACC + AOP_CRY, AOP_ACC, AOP_DUMMY }; /* type asmop : a homogenised type for @@ -53,6 +53,7 @@ typedef struct asmop AOP_CRY - carry contains the value of this AOP_STR - array of strings AOP_ACC - result is in the acc:b pair + AOP_DUMMY - read as 0, discard writes */ short coff; /* current offset */ short size; /* total size */ @@ -65,7 +66,11 @@ typedef struct asmop regs *aop_reg[4]; /* array of registers */ char *aop_dir; /* if direct */ regs *aop_ptr; /* either -> to r0 or r1 */ - char *aop_immd; /* if immediate others are implied */ + struct { + int from_cast_remat; /* cast remat created this : immd2 field used for highest order*/ + char *aop_immd1; /* if immediate others are implied */ + char *aop_immd2; /* cast remat will generate this */ + } aop_immd; int aop_stk; /* stack offset when AOP_STK */ char *aop_str[4]; /* just a string array containing the location */ }