Quick Search:

Mode

Context

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

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.21
 
1.22
 
MAIN:ragge:20110714170210
 
local2.c
_>258258                 expand(p, INAREG|INBREG, "\tcvtlZR\tA1,A1\n");
 259259                 break;
 260260 
<> 261+        case 'I': /* unsigned to double */
  262+                expand(p, INAREG|INBREG, "\tcvtld\tAL,A1\n");
  263+                printf("\tjgeq\t1f\n");
  264+                expand(p, INAREG|INBREG, "\taddd2\t$0d4.294967296e+9,A1\n");
  265+                printf("1:\n");
  266+                break;
261267         default:
 262268                 comperr("unsupported conversion %d", o);
 263269         }
     
 !
544550                 else if (p->n_op == DIV) ch = "div";
 545551                 else if (p->n_op == MOD && p->n_type == ULONGLONG) ch = "umod";
 546552                 else if (p->n_op == MOD) ch = "mod";
<>547 -                else ch = 0, comperr("ZO");
  553+                else if (p->n_op == MUL) ch = "mul";
  554+                else ch = 0, comperr("ZO %d", p->n_op);
548555                 printf("\tcalls $4,__%sdi3\n", ch);
 549556                 break;
 550557 
     
 !
11841191                                 p->n_left = mkunode(SCONV, p->n_left,0, DOUBLE);
 11851192                                 p->n_type = FLOAT;
 11861193                                 mkcall(p->n_left, "__floatunsdidf");
<> 1194+                        } else if (lt == UNSIGNED) {
  1195+                                /* insert an extra double-to-float sconv */
  1196+                                p->n_left = mkunode(SCONV, p->n_left,0, DOUBLE);
<_11871197                         }
 11881198                         break;
 11891199                 case DOUBLE:
FishEye: Open Source License registered to PCC.
Atlassian FishEye, CVS analysis. (Version:1.6.3 Build:build-336 2008-11-04) - Administration - Page generated 2014-12-22 23:46 +0100