diff mc-code.h @ 107:06f72222d6b5

prevent destorying function argument (incomeplete)
author kono
date Tue, 18 Mar 2003 12:41:32 +0900
parents 7e3d59e56a53
children 69e2e763cce5
line wrap: on
line diff
--- a/mc-code.h	Tue Mar 18 11:00:04 2003 +0900
+++ b/mc-code.h	Tue Mar 18 12:41:32 2003 +0900
@@ -26,33 +26,32 @@
 extern int get_fregister_var(NMTBL *n);
 extern int get_input_register_var(int,NMTBL *);
 extern int get_input_fregister_var(int,NMTBL *);
-extern void emit_push(void);
-extern void emit_push_x(int xreg);
+extern void emit_push();
 extern int emit_pop(int type);
 extern void gexpr_code_init();
 extern int  code_csvalue();
 extern void code_cmpdimm(int e, int csreg);
-extern void code_gvar(int e1);
-extern void code_rgvar(int e1);
-extern void code_crgvar(int e1);
-extern void code_lvar(int e2);
-extern void code_register(int e2);
+extern void code_gvar(int e1,int reg);
+extern void code_rgvar(int e1,int reg);
+extern void code_crgvar(int e1,int reg);
+extern void code_lvar(int e2,int reg);
+extern void code_register(int e2,int reg);
 extern void code_rlvar(int e2,int reg);
 extern void code_crlvar(int e2,int reg);
-extern void code_fname(char *e2);
-extern void code_const(int e2);
-extern void code_neg();
-extern void code_not();
-extern void code_lnot();
-extern void code_preinc(int e1,int e2);
-extern void code_postinc(int e1,int e2);
-extern void code_cpostinc(int e1,int e2);
-extern void code_cpreinc(int e1,int e2);
-extern void code_cpostdec(int e1,int e2);
-extern void code_cpredec(int e1,int e2);
-extern void code_return();
-extern void code_environment();
-extern void code_bool(int e1);
+extern void code_fname(char *e2,int reg);
+extern void code_const(int e2,int reg);
+extern void code_neg(int reg);
+extern void code_not(int reg);
+extern void code_lnot(int reg);
+extern void code_preinc(int e1,int e2,int reg);
+extern void code_postinc(int e1,int e2,int reg);
+extern void code_cpostinc(int e1,int e2,int reg);
+extern void code_cpreinc(int e1,int e2,int reg);
+extern void code_cpostdec(int e1,int e2,int reg);
+extern void code_cpredec(int e1,int e2,int reg);
+extern void code_return(int reg);
+extern void code_environment(int reg);
+extern void code_bool(int e1,int reg);
 extern char *code_gt(int cond);
 extern char *code_ugt(int cond);
 extern char *code_ge(int cond);
@@ -63,7 +62,7 @@
 extern void code_cmp_rgvar(int e1);
 extern void code_cmp_rlvar(int e1);
 extern void code_cmp_register(int e2);
-extern void string(int e1);
+extern void code_string(int e1,int reg);
 extern void emit_copy(int from,int  to,int length,int offset,int value,int det);
 extern int function(int e1);
 extern void code_frame_pointer(int e3);
@@ -85,6 +84,7 @@
 extern void jcond(int l, char cond);
 extern void jmp(int l);
 extern void code_set_fixed_creg(int mode);
+extern void code_set_return_register(int mode);
 extern void text_mode(void);
 extern void global_table(void);
 extern int lvar(int l);
@@ -95,27 +95,27 @@
 
 extern int dpop_register();
 extern int emit_dpop(int);
-extern void code_fregister(int e2);
+extern void code_fregister(int e2,int reg);
 extern void code_cmp_fregister(int);
 extern void code_cmp_drgvar(int);
 extern void code_cmp_drlvar(int);
 extern void code_dassign(int,int,int);
 extern void code_dassign_gvar(int,int,int);
 extern void code_dassign_lvar(int,int,int);
-extern void code_dconst(int);
-extern void code_dneg();
-extern void code_drgvar(int,int);
-extern void code_drlvar(int,int);
+extern void code_dconst(int,int);
+extern void code_dneg(int);
+extern void code_drgvar(int,int,int);
+extern void code_drlvar(int,int,int);
 extern void dtosop(int,int);
 extern void emit_dpop_free(int);
 extern void emit_dpush();
-extern void code_i2d();
-extern void code_d2i();
-extern void code_u2d();
-extern void code_d2u();
+extern void code_i2d(int,int);
+extern void code_d2i(int,int);
+extern void code_u2d(int,int);
+extern void code_d2u(int,int);
 
-extern void code_dpreinc(int e1,int e2,int d);
-extern void code_dpostinc(int e1,int e2,int d);
+extern void code_dpreinc(int e1,int e2,int d,int reg);
+extern void code_dpostinc(int e1,int e2,int d,int reg);
 extern void code_dassop(int op,int d);
 
 extern void code_arg_register(int);