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) {