X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fds390%2Fgen.h;h=907b9601a08970d8758278245c1d1c5006029213;hb=0ddac837e50a0bcf1e3ddf35542eb65a8c158020;hp=c9589a0a64702c817ae6fe6ff0f2f12ed806ca1c;hpb=b4d69dfd516f175255aa87b18b59dcf309d98b46;p=fw%2Fsdcc diff --git a/src/ds390/gen.h b/src/ds390/gen.h index c9589a0a..907b9601 100644 --- a/src/ds390/gen.h +++ b/src/ds390/gen.h @@ -31,7 +31,7 @@ enum AOP_REG, AOP_DIR, AOP_DPTR, AOP_DPTR2, AOP_R0, AOP_R1, AOP_STK, AOP_IMMD, AOP_STR, - AOP_CRY, AOP_ACC + AOP_CRY, AOP_ACC, AOP_DPTRn, AOP_DUMMY }; /* type asmop : a homogenised type for @@ -53,6 +53,8 @@ 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_DPTRn - is in dptr(n) + AOP_DUMMY - read as 0, discard writes */ short coff; /* current offset */ short size; /* total size */ @@ -61,20 +63,24 @@ typedef struct asmop unsigned freed:1; /* already freed */ union { + short dptr; /* if AOP_DPTRn */ value *aop_lit; /* if literal */ 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 */ + char *aop_str[5]; /* just a string array containing the location */ } aopu; } asmop; void gen390Code (iCode *); - -extern unsigned fReturnSize_390; +void ds390_emitDebuggerSymbol (char *); #endif