Author: leo
Date: Thu Feb  2 13:57:28 2006
New Revision: 11408

Modified:
   trunk/compilers/imcc/imcc.y
   trunk/compilers/imcc/imcparser.c
   trunk/compilers/imcc/instructions.c
   trunk/compilers/imcc/reg_alloc.c
Log:
Register allocation - work around bug described in #38406

* r11402 has revealed obviously a weird bug (sub SymRegs seem
  to be shared, all pointing to the most recent pcc_sub call
  structure), which caused some registers not to be allocated,
  if these weren't used elsewhere
This is fixed so far, pge/mklib.pir is working again


Modified: trunk/compilers/imcc/imcc.y
==============================================================================
--- trunk/compilers/imcc/imcc.y (original)
+++ trunk/compilers/imcc/imcc.y Thu Feb  2 13:57:28 2006
@@ -1096,11 +1096,11 @@ assignment:
             cur_call = NULL;
             $$ = 0;
          }
-   |
+   | '('
          {
             $<i>$ = IMCC_create_itcall_label(interp);
          }
-     '(' targetlist  ')' '=' the_sub '(' arglist ')'
+      targetlist  ')' '=' the_sub '(' arglist ')'
          {
            IMCC_itcall_sub(interp, $6);
            cur_call = NULL;

Modified: trunk/compilers/imcc/imcparser.c
==============================================================================
--- trunk/compilers/imcc/imcparser.c    (original)
+++ trunk/compilers/imcc/imcparser.c    Thu Feb  2 13:57:28 2006
@@ -794,7 +794,7 @@ union yyalloc
 /* YYFINAL -- State number of the termination state. */
 #define YYFINAL  41
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   733
+#define YYLAST   737
 
 /* YYNTOKENS -- Number of terminals. */
 #define YYNTOKENS  132
@@ -973,8 +973,8 @@ static const short yyrhs[] =
      117,    63,   102,    -1,   229,   117,    62,   245,    -1,    62,
      245,   117,   237,    -1,    21,   229,    72,   237,    -1,    21,
      229,    72,   237,    72,   237,    -1,    21,   229,    72,   237,
-     118,   238,   119,    -1,   229,   117,   219,    -1,    -1,   212,
-     120,   226,   121,   117,   217,   120,   221,   121,    -1,   213,
+     118,   238,   119,    -1,   229,   117,   219,    -1,    -1,   120,
+     212,   226,   121,   117,   217,   120,   221,   121,    -1,   213,
       -1,   215,    -1,   216,    -1,   229,   117,    14,    -1,    -1,
       67,   214,   120,   226,   121,    -1,   229,    33,   237,    -1,
      229,    34,   237,    -1,   229,    35,   237,    -1,   229,    36,
@@ -1033,7 +1033,7 @@ static const unsigned short yyrline[] =
     1036,  1037,  1038,  1039,  1040,  1041,  1042,  1043,  1045,  1047,
     1049,  1051,  1053,  1055,  1057,  1059,  1061,  1063,  1065,  1067,
     1069,  1071,  1073,  1075,  1077,  1080,  1082,  1086,  1088,  1090,
-    1093,  1100,  1100,  1108,  1109,  1110,  1111,  1115,  1115,  1121,
+    1093,  1100,  1099,  1108,  1109,  1110,  1111,  1115,  1115,  1121,
     1123,  1125,  1127,  1129,  1131,  1133,  1135,  1137,  1139,  1141,
     1143,  1145,  1150,  1157,  1158,  1159,  1164,  1165,  1166,  1169,
     1170,  1175,  1174,  1184,  1185,  1191,  1197,  1199,  1203,  1207,
@@ -1221,38 +1221,38 @@ static const unsigned short yydefact[] =
      142,     0,     0,   139,   144,   137,     0,   291,     0,   141,
       52,    49,   138,   171,   140,    75,    54,     0,     0,     0,
        0,     0,     0,     0,     0,   156,     0,   159,   162,     0,
-       0,     0,   227,     0,   117,   118,   243,   244,   286,   161,
-     169,     0,   170,   123,     0,   152,     0,   223,   224,   225,
+       0,     0,   227,     0,   117,   118,   243,   244,   286,   221,
+     161,   169,     0,   170,   123,     0,   152,   223,   224,   225,
      251,   168,   153,   245,   110,     0,   165,     0,     0,     0,
        0,   167,     0,   154,   155,     0,     0,     0,     0,   322,
-     323,     0,   128,   164,   245,   130,     0,    76,   166,   121,
-     149,   269,     0,     0,     0,     0,     0,     0,     0,     0,
+     323,     0,   128,   164,   245,   130,     0,    76,   166,   269,
+     121,   149,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,   250,   249,     0,   303,
        0,    55,     0,     0,     0,   278,   279,   280,   281,   282,
      283,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   132,   132,   269,   102,   124,     0,   267,
-       0,   110,   253,   229,   230,   231,   232,   235,   236,   237,
+       0,     0,     0,   132,   132,   269,   102,     0,   267,     0,
+     110,   124,   253,   229,   230,   231,   232,   235,   236,   237,
      238,   234,   233,   239,   240,   241,   226,     0,     0,     0,
      320,   286,     0,     0,     0,   220,   301,   179,     0,   247,
      248,   246,   112,   113,   114,   115,   111,   110,     0,   274,
      276,     0,     0,   275,   277,     0,   217,   150,   157,   158,
        0,     0,   216,   320,     0,   133,   259,     0,     0,    80,
-       0,     0,     0,     0,   264,   320,     0,   255,   210,   211,
+       0,     0,     0,   264,     0,   320,     0,   255,   210,   211,
      215,   214,   242,   180,   181,   182,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,   303,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,    56,   272,     0,   273,     0,     0,   303,     0,
        0,     0,     0,     0,   129,   258,   131,   228,     0,     0,
-       0,     0,   125,     0,   119,   120,   122,     0,   268,     0,
-     265,     0,     0,     0,   252,     0,   303,     0,   303,   188,
+       0,     0,   268,     0,   265,     0,   125,     0,   119,   120,
+     122,     0,     0,     0,   252,     0,   303,     0,   303,   188,
      197,   198,   202,   191,   192,   193,   196,   194,   195,   186,
      199,   200,   201,   190,     0,   184,   205,   183,   185,   187,
      189,   203,   204,     0,     0,   270,   271,   218,     0,   151,
      160,   163,   134,   320,   135,   261,   262,   260,   104,     0,
-       0,     0,     0,    78,   103,   259,   126,     0,     0,   257,
+       0,     0,     0,    78,   103,     0,     0,   259,   126,   257,
      320,   254,   208,     0,   212,     0,   206,   207,   116,   219,
-       0,     0,    81,     0,     0,     0,     0,   105,     0,   127,
-     266,   253,     0,   209,   213,   136,     0,    96,     0,    97,
+       0,     0,    81,     0,     0,     0,     0,   105,     0,   266,
+     253,   127,     0,   209,   213,   136,     0,    96,     0,    97,
       99,     0,    98,     0,     0,    79,     0,   256,   263,     0,
        0,     0,   108,     0,    77,     0,   222,    95,   101,   100,
        0,   110,   106,     0,   107,   109
@@ -1265,12 +1265,12 @@ static const short yydefgoto[] =
       63,    95,    64,    65,   102,   103,   129,   150,    19,    39,
       66,    20,    21,    28,    91,   166,   180,   191,   198,   206,
      139,   118,   119,   164,   165,   192,    22,    38,    94,   168,
-     230,   316,   527,   440,   120,   121,   122,   503,   379,   441,
-     544,   555,   560,   291,   356,   231,   446,   232,   317,   380,
-     447,   233,   313,   314,   374,   193,   194,   195,    68,    69,
-      70,   204,   368,   234,   255,   257,   258,    36,    37,   235,
-     236,   237,   266,   238,   239,   240,   290,   241,   272,   386,
-     375,   435,   497,   319,   320,   242,   302,    85,   152,   153,
+     231,   316,   527,   440,   120,   121,   122,   503,   379,   441,
+     544,   555,   560,   291,   356,   232,   450,   233,   321,   384,
+     451,   234,   313,   314,   374,   193,   194,   195,    68,    69,
+      70,   204,   368,   235,   255,   257,   258,    36,    37,   236,
+     269,   237,   266,   238,   239,   240,   290,   241,   272,   386,
+     375,   435,   497,   318,   319,   242,   302,    85,   152,   153,
      154,    53,    54,   144,   155,   376,    48,    49,    87,   133,
       88,    89,    90,   261
 };
@@ -1280,80 +1280,80 @@ static const short yydefgoto[] =
 #define YYPACT_NINF -319
 static const short yypact[] =
 {
-      13,  -319,    38,   -72,   -53,   -51,  -319,  -319,   171,  -319,
-    -319,    44,    70,    13,  -319,  -319,   109,  -319,  -319,  -319,
-    -319,  -319,  -319,    12,   116,    55,    62,  -319,    27,   171,
-    -319,  -319,  -319,  -319,  -319,  -319,    49,  -319,    51,   -18,
-    -319,  -319,  -319,  -319,  -319,  -319,    37,    39,    35,   385,
-    -319,  -319,  -319,  -319,  -319,    68,    54,  -319,  -319,  -319,
-     175,  -319,  -319,  -319,   106,  -319,    86,  -319,    19,    91,
-    -319,  -319,  -319,  -319,   182,  -319,  -319,  -319,  -319,  -319,
-    -319,  -319,  -319,  -319,  -319,  -319,   110,   -63,  -319,  -319,
-    -319,   256,    77,   105,   256,    84,  -319,  -319,  -319,   182,
-      96,  -319,   201,    97,  -319,  -319,   182,  -319,   385,  -319,
-    -319,  -319,  -319,  -319,  -319,   132,  -319,   140,  -319,  -319,
-     213,     6,  -319,   105,  -319,   223,   494,  -319,   137,   256,
-    -319,   480,  -319,   385,  -319,    30,   113,  -319,  -319,   256,
-    -319,  -319,  -319,  -319,  -319,   144,  -319,   159,   173,  -319,
-    -319,   153,  -319,   200,  -319,  -319,  -319,   154,   155,  -319,
-    -319,  -319,  -319,  -319,   -46,  -319,   270,  -319,   270,   186,
-    -319,  -319,   158,  -319,   480,  -319,  -319,   113,  -319,  -319,
-       3,     3,  -319,  -319,   160,  -319,  -319,  -319,   291,  -319,
-    -319,   292,   224,   174,    91,  -319,   229,  -319,   171,  -319,
-    -319,  -319,  -319,   439,  -319,  -319,  -319,    74,   -59,    41,
-      89,   182,   294,   207,   208,  -319,   211,   206,  -319,   -70,
-     410,   212,  -319,   322,  -319,  -319,  -319,  -319,   480,  -319,
-    -319,   329,  -319,  -319,   332,  -319,   217,  -319,  -319,  -319,
-    -319,  -319,  -319,   285,  -319,   318,  -319,   182,   101,   182,
-     198,  -319,   279,  -319,  -319,   171,   280,   171,   171,  -319,
-    -319,   251,  -319,  -319,   -52,  -319,   257,  -319,  -319,  -319,
-    -319,   604,   258,   182,   182,   182,   182,   182,   182,   182,
-     182,   182,   182,   182,   182,   182,  -319,  -319,   320,  -319,
-     205,   232,   277,   370,   -59,  -319,  -319,  -319,  -319,  -319,
-    -319,   -59,   182,   371,   -59,   -59,   182,   182,   283,   294,
-     286,   288,   182,   539,   539,   604,  -319,  -319,   367,  -319,
-     -32,  -319,   553,  -319,  -319,  -319,  -319,  -319,  -319,  -319,
-    -319,  -319,  -319,  -319,  -319,  -319,  -319,   508,   -70,   296,
-     284,   480,   182,   182,   182,  -319,    61,   506,   287,  -319,
-    -319,  -319,  -319,  -319,  -319,   290,  -319,  -319,   -59,  -319,
-    -319,   397,   -59,  -319,  -319,   398,   -47,  -319,   339,  -319,
-     298,   299,  -319,   393,   -28,  -319,  -319,   -23,   -22,     7,
-      20,   294,   613,   300,   232,   404,   -13,  -319,   -45,   -12,
-    -319,  -319,  -319,  -319,  -319,  -319,   182,   182,   182,   182,
-     182,   182,   182,   182,   182,   182,   182,   182,   182,   182,
-     182,  -319,   182,   182,   182,   182,   182,   182,   182,   182,
-     308,   326,   232,  -319,   -59,  -319,   -59,   182,  -319,   331,
-     105,   105,   182,   567,  -319,   107,  -319,  -319,   182,   182,
-     -31,   430,  -319,   182,  -319,  -319,  -319,   432,  -319,   418,
-    -319,   595,   182,   581,  -319,   182,  -319,   182,  -319,  -319,
+      14,  -319,    27,   -55,   -31,    -7,  -319,  -319,    17,  -319,
+    -319,   120,   133,    14,  -319,  -319,   136,  -319,  -319,  -319,
+    -319,  -319,  -319,    35,   146,    81,    82,  -319,   -69,    17,
+    -319,  -319,  -319,  -319,  -319,  -319,    54,  -319,    57,   101,
+    -319,  -319,  -319,  -319,  -319,  -319,    71,    53,    65,   235,
+    -319,  -319,  -319,  -319,  -319,    90,    76,  -319,  -319,  -319,
+     190,  -319,  -319,  -319,   105,  -319,   100,  -319,     7,   104,
+    -319,  -319,  -319,  -319,   507,  -319,  -319,  -319,  -319,  -319,
+    -319,  -319,  -319,  -319,  -319,  -319,   129,   -60,  -319,  -319,
+    -319,   643,    93,    80,   643,   109,  -319,  -319,  -319,   507,
+     118,  -319,   207,    97,  -319,  -319,   507,  -319,   235,  -319,
+    -319,  -319,  -319,  -319,  -319,   124,  -319,   131,  -319,  -319,
+     257,     6,  -319,    80,  -319,   258,   479,  -319,   196,   643,
+    -319,   343,  -319,   235,  -319,    19,   113,  -319,  -319,   643,
+    -319,  -319,  -319,  -319,  -319,   154,  -319,   169,   184,  -319,
+    -319,   162,  -319,   211,  -319,  -319,  -319,   163,   164,  -319,
+    -319,  -319,  -319,  -319,   -57,  -319,   283,  -319,   283,   191,
+    -319,  -319,   177,  -319,   343,  -319,  -319,   113,  -319,  -319,
+       4,     4,  -319,  -319,   183,  -319,  -319,  -319,   299,  -319,
+    -319,   300,   234,    78,   104,  -319,   238,  -319,    17,  -319,
+    -319,  -319,  -319,   405,  -319,  -319,  -319,    46,   -62,    38,
+      72,   507,   149,   204,   206,  -319,   216,   221,  -319,    26,
+     175,   193,  -319,   325,  -319,  -319,  -319,  -319,   343,  -319,
+    -319,  -319,   326,  -319,  -319,   328,  -319,  -319,  -319,  -319,
+    -319,  -319,  -319,   281,  -319,   317,  -319,   507,   198,   507,
+     233,  -319,   273,  -319,  -319,    17,   275,    17,    17,  -319,
+    -319,   231,  -319,  -319,   -70,  -319,   229,  -319,  -319,   302,
+    -319,  -319,   230,   507,   507,   507,   507,   507,   507,   507,
+     507,   507,   507,   507,   507,   507,  -319,  -319,   434,  -319,
+     594,   203,   249,   342,   -62,  -319,  -319,  -319,  -319,  -319,
+    -319,   -62,   507,   358,   -62,   -62,   507,   507,   284,   149,
+     285,   290,   507,   538,   538,   302,  -319,   363,  -319,   -48,
+    -319,  -319,   552,  -319,  -319,  -319,  -319,  -319,  -319,  -319,
+    -319,  -319,  -319,  -319,  -319,  -319,  -319,   493,    26,   291,
+     274,   343,   507,   507,   507,  -319,   -59,   505,   287,  -319,
+    -319,  -319,  -319,  -319,  -319,   296,  -319,  -319,   -62,  -319,
+    -319,   397,   -62,  -319,  -319,   400,   -27,  -319,   339,  -319,
+     303,   304,  -319,   402,   -42,  -319,  -319,   -34,   -22,    -3,
+     149,   608,   306,   203,    15,   404,   -19,  -319,   -13,    40,
+    -319,  -319,  -319,  -319,  -319,  -319,   507,   507,   507,   507,
+     507,   507,   507,   507,   507,   507,   507,   507,   507,   507,
+     507,  -319,   507,   507,   507,   507,   507,   507,   507,   507,
+     308,   323,   203,  -319,   -62,  -319,   -62,   507,  -319,   329,
+      80,    80,   507,   566,  -319,    94,  -319,  -319,   507,   507,
+      45,   426,  -319,   416,  -319,   279,  -319,   507,  -319,  -319,
+    -319,   443,   507,   580,  -319,   507,  -319,   507,  -319,  -319,
     -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,
-    -319,  -319,  -319,  -319,   327,  -319,  -319,  -319,  -319,  -319,
-    -319,  -319,  -319,   182,   324,  -319,  -319,  -319,   328,  -319,
-    -319,  -319,  -319,   419,  -319,  -319,   321,  -319,  -319,   444,
-     182,   182,   622,    91,  -319,  -319,  -319,   294,   330,  -319,
-     434,  -319,  -319,   336,  -319,   337,  -319,  -319,  -319,  -319,
-     182,   357,  -319,     8,   460,     9,    10,  -319,   461,   107,
-    -319,   553,   182,  -319,  -319,  -319,   348,  -319,   182,  -319,
-    -319,   182,  -319,   182,    -7,  -319,   -11,  -319,  -319,   466,
-     468,   469,  -319,   294,  -319,   470,  -319,  -319,  -319,  -319,
-     171,  -319,  -319,   373,   232,  -319
+    -319,  -319,  -319,  -319,   319,  -319,  -319,  -319,  -319,  -319,
+    -319,  -319,  -319,   507,   335,  -319,  -319,  -319,   340,  -319,
+    -319,  -319,  -319,   440,  -319,  -319,   344,  -319,  -319,   458,
+     507,   507,   617,   104,  -319,   149,   345,  -319,  -319,  -319,
+     446,  -319,  -319,   349,  -319,   350,  -319,  -319,  -319,  -319,
+     507,   357,  -319,     9,   469,    12,    22,  -319,   470,  -319,
+     552,    94,   507,  -319,  -319,  -319,   354,  -319,   507,  -319,
+    -319,   507,  -319,   507,    -2,  -319,   -14,  -319,  -319,   472,
+     474,   475,  -319,   149,  -319,   477,  -319,  -319,  -319,  -319,
+      17,  -319,  -319,   380,   203,  -319
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const short yypgoto[] =
 {
-    -319,  -319,  -319,   463,  -319,  -319,  -319,  -319,  -319,  -319,
-     275,  -319,  -319,   415,  -319,  -319,  -319,   139,  -319,  -319,
-    -319,     2,  -319,  -319,  -319,  -319,   313,  -319,  -319,  -319,
-    -319,  -319,  -319,  -319,   305,   306,  -319,  -319,  -319,  -319,
-    -319,  -319,  -319,  -319,   -57,  -319,   351,  -319,  -319,  -319,
-    -319,  -319,  -319,  -318,  -319,  -319,  -319,  -319,  -319,  -319,
-    -319,  -319,  -319,  -319,   183,  -319,  -319,   309,   323,  -319,
-     -68,  -319,  -319,  -319,  -319,  -319,  -319,   -29,   162,  -319,
-    -319,  -319,  -319,  -319,  -319,    52,  -319,  -204,  -319,   -24,
-    -315,    14,  -319,   133,   209,  -319,   272,  -116,   295,  -319,
-     352,  -319,   235,  -180,   401,   -43,  -144,  -319,  -319,  -319,
-      -3,  -319,   -91,   190
+    -319,  -319,  -319,   478,  -319,  -319,  -319,  -319,  -319,  -319,
+     280,  -319,  -319,   421,  -319,  -319,  -319,   147,  -319,  -319,
+    -319,   -10,  -319,  -319,  -319,  -319,   322,  -319,  -319,  -319,
+    -319,  -319,  -319,  -319,   310,   311,  -319,  -319,  -319,  -319,
+    -319,  -319,  -319,  -319,   -80,  -319,   355,  -319,  -319,  -319,
+    -319,  -319,  -319,  -315,  -319,  -319,  -319,  -319,  -319,  -319,
+    -319,  -319,  -319,  -319,   179,  -319,  -319,   309,   305,  -319,
+     -68,  -319,  -319,  -319,  -319,  -319,  -319,   -29,   172,  -319,
+    -319,  -319,  -319,  -319,  -319,    56,  -319,  -192,  -319,   -20,
+    -318,     5,  -319,   132,   199,  -319,   267,  -114,   292,  -319,
+     347,  -319,   228,  -201,   393,   -43,  -146,  -319,  -319,  -319,
+     -61,  -319,   -91,   185
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -1363,158 +1363,158 @@ static const short yypgoto[] =
 #define YYTABLE_NINF -246
 static const short yytable[] =
 {
-      55,   104,   124,   384,     5,   172,    86,   387,   187,   107,
-     -83,    58,   537,   540,   542,   151,   263,     1,   438,     2,
-     552,     3,     4,   -39,   442,   427,   177,   455,   246,   184,
-     259,   105,   140,    99,    25,     5,   260,   125,     6,   422,
-     382,    67,     7,   142,   433,    23,   500,   100,    40,   433,
-     382,   143,   501,   502,    26,   247,   127,   553,   151,   453,
-     457,   453,   286,   132,   287,    86,    67,    27,   108,   554,
-      41,   428,   148,   456,     8,   178,   -70,    59,   138,   -43,
-     538,   541,   543,   146,   345,   443,    60,   243,   146,   383,
-      86,     9,   439,   434,    61,    62,   252,   101,   436,   437,
-     444,   -83,   445,   249,   264,   134,   458,   188,   454,    10,
-     556,   294,   151,    43,   359,   189,   190,    11,   494,    44,
-      45,   360,   495,   498,   363,   364,   496,    46,     5,    50,
-     156,   146,   157,    51,    47,    58,   158,    52,   511,    75,
-      76,    77,    78,    71,    79,   348,    72,    80,    81,    82,
-      83,    56,    84,    57,    73,   321,   295,   296,   297,   298,
-     299,   300,   159,   160,   161,   162,   248,   250,   251,   207,
-      92,    93,   346,   301,   350,   286,   244,   287,   423,    96,
-     245,  -245,   425,    98,   106,   146,    59,    75,    76,    77,
-      78,   126,    79,   369,   123,    80,    81,    82,    83,   321,
-      84,    59,   128,   -44,   293,   130,   303,   131,   304,   147,
-      60,    80,    81,    82,    83,   163,   387,   137,    61,    62,
-      30,    31,    32,    33,    34,   151,   308,   141,   310,   311,
+      55,   104,   124,   172,   387,   383,    86,   246,   438,   187,
+     -83,   -39,   107,   537,   125,   177,   540,   151,     1,   446,
+       2,    99,     3,     4,   381,   552,   542,   184,   263,    67,
+     433,   105,   140,    50,    23,   100,     5,    51,   433,     6,
+     142,    52,   422,     7,   286,   427,   287,   134,   143,   148,
+     381,    25,   247,   453,    67,   286,   127,   287,   453,   455,
+     151,  -245,   553,   132,   178,    86,    30,    31,    32,    33,
+      34,   108,   156,   382,   554,     8,    26,   -70,   138,   434,
+     447,   538,   439,   146,   541,   101,   249,   436,   146,   243,
+      86,   428,     9,   359,   543,   448,   345,   449,   252,   437,
+     360,   -83,   454,   363,   364,   456,   264,   556,   188,   495,
+      10,    27,   457,   496,   151,   494,   189,   190,    11,    35,
+     498,   157,   500,     5,    40,   158,   259,     5,   501,   502,
+      58,   146,   260,    41,    58,   511,    75,    76,    77,    78,
+      43,    79,    44,   348,    80,    81,    82,    83,   244,    84,
+      45,   -71,   245,    46,    47,   320,    56,   423,   458,    57,
+      72,   425,   159,   160,   161,   162,   248,   250,   251,   207,
+      75,    76,    77,    78,   346,    79,   350,    71,    80,    81,
+      82,    83,   188,    84,    73,   146,    80,    81,    82,    83,
+     189,   190,    92,    93,    96,   369,    59,    98,   -43,    59,
+      59,   320,   -44,   106,   293,    60,   303,   131,   294,    60,
+     123,   130,   387,    61,    62,   163,   126,    61,    62,   352,
+     353,   354,   355,   485,   128,   486,   308,   151,   310,   311,
      323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
-     333,   334,   335,   564,   485,   347,   486,   -71,   352,   353,
-     354,   355,   135,   295,   296,   297,   298,   299,   300,   361,
-     136,   169,   170,   365,   366,   448,   321,   474,   171,   372,
-     305,   173,   174,    35,   179,   175,   176,   183,   188,   197,
-      75,    76,    77,    78,   488,    79,   189,   190,    80,    81,
-      82,    83,   182,    84,   389,   199,   200,   201,   146,   393,
-     394,   395,   205,    75,    76,    77,    78,    50,    79,   253,
-     254,   349,   513,   -23,   515,    52,    84,   256,   273,   274,
-     275,   276,   277,   278,   279,   280,   267,   281,   282,   283,
-     284,   285,   265,   269,   336,   264,   270,   271,   292,   490,
-     491,   337,   109,   110,   111,   112,   113,   114,   115,   116,
-     117,   307,   309,   459,   460,   461,   462,   463,   464,   465,
-     466,   467,   468,   469,   470,   471,   472,   473,   312,   475,
-     476,   477,   478,   479,   480,   481,   482,   315,   322,   357,
-     358,   362,   338,   339,   487,   367,   526,   381,   370,   492,
-     371,   530,    75,    76,    77,    78,   499,    79,   391,   286,
-     505,   287,   288,   289,  -244,    84,   420,   424,   426,   509,
-     421,   429,   512,   432,   514,   430,   431,   451,    75,    76,
-      77,    78,   226,    79,   452,   483,   340,    81,    82,    83,
-     341,    84,   484,   489,   504,   528,   506,   561,   507,   520,
-     517,   521,   342,   343,   344,   518,   516,   519,   522,   208,
-     531,   209,   210,   211,   532,   533,   534,   523,   524,    74,
-     212,   213,   214,   536,   539,   545,   215,   216,   217,   548,
-     557,   218,   558,   559,   562,   565,    42,   535,   229,    97,
-     392,   181,   186,    75,    76,    77,    78,   196,    79,   547,
-     167,    80,    81,    82,    83,   549,    84,   377,   550,   388,
-     551,   219,   202,   508,   220,   221,   222,   546,    75,    76,
-      77,    78,   226,    79,   223,   450,   227,   203,   224,   529,
-     225,    84,   306,   268,   378,   351,   185,   145,   390,     0,
-     262,   563,     0,     0,     0,     0,     0,    75,    76,    77,
-      78,   226,    79,     0,     0,   227,     0,   396,     0,   228,
-      84,     0,     0,   397,   398,     0,     0,     0,     0,  -221,
-     399,   400,   401,   402,   403,   404,   405,     0,     0,     0,
-       0,     0,     0,     0,   406,   407,   408,   409,    75,    76,
-      77,    78,   142,    79,     0,     0,    80,    81,    82,    83,
-     143,    84,    75,    76,    77,    78,   142,    79,   149,     0,
-      80,    81,    82,    83,   143,    84,    75,    76,    77,    78,
-      35,    79,     0,     0,    80,    81,    82,    83,     0,    84,
-       0,   410,     0,     0,   411,     0,     0,     0,     0,   412,
-     413,   414,   415,   416,   417,   418,   419,    75,    76,    77,
-      78,     0,    79,     0,     0,   373,    81,    82,    83,     0,
-      84,    75,    76,    77,    78,     0,    79,     0,     0,   385,
+     333,   334,   335,   304,   135,   347,   564,    75,    76,    77,
+      78,   136,    79,   295,   296,   297,   298,   299,   300,   361,
+      84,   137,   141,   365,   366,   474,   442,   320,   147,   372,
+     301,   169,   170,    75,    76,    77,    78,   226,    79,   171,
+     173,   227,   488,   174,   175,   176,    84,   179,   295,   296,
+     297,   298,   299,   300,   389,   262,   183,   182,   146,   393,
+     394,   395,   197,   199,   200,   305,   253,   201,   254,    74,
+     513,   205,   515,   265,   273,   274,   275,   276,   277,   278,
+     279,   280,   256,   281,   282,   283,   284,   285,   -23,   267,
+     270,   264,   271,    75,    76,    77,    78,   292,    79,   490,
+     491,    80,    81,    82,    83,   307,    84,   309,   312,   315,
+     322,   357,   358,   459,   460,   461,   462,   463,   464,   465,
+     466,   467,   468,   469,   470,   471,   472,   473,   362,   475,
+     476,   477,   478,   479,   480,   481,   482,    75,    76,    77,
+      78,   226,    79,   380,   487,   227,   367,   370,   526,   492,
+      84,   529,   371,   391,  -244,   286,   499,   287,   288,   289,
+      75,    76,    77,    78,   507,    79,   420,   424,   317,   509,
+     426,   429,   512,    84,   514,   208,   421,   209,   210,   211,
+     430,   431,   432,   445,   452,   483,   212,   213,   214,   484,
+     504,   489,   215,   216,   217,   528,   505,   218,   516,   561,
+     517,    75,    76,    77,    78,   142,    79,   508,   336,    80,
+      81,    82,    83,   143,    84,   337,   518,   523,   524,   519,
+     520,   149,   522,   536,   521,   530,   532,   219,   533,   534,
+     220,   221,   222,   539,   545,   548,   557,   535,   558,   559,
+     223,   562,   565,   230,   224,    97,   225,   186,   392,   547,
+     181,    42,   196,   377,   167,   549,   338,   339,   550,   203,
+     551,   506,   202,    75,    76,    77,    78,   226,    79,   388,
+     546,   227,   531,   444,   378,   228,    84,   306,   351,   145,
+     268,   185,     0,   390,     0,   229,     0,     0,     0,     0,
+       0,   563,    75,    76,    77,    78,   226,    79,     0,     0,
+     340,    81,    82,    83,   341,    84,   396,     0,     0,     0,
+       0,     0,   397,   398,     0,     0,   342,   343,   344,   399,
+     400,   401,   402,   403,   404,   405,     0,     0,     0,     0,
+       0,     0,     0,   406,   407,   408,   409,    75,    76,    77,
+      78,   142,    79,     0,     0,    80,    81,    82,    83,   143,
+      84,    75,    76,    77,    78,    35,    79,     0,     0,    80,
       81,    82,    83,     0,    84,    75,    76,    77,    78,     0,
-      79,     0,     0,   493,    81,    82,    83,     0,    84,    75,
-      76,    77,    78,     0,    79,     0,     0,   510,    81,    82,
-      83,     0,    84,    75,    76,    77,    78,   226,    79,     0,
-       0,   227,    75,    76,    77,    78,    84,    79,     0,     0,
-     318,    75,    76,    77,    78,    84,    79,     0,     0,   449,
-      75,    76,    77,    78,    84,    79,     0,     0,   525,     0,
-       0,     0,     0,    84
+      79,     0,     0,    80,    81,    82,    83,     0,    84,     0,
+     410,     0,     0,   411,     0,     0,     0,     0,   412,   413,
+     414,   415,   416,   417,   418,   419,    75,    76,    77,    78,
+       0,    79,     0,     0,   373,    81,    82,    83,     0,    84,
+      75,    76,    77,    78,     0,    79,     0,     0,   385,    81,
+      82,    83,     0,    84,    75,    76,    77,    78,     0,    79,
+       0,     0,   493,    81,    82,    83,     0,    84,    75,    76,
+      77,    78,     0,    79,     0,     0,   510,    81,    82,    83,
+       0,    84,    75,    76,    77,    78,    50,    79,     0,     0,
+     349,     0,     0,     0,    52,    84,    75,    76,    77,    78,
+       0,    79,     0,     0,   443,    75,    76,    77,    78,    84,
+      79,     0,     0,   525,     0,     0,     0,     0,    84,   109,
+     110,   111,   112,   113,   114,   115,   116,   117
 };
 
 static const short yycheck[] =
 {
-      29,    69,    93,   321,    22,   149,    49,   322,     5,    72,
-       4,    29,     4,     4,     4,   131,   220,     4,    11,     6,
-      27,     8,     9,     4,     4,    72,    72,    72,   208,   173,
-     100,    74,   123,    14,   106,    22,   106,    94,    25,   357,
-      72,    39,    29,   102,    72,     7,    77,    28,     4,    72,
-      72,   110,    83,    84,   107,    14,    99,    64,   174,    72,
-      72,    72,   114,   106,   116,   108,    64,   118,   131,    76,
-       0,   118,   129,   118,    61,   121,    73,    95,    72,    97,
-      72,    72,    72,   126,   288,    65,   104,   203,   131,   121,
-     133,    78,    85,   121,   112,   113,   212,    78,   121,   121,
-      80,    95,    82,    14,   220,   108,   118,   104,   121,    96,
-     121,    10,   228,     4,   294,   112,   113,   104,   433,   107,
-       4,   301,    15,   438,   304,   305,    19,    72,    22,   102,
-     133,   174,   102,   106,    72,    29,   106,   110,   453,    98,
-      99,   100,   101,   106,   103,   289,   107,   106,   107,   108,
-     109,   102,   111,   102,   119,   271,    55,    56,    57,    58,
-      59,    60,    49,    50,    51,    52,   209,   210,   211,   198,
-     102,   117,   288,    72,   290,   114,   102,   116,   358,     4,
-     106,   120,   362,    97,    74,   228,    95,    98,    99,   100,
-     101,   107,   103,   309,   117,   106,   107,   108,   109,   315,
-     111,    95,   106,    97,   247,     4,   249,   110,    10,    72,
-     104,   106,   107,   108,   109,   102,   531,     4,   112,   113,
-      49,    50,    51,    52,    53,   341,   255,     4,   257,   258,
+      29,    69,    93,   149,   322,   320,    49,   208,    11,     5,
+       4,     4,    72,     4,    94,    72,     4,   131,     4,     4,
+       6,    14,     8,     9,    72,    27,     4,   173,   220,    39,
+      72,    74,   123,   102,     7,    28,    22,   106,    72,    25,
+     102,   110,   357,    29,   114,    72,   116,   108,   110,   129,
+      72,   106,    14,    72,    64,   114,    99,   116,    72,    72,
+     174,   120,    64,   106,   121,   108,    49,    50,    51,    52,
+      53,   131,   133,   121,    76,    61,   107,    73,    72,   121,
+      65,    72,    85,   126,    72,    78,    14,   121,   131,   203,
+     133,   118,    78,   294,    72,    80,   288,    82,   212,   121,
+     301,    95,   121,   304,   305,   118,   220,   121,   104,    15,
+      96,   118,    72,    19,   228,   433,   112,   113,   104,   102,
+     438,   102,    77,    22,     4,   106,   100,    22,    83,    84,
+      29,   174,   106,     0,    29,   453,    98,    99,   100,   101,
+       4,   103,   107,   289,   106,   107,   108,   109,   102,   111,
+       4,    73,   106,    72,    72,   269,   102,   358,   118,   102,
+     107,   362,    49,    50,    51,    52,   209,   210,   211,   198,
+      98,    99,   100,   101,   288,   103,   290,   106,   106,   107,
+     108,   109,   104,   111,   119,   228,   106,   107,   108,   109,
+     112,   113,   102,   117,     4,   309,    95,    97,    97,    95,
+      95,   315,    97,    74,   247,   104,   249,   110,    10,   104,
+     117,     4,   530,   112,   113,   102,   107,   112,   113,    16,
+      17,    18,    19,   424,   106,   426,   255,   341,   257,   258,
      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
-     283,   284,   285,   561,   424,   288,   426,    73,    16,    17,
-      18,    19,   120,    55,    56,    57,    58,    59,    60,   302,
-     120,   117,   103,   306,   307,   381,   382,   411,    95,   312,
-      72,   118,    72,   102,     4,   121,   121,   119,   104,   119,
-      98,    99,   100,   101,   428,   103,   112,   113,   106,   107,
-     108,   109,   106,   111,   337,     4,     4,    73,   341,   342,
-     343,   344,    73,    98,    99,   100,   101,   102,   103,   102,
-     102,   106,   456,   107,   458,   110,   111,   106,    33,    34,
-      35,    36,    37,    38,    39,    40,     4,    42,    43,    44,
-      45,    46,   120,     4,    14,   451,     4,   120,    20,   430,
-     431,    21,    86,    87,    88,    89,    90,    91,    92,    93,
-      94,    72,    72,   396,   397,   398,   399,   400,   401,   402,
-     403,   404,   405,   406,   407,   408,   409,   410,   117,   412,
-     413,   414,   415,   416,   417,   418,   419,   120,   120,   102,
-      10,    10,    62,    63,   427,   102,   502,    20,   102,   432,
-     102,   507,    98,    99,   100,   101,   439,   103,   102,   114,
-     443,   116,   117,   118,   120,   111,   119,    10,    10,   452,
-     120,    72,   455,    20,   457,   117,   117,   117,    98,    99,
-     100,   101,   102,   103,    20,   117,   106,   107,   108,   109,
-     110,   111,   106,   102,     4,   503,     4,   553,    20,    20,
-     483,   120,   122,   123,   124,   121,   119,   119,     4,    10,
-     120,    12,    13,    14,    20,   119,   119,   500,   501,    74,
-      21,    22,    23,   106,     4,     4,    27,    28,    29,   121,
-       4,    32,     4,     4,     4,   102,    13,   520,   203,    64,
-     341,   168,   177,    98,    99,   100,   101,   181,   103,   532,
-     139,   106,   107,   108,   109,   538,   111,   314,   541,   337,
-     543,    62,   193,   451,    65,    66,    67,   531,    98,    99,
-     100,   101,   102,   103,    75,   382,   106,   194,    79,   505,
-      81,   111,   250,   228,   315,   290,   174,   126,   338,    -1,
-     120,   560,    -1,    -1,    -1,    -1,    -1,    98,    99,   100,
-     101,   102,   103,    -1,    -1,   106,    -1,    41,    -1,   110,
-     111,    -1,    -1,    47,    48,    -1,    -1,    -1,    -1,   120,
-      54,    55,    56,    57,    58,    59,    60,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    68,    69,    70,    71,    98,    99,
-     100,   101,   102,   103,    -1,    -1,   106,   107,   108,   109,
-     110,   111,    98,    99,   100,   101,   102,   103,   118,    -1,
-     106,   107,   108,   109,   110,   111,    98,    99,   100,   101,
-     102,   103,    -1,    -1,   106,   107,   108,   109,    -1,   111,
-      -1,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,   125,   126,   127,   128,   129,   130,    98,    99,   100,
-     101,    -1,   103,    -1,    -1,   106,   107,   108,   109,    -1,
-     111,    98,    99,   100,   101,    -1,   103,    -1,    -1,   106,
+     283,   284,   285,    10,   120,   288,   561,    98,    99,   100,
+     101,   120,   103,    55,    56,    57,    58,    59,    60,   302,
+     111,     4,     4,   306,   307,   411,   380,   381,    72,   312,
+      72,   117,   103,    98,    99,   100,   101,   102,   103,    95,
+     118,   106,   428,    72,   121,   121,   111,     4,    55,    56,
+      57,    58,    59,    60,   337,   120,   119,   106,   341,   342,
+     343,   344,   119,     4,     4,    72,   102,    73,   102,    74,
+     456,    73,   458,   120,    33,    34,    35,    36,    37,    38,
+      39,    40,   106,    42,    43,    44,    45,    46,   107,     4,
+       4,   445,     4,    98,    99,   100,   101,    20,   103,   430,
+     431,   106,   107,   108,   109,    72,   111,    72,   117,   120,
+     120,   102,    10,   396,   397,   398,   399,   400,   401,   402,
+     403,   404,   405,   406,   407,   408,   409,   410,    10,   412,
+     413,   414,   415,   416,   417,   418,   419,    98,    99,   100,
+     101,   102,   103,    20,   427,   106,   102,   102,   502,   432,
+     111,   505,   102,   102,   120,   114,   439,   116,   117,   118,
+      98,    99,   100,   101,   447,   103,   119,    10,   106,   452,
+      10,    72,   455,   111,   457,    10,   120,    12,    13,    14,
+     117,   117,    20,   117,    20,   117,    21,    22,    23,   106,
+       4,   102,    27,    28,    29,   503,    20,    32,   119,   553,
+     483,    98,    99,   100,   101,   102,   103,     4,    14,   106,
+     107,   108,   109,   110,   111,    21,   121,   500,   501,   119,
+      20,   118,     4,   106,   120,   120,    20,    62,   119,   119,
+      65,    66,    67,     4,     4,   121,     4,   520,     4,     4,
+      75,     4,   102,   203,    79,    64,    81,   177,   341,   532,
+     168,    13,   181,   314,   139,   538,    62,    63,   541,   194,
+     543,   445,   193,    98,    99,   100,   101,   102,   103,   337,
+     530,   106,   507,   381,   315,   110,   111,   250,   290,   126,
+     228,   174,    -1,   338,    -1,   120,    -1,    -1,    -1,    -1,
+      -1,   560,    98,    99,   100,   101,   102,   103,    -1,    -1,
+     106,   107,   108,   109,   110,   111,    41,    -1,    -1,    -1,
+      -1,    -1,    47,    48,    -1,    -1,   122,   123,   124,    54,
+      55,    56,    57,    58,    59,    60,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    68,    69,    70,    71,    98,    99,   100,
+     101,   102,   103,    -1,    -1,   106,   107,   108,   109,   110,
+     111,    98,    99,   100,   101,   102,   103,    -1,    -1,   106,
      107,   108,   109,    -1,   111,    98,    99,   100,   101,    -1,
-     103,    -1,    -1,   106,   107,   108,   109,    -1,   111,    98,
-      99,   100,   101,    -1,   103,    -1,    -1,   106,   107,   108,
-     109,    -1,   111,    98,    99,   100,   101,   102,   103,    -1,
-      -1,   106,    98,    99,   100,   101,   111,   103,    -1,    -1,
-     106,    98,    99,   100,   101,   111,   103,    -1,    -1,   106,
-      98,    99,   100,   101,   111,   103,    -1,    -1,   106,    -1,
-      -1,    -1,    -1,   111
+     103,    -1,    -1,   106,   107,   108,   109,    -1,   111,    -1,
+     115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,   124,
+     125,   126,   127,   128,   129,   130,    98,    99,   100,   101,
+      -1,   103,    -1,    -1,   106,   107,   108,   109,    -1,   111,
+      98,    99,   100,   101,    -1,   103,    -1,    -1,   106,   107,
+     108,   109,    -1,   111,    98,    99,   100,   101,    -1,   103,
+      -1,    -1,   106,   107,   108,   109,    -1,   111,    98,    99,
+     100,   101,    -1,   103,    -1,    -1,   106,   107,   108,   109,
+      -1,   111,    98,    99,   100,   101,   102,   103,    -1,    -1,
+     106,    -1,    -1,    -1,   110,   111,    98,    99,   100,   101,
+      -1,   103,    -1,    -1,   106,    98,    99,   100,   101,   111,
+     103,    -1,    -1,   106,    -1,    -1,    -1,    -1,   111,    86,
+      87,    88,    89,    90,    91,    92,    93,    94
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1543,38 +1543,38 @@ static const unsigned char yystos[] =
      113,   159,   167,   197,   198,   199,   167,   119,   160,     4,
        4,    73,   199,   200,   203,    73,   161,   209,    10,    12,
       13,    14,    21,    22,    23,    27,    28,    29,    32,    62,
-      65,    66,    67,    75,    79,    81,   102,   106,   110,   142,
-     172,   187,   189,   193,   205,   211,   212,   213,   215,   216,
+      65,    66,    67,    75,    79,    81,   102,   106,   110,   120,
+     142,   172,   187,   189,   193,   205,   211,   213,   215,   216,
      217,   219,   227,   229,   102,   106,   235,    14,   237,    14,
      237,   237,   229,   102,   102,   206,   106,   207,   208,   100,
-     106,   245,   120,   219,   229,   120,   214,     4,   230,     4,
-       4,   120,   220,    33,    34,    35,    36,    37,    38,    39,
+     106,   245,   120,   219,   229,   120,   214,     4,   230,   212,
+       4,     4,   220,    33,    34,    35,    36,    37,    38,    39,
       40,    42,    43,    44,    45,    46,   114,   116,   117,   118,
      218,   185,    20,   237,    10,    55,    56,    57,    58,    59,
       60,    72,   228,   237,    10,    72,   228,    72,   209,    72,
-     209,   209,   117,   194,   195,   120,   173,   190,   106,   225,
-     226,   229,   120,   237,   237,   237,   237,   237,   237,   237,
+     209,   209,   117,   194,   195,   120,   173,   106,   225,   226,
+     229,   190,   120,   237,   237,   237,   237,   237,   237,   237,
      237,   237,   237,   237,   237,   237,    14,    21,    62,    63,
      106,   110,   122,   123,   124,   219,   229,   237,   238,   106,
      229,   234,    16,    17,    18,    19,   186,   102,    10,   235,
      235,   237,    10,   235,   235,   237,   237,   102,   204,   229,
      102,   102,   237,   106,   196,   222,   237,   196,   226,   180,
-     191,    20,    72,   121,   185,   106,   221,   222,   210,   237,
+      20,    72,   121,   185,   191,   106,   221,   222,   210,   237,
      245,   102,   149,   237,   237,   237,    41,    47,    48,    54,
       55,    56,    57,    58,    59,    60,    68,    69,    70,    71,
      115,   118,   123,   124,   125,   126,   127,   128,   129,   130,
      119,   120,   185,   235,    10,   235,    10,    72,   118,    72,
      117,   117,    20,    72,   121,   223,   121,   121,    11,    85,
-     175,   181,     4,    65,    80,    82,   188,   192,   229,   106,
-     225,   117,    20,    72,   121,    72,   118,    72,   118,   237,
+     175,   181,   229,   106,   225,   117,     4,    65,    80,    82,
+     188,   192,    20,    72,   121,    72,   118,    72,   118,   237,
      237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
      237,   237,   237,   237,   238,   237,   237,   237,   237,   237,
      237,   237,   237,   117,   106,   235,   235,   237,   238,   102,
      244,   244,   237,   106,   222,    15,    19,   224,   222,   237,
-      77,    83,    84,   179,     4,   237,     4,    20,   217,   237,
+      77,    83,    84,   179,     4,    20,   217,   237,     4,   237,
      106,   222,   237,   238,   237,   238,   119,   237,   121,   119,
-      20,   120,     4,   237,   237,   106,   229,   174,   202,   223,
-     229,   120,    20,   119,   119,   237,   106,     4,    72,     4,
+      20,   120,     4,   237,   237,   106,   229,   174,   202,   229,
+     120,   223,    20,   119,   119,   237,   106,     4,    72,     4,
        4,    72,     4,    72,   182,     4,   221,   237,   121,   237,
      237,   237,    27,    64,    76,   183,   121,     4,     4,     4,
      184,   229,     4,   209,   185,   102

Modified: trunk/compilers/imcc/instructions.c
==============================================================================
--- trunk/compilers/imcc/instructions.c (original)
+++ trunk/compilers/imcc/instructions.c Thu Feb  2 13:57:28 2006
@@ -237,9 +237,17 @@ instruction_writes(Instruction* ins, Sym
         return 0;
     else if (ins->prev && (ins->prev->type & ITPCCSUB)) {
         ins = ins->prev;
-        assert(ins->r[0]->pcc_sub);
-        for (i = 0; i < ins->r[0]->pcc_sub->nret; ++i) {
-            if (r == ins->r[0]->pcc_sub->ret[i])
+        /* can't used pcc_sub->ret due to bug #38406
+         * it seems that all sub SymRegs are shared
+         * and point to the most recemt pcc_sub
+         * structure
+         */
+        while (ins && ins->opnum != PARROT_OP_get_results_pc)
+            ins = ins->prev;
+        if (!ins)
+            return 0;
+        for (i = 0; i < ins->n_r; i++) {
+            if (ins->r[i] == r)
                 return 1;
         }
         return 0;

Modified: trunk/compilers/imcc/reg_alloc.c
==============================================================================
--- trunk/compilers/imcc/reg_alloc.c    (original)
+++ trunk/compilers/imcc/reg_alloc.c    Thu Feb  2 13:57:28 2006
@@ -338,6 +338,8 @@ build_reglist(Parrot_Interp interpreter,
         }
     }
     unit->n_symbols = n_symbols = count;
+    if (IMCC_INFO(interpreter)->debug & DEBUG_IMC)
+        dump_symreg(unit);
     compute_du_chain(unit);
     /* we might have unused symbols here, from optimizations */
     for (i = count = unused = 0; i < n_symbols; i++) {

Reply via email to