Mercurial > hg > CbC > old > device
diff mc-code-ia32.c @ 195:c193120ee2a6
*** empty log message ***
author | kono |
---|---|
date | Sun, 04 Apr 2004 21:17:10 +0900 |
parents | 1b1c58483e67 |
children | 5f70abd9453d |
line wrap: on
line diff
--- a/mc-code-ia32.c Sat Jan 10 17:13:49 2004 +0900 +++ b/mc-code-ia32.c Sun Apr 04 21:17:10 2004 +0900 @@ -149,11 +149,13 @@ static int edx_setup(); static void edx_cleanup(); static void local_table(void); +#if FLOAT_CODE static char * fload(int d); static int code_d1(double d); static int code_d2(double d); +static void code_save_fstacks(); +#endif static void code_save_stacks(); -static void code_save_fstacks(); void code_init(void) @@ -215,6 +217,8 @@ int use_int(int i) { return i;} int use_float(int i) { return i;} int use_double(int i) { return i;} +int use_longlong(int i) { return i; } + void gexpr_code_init(void){ @@ -275,6 +279,12 @@ return -1; } +int +get_lregister_var(NMTBL *n) +{ + return -1; +} + int register_full(void) { @@ -1082,11 +1092,13 @@ e3 = cadr(e2 = cadr(e1)); g_expr(e2); switch (car(e1)) { +#if FLOAT_CODE case FRINDIRECT: case DRINDIRECT: printf("\t%s (%s)\n",fload(car(e1)==DRINDIRECT),register_name(creg,0)); t=DOUBLE; return t; break; +#endif case CRINDIRECT: byte = 1; op="movsbl";t=CHAR; break; @@ -1581,8 +1593,10 @@ emit_data(int e, int t, NMTBL *n) { int l; +#if FLOAT_CODE double d; float f; +#endif char *name; name = n->nm; if(mode!=GDECL && mode!=STADECL) { @@ -1612,12 +1626,14 @@ printf("\t.long %d\n",cadr(e)); gpc += size_of_int; } +#if FLOAT_CODE } else if(t==DOUBLE) { d = dcadr(e); printf("\t.long\t0x%x,0x%x\n",code_d1(d),code_d2(d)); } else if(t==FLOAT) { f = dcadr(e); printf("\t.long\t0x%x\n",*(int *)&f); +#endif } else if(t!=CHAR) { gpc += size_of_int; if(car(e)==ADDRESS&&car(cadr(e))==GVAR) { @@ -1710,6 +1726,8 @@ printf("\t.type\t%s,@object\n",name); } +#if FLOAT_CODE + /* floating point */ @@ -2002,6 +2020,8 @@ printf("# fpush:%d\n",freg_sp); } +#endif + void code_save_stacks() { @@ -2022,9 +2042,12 @@ creg=screg; } } +#if FLOAT_CODE code_save_fstacks(); +#endif } +#if FLOAT_CODE void code_save_fstacks() { @@ -2040,5 +2063,215 @@ } use = uses; } +#endif + + + +#if LONGLONG_CODE + + +/* 64bit int part */ + +void lrexpr(int e1, int e2,int l1, int op) +{ +} + +int lpop_register() +{ + return 0; +} + +int emit_lpop() +{ + return 0; +} + +void code_lregister(int e2,int reg) +{ + +} + +void code_cmp_lregister(int reg) +{ + +} + +void code_cmp_lrgvar(int e1,int e2) +{ + +} + +void code_cmp_lrlvar(int e1,int e2) +{ + +} + +void code_lassign(int e1,int e2) +{ + +} + +void code_lassign_gvar(int e1,int e2) +{ + +} + +void code_lassign_lvar(int e1,int e2) +{ + +} + +void code_lassign_lregister(int e2,int reg) +{ + +} + +void code_lconst(int e1,int e2) +{ + +} + +void code_lneg(int e1,int e2) +{ + +} + +void code_lrgvar(int e1,int e2) +{ + +} + +void code_lrlvar(int e1,int e2) +{ + +} + +void ltosop(int e1,int e2) +{ + +} + +void emit_lpop_free(int e1) +{ + +} + +void emit_lpush() +{ + +} + +void code_i2ll(int creg) +{ + +} + +void code_i2ull(int creg) +{ + +} + +void code_u2ll(int creg) +{ + +} + +void code_u2ull(int creg) +{ + +} + +void code_ll2i(int creg) +{ + +} + +void code_ll2u(int creg) +{ + +} + +void code_ull2i(int creg) +{ + +} + +void code_ull2u(int creg) +{ + +} + +#if FLOAT_CODE +void code_d2ll(int creg) +{ + +} + +void code_d2ull(int creg) +{ + +} + +void code_f2ll(int creg) +{ + +} + +void code_f2ull(int creg) +{ + +} + +void code_ll2d(int creg) +{ + +} + +void code_ll2f(int creg) +{ + +} + +void code_ull2d(int creg) +{ + +} + +void code_ull2f(int creg) +{ + +} + +void code_ull2ll(int creg) +{ + +} + +void code_ull2ull(int creg) +{ + +} + +#endif + + +void code_lpreinc(int e1,int e2,int reg) +{ + +} + +void code_lpostinc(int e1,int e2,int reg) +{ + +} + +void code_lassop(int op) +{ + +} + + +#endif /* end */ +