Mercurial > hg > CbC > old > device
diff mc-code-powerpc.c @ 449:c55363eff5e5
parallel assignment (modify not completed)
author | kono |
---|---|
date | Thu, 25 Nov 2004 16:56:26 +0900 |
parents | 5ec2a88b9f4d |
children | eaf9e2746c83 |
line wrap: on
line diff
--- a/mc-code-powerpc.c Mon Nov 22 22:52:12 2004 +0900 +++ b/mc-code-powerpc.c Thu Nov 25 16:56:26 2004 +0900 @@ -274,7 +274,7 @@ function call stack frame <-------r1_offset------------------------------> <------------lvar_offset0------> - <--lvar_offset--> + <--lvar_offset--> r30(?) r1 r+ +------------+---+---------------+----------+--------------+----+ - callee arg xx register save local caller arg xx reg_save disp max_func_args*SIZE_OF_INT @@ -291,11 +291,15 @@ *SIZE_OF_INT *SIZE_OF_INT */ -int arg_offset = 24; int arg_offset1 = 24; int disp_offset = -12; +static int arg_offset = 24; +static int arg_offset1 = 24; +int disp_offset = -12; // #define func_disp_offset 60 #define func_disp_offset 68 #define r1_offset func_disp_offset+12 -int code_disp_offset = 0; int jump_offset = 0; +static int code_disp_offset = 0; +// static int jump_offset = 0; + #define CODE_LVAR l+code_disp_offset #define CODE_CALLER_ARG (l-ARG_LVAR_OFFSET)+arg_offset1 #define FUNC_LVAR l+disp_offset @@ -1770,7 +1774,7 @@ my_func_args = offset; } -static int +int not_simple_p(int e3) { return e3==FUNCTION||e3==CONV/*||e3==RSTRUCT*/||e3==STASS|| @@ -2750,7 +2754,7 @@ { int r1_offsetv; disp&= -SIZE_OF_INT; - r1_offsetv = -disp+max_func_args*SIZE_OF_INT+code_disp_offset+8; + r1_offsetv = -disp+max_func_args*SIZE_OF_INT +code_disp_offset +8+32; printf(".set L_%d,%d\n",code_disp_label,-r1_offsetv); if (max_func_arg_label) {