Quick Search:

Mode

Context

Displaying 3 lines of context. None | Less | More | Full

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.10
 
1.11
 
MAIN:ragge:20090530085034
 
local2.c
_>3939         printf(LABFMT ":\n", label);
 4040 }
 4141 
<>42 -static int regoff[7];
  42+static int regoff[MAXREGS];
4343 static TWORD ftype;
 4444 char *rbyte[], *rshort[], *rlong[];
 4545 
     
 !
6262         /* save permanent registers */
 6363         for (i = 0; i < MAXREGS; i++)
 6464                 if (TESTBIT(ipp->ipp_regs, i))
<>65 -                        fprintf(stdout, "\tmov %s,-%d(%s)\n",
  65+                        fprintf(stdout, "\tmovq %s,-%d(%s)\n",
6666                             rnames[i], regoff[i], rnames[FPREG]);
 6767 }
 6868 
     
 !
127127                 printf("        ret $%d\n", 4);
 128128         } else {
 129129                 printf("        leave\n");
<> 130+                printf("        ret\n");
130131         }
 131132         printf("\t.size %s,.-%s\n", ipp->ipp_name, ipp->ipp_name);
 132133 }
     
 !
274275         return 1;
 275276 }
 276277 
<>277 -#if 0
278278 static void
 279279 bfext(NODE *p)
 280280 {
     
 !
310310         adrput(stdout, getlr(p, 'D'));
 311311         printf("\n");
 312312 }
<> 313+#if 0
313314 
 314315 /*
 315316  * Push a structure on stack as argument.
     
 !
396397                         printf("        addq $%d, %s\n", pr, rnames[RSP]);
 397398                 break;
 398399 
<>399 -#if 0
400400         case 'E': /* Perform bitfield sign-extension */
 401401                 bfext(p);
 402402                 break;
 403403 
<> 404+#if 0
404405         case 'F': /* Structure argument */
 405406                 if (p->n_stalign != 0) /* already on stack */
 406407                         starg(p);
     
 !
822823 {
 823824 
 824825         switch (t) {
<>825 -        case LONG:
 826 -        case ULONG:
 827 -        case LONGLONG:
 828 -        case ULONGLONG:
 829 -                printf("        movq %s,%s\n", rnames[s], rnames[d]);
  826+        case INT:
  827+        case UNSIGNED:
  828+                printf("        movl %s,%s\n", rlong[s], rlong[d]);
830829                 break;
 831830         case CHAR:
 832831         case UCHAR:
     
 !
837836                 printf("        movw %s,%s\n", rshort[s], rshort[d]);
 838837                 break;
 839838         case FLOAT:
<> 839+                printf("        movss %s,%s\n", rnames[s], rnames[d]);
  840+                break;
840841         case DOUBLE:
<> 842+                printf("        movsd %s,%s\n", rnames[s], rnames[d]);
  843+                break;
841844         case LDOUBLE:
<>842 -#ifdef notdef
843845                 /* a=b()*c(); will generate this */
 844846                 comperr("bad float rmove: %d %d", s, d);
<>845 -#endif
846847                 break;
 847848         default:
<>848 -                printf("        movl %s,%s\n", rlong[s], rlong[d]);
  849+                printf("        movq %s,%s\n", rnames[s], rnames[d]);
  850+                break;
<_849851         }
 850852 }
 851853 
FishEye: Open Source License registered to PCC.
Your maintenance has expired. You can renew your license at http://www.atlassian.com/fisheye/renew
Atlassian FishEye, CVS analysis. (Version:1.6.3 Build:build-336 2008-11-04) - Administration - Page generated 2014-09-02 20:57 +0200