From: ceriel Date: Mon, 9 Feb 1987 16:39:05 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: release-5-5~4704 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=e83991f5331b98817af371e4095eb827f54df292;p=ack.git *** empty log message *** --- diff --git a/mach/z80/cg/mach.c b/mach/z80/cg/mach.c index 89abf0c96..16108fcc0 100644 --- a/mach/z80/cg/mach.c +++ b/mach/z80/cg/mach.c @@ -43,18 +43,28 @@ con_part(sz,w) register sz; word w; { } con_mult(sz) word sz; { - long l; + long atol(); if (argval != 4) fatal("bad icon/ucon size"); - l = atol(str); - fprintf(codefile,".short\t%d\n",(int)l); - fprintf(codefile,".short\t%d\n",(int)(l>>16)); + fprintf(codefile, ".data4\t%ld\n", atol(str)); } con_float() { + static int been_here; + int sz = argval; - fatal("no reals"); + if (sz != 4 && sz != 8) { + fatal("bad fcon size"); + } + if (! been_here) { + been_here = 1; + fprintf(stderr,"warning: dummy floating constant(s)\n"); + } + while (sz) { + fprintf(codefile, ".data4 0 !dummy float\n"); + sz -= 4; + } } @@ -96,8 +106,8 @@ mes(type) word type ; { } char *segname[] = { - ".text", - ".data", - ".data", - ".bss" + ".sect .text", + ".sect .data", + ".sect .rom", + ".sect .bss" }; diff --git a/mach/z80/cg/mach.h b/mach/z80/cg/mach.h index 8648d8c7a..60972b100 100644 --- a/mach/z80/cg/mach.h +++ b/mach/z80/cg/mach.h @@ -12,7 +12,7 @@ #define cst_fmt "%d" #define off_fmt "%d" -#define ilb_fmt "I%03x%x" +#define ilb_fmt "I%x_%x" #define dlb_fmt "_%d" #define hol_fmt "hol%d" @@ -20,11 +20,12 @@ #define arg_off "4+%d(bp)" #define hol_off "%d+hol%d" -#define con_cst(x) fprintf(codefile,".word\t%d\n",x) -#define con_ilb(x) fprintf(codefile,".word\t%s\n",x) -#define con_dlb(x) fprintf(codefile,".word\t%s\n",x) +#define con_cst(x) fprintf(codefile,".data2\t%d\n",x) +#define con_ilb(x) fprintf(codefile,".data2\t%s\n",x) +#define con_dlb(x) fprintf(codefile,".data2\t%s\n",x) -#define modhead "" +#define modhead ".sect .text; .sect .rom; .sect .data; .sect .bss\n" + +#define fmt_id(fs, ft) sprintf(ft, "_%s", fs) -#define id_first '_' #define BSS_INIT 0