Changeset 829
- Timestamp:
- 12/31/10 07:23:29 (14 years ago)
- Files:
-
- branches/dmd-1.x/src/backend/evalu8.c (modified) (1 diff)
- trunk/src/backend/evalu8.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/dmd-1.x/src/backend/evalu8.c
r728 r829 1557 1557 break; 1558 1558 1559 1559 #if MARS 1560 1560 case OPashr: 1561 1561 if ((targ_ullong) i2 > sizeof(targ_ullong) * 8) 1562 1562 i2 = sizeof(targ_ullong) * 8; 1563 1563 // Always signed 1564 1564 e->EV.Vllong = l1 >> i2; 1565 1565 break; 1566 1566 #endif 1567 1567 1568 1568 case OPpair: 1569 1569 switch (tysize[tym]) 1570 1570 { 1571 1571 case 2: 1572 1572 e->EV.Vlong = (i2 << 16) | (i1 & 0xFFFF); 1573 1573 break; 1574 1574 case 4: 1575 1575 e->EV.Vllong = (l2 << 32) | (l1 & 0xFFFFFFFF); 1576 1576 break; 1577 case 8: 1578 e->EV.Vcent.lsw = l1; 1579 e->EV.Vcent.msw = l2; 1580 break; 1577 1581 default: 1578 1582 assert(0); 1579 1583 } 1580 1584 break; 1581 1585 1582 1586 case OPneg: 1583 1587 #if TX86 1584 1588 // Avoid converting NANS to NAN 1585 1589 memcpy(&e->EV.Vcldouble,&e1->EV.Vcldouble,sizeof(e->EV.Vcldouble)); 1586 1590 switch (tym) 1587 1591 { case TYdouble: 1588 1592 case TYidouble: 1589 1593 case TYdouble_alias: 1590 1594 e->EV.Vdouble = -e->EV.Vdouble; 1591 1595 break; 1592 1596 case TYfloat: 1593 1597 case TYifloat: 1594 1598 e->EV.Vfloat = -e->EV.Vfloat; 1595 1599 break; 1596 1600 case TYldouble: trunk/src/backend/evalu8.c
r728 r829 1557 1557 break; 1558 1558 1559 1559 #if MARS 1560 1560 case OPashr: 1561 1561 if ((targ_ullong) i2 > sizeof(targ_ullong) * 8) 1562 1562 i2 = sizeof(targ_ullong) * 8; 1563 1563 // Always signed 1564 1564 e->EV.Vllong = l1 >> i2; 1565 1565 break; 1566 1566 #endif 1567 1567 1568 1568 case OPpair: 1569 1569 switch (tysize[tym]) 1570 1570 { 1571 1571 case 2: 1572 1572 e->EV.Vlong = (i2 << 16) | (i1 & 0xFFFF); 1573 1573 break; 1574 1574 case 4: 1575 1575 e->EV.Vllong = (l2 << 32) | (l1 & 0xFFFFFFFF); 1576 1576 break; 1577 case 8: 1578 e->EV.Vcent.lsw = l1; 1579 e->EV.Vcent.msw = l2; 1580 break; 1577 1581 default: 1578 1582 assert(0); 1579 1583 } 1580 1584 break; 1581 1585 1582 1586 case OPneg: 1583 1587 #if TX86 1584 1588 // Avoid converting NANS to NAN 1585 1589 memcpy(&e->EV.Vcldouble,&e1->EV.Vcldouble,sizeof(e->EV.Vcldouble)); 1586 1590 switch (tym) 1587 1591 { case TYdouble: 1588 1592 case TYidouble: 1589 1593 case TYdouble_alias: 1590 1594 e->EV.Vdouble = -e->EV.Vdouble; 1591 1595 break; 1592 1596 case TYfloat: 1593 1597 case TYifloat: 1594 1598 e->EV.Vfloat = -e->EV.Vfloat; 1595 1599 break; 1596 1600 case TYldouble:
