Quick Search:

Mode

Context

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

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.45
 
1.46
 
MAIN:ragge:20110803191816
 
local2.c
_>231231         expand(p, INAREG, "     leaq AL,%rdi\n");
 232232         if (p->n_stsize >= 8)
 233233                 printf("\tmovl $%d,%%ecx\n\trep movsq\n", p->n_stsize >> 3);
<>234 -        if (p->n_stsize & 3)
  234+        if (p->n_stsize & 4)
235235                 printf("\tmovsl\n");
 236236         if (p->n_stsize & 2)
 237237                 printf("\tmovsw\n");
     
 !
362362                         return; /* XXX remove ZC from UCALL */
 363363                 if (pr)
 364364                         printf("        addq $%d, %s\n", pr, rnames[RSP]);
<> 365+                if ((p->n_op == STCALL || p->n_op == USTCALL) &&
  366+                    p->n_stsize <= 16) {
  367+                        /* store reg-passed structs on stack */
  368+                        printf("\tmovq %%rax,-%d(%%rbp)\n", stkpos);
  369+                        printf("\tmovq %%rdx,-%d(%%rbp)\n", stkpos-8);
  370+                        printf("\tleaq -%d(%%rbp),%%rax\n", stkpos);
  371+                }
365372                 break;
 366373 
 367374         case 'F': /* Structure argument */
     
 !
394401                 break;
 395402 
 396403         case 'P': /* Put hidden argument in rdi */
<>397 -                printf("\tleaq -%d(%%rbp),%%rdi\n", stkpos);
  404+                if (p->n_stsize > 16)
  405+                        printf("\tleaq -%d(%%rbp),%%rdi\n", stkpos);
<_398406                 break;
 399407 
 400408         case 'Q': /* emit struct assign */
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-21 14:10 +0200