comparison dmd/backend/iasm.d @ 191:52188e7e3fb5

Fixed deprecated features, now compiles with DMD2.058 Also changed Array allocation policy: Now doesn't reallocate but malloc's, followed by a memcpy (no free). (this fixes a crash while compiling druntime. Same bug in dmd)
author korDen@korDen-pc
date Sun, 25 Mar 2012 03:11:12 +0400
parents 9f4e5ac4f0a3
children eb38fdcb3e62
comparison
equal deleted inserted replaced
190:80660782bffe 191:52188e7e3fb5
795 { 795 {
796 id = popnd2.s.ident; 796 id = popnd2.s.ident;
797 goto L386_WARNING2; 797 goto L386_WARNING2;
798 } 798 }
799 break; 799 break;
800
801 default:
802 assert(false);
800 } 803 }
801 } 804 }
802 805
803 switch (usNumops) 806 switch (usNumops)
804 { 807 {
921 default: 924 default:
922 assert(0); 925 assert(0);
923 } 926 }
924 } 927 }
925 break; 928 break;
929
930 default:
931 assert(false);
926 } 932 }
927 uint usOpcode = ptb.pptb0.usOpcode; 933 uint usOpcode = ptb.pptb0.usOpcode;
928 934
929 if ((usOpcode & 0xFFFFFF00) == 0x660F3A00 || // SSE4 935 if ((usOpcode & 0xFFFFFF00) == 0x660F3A00 || // SSE4
930 (usOpcode & 0xFFFFFF00) == 0x660F3800) // SSE4 936 (usOpcode & 0xFFFFFF00) == 0x660F3800) // SSE4
1120 { 1126 {
1121 pc.IEVint2() = popndTmp.disp; 1127 pc.IEVint2() = popndTmp.disp;
1122 pc.IFL2 = FL.FLconst; 1128 pc.IFL2 = FL.FLconst;
1123 } 1129 }
1124 break; 1130 break;
1131
1132 default:
1133 assert(false);
1125 } 1134 }
1126 } 1135 }
1127 1136
1128 break; 1137 break;
1129 case 2: 1138 case 2:
1322 } 1331 }
1323 popndTmp = popnd3; 1332 popndTmp = popnd3;
1324 aoptyTmp = aoptyTable3; 1333 aoptyTmp = aoptyTable3;
1325 uSizemaskTmp = cast(ushort)uSizemaskTable3; 1334 uSizemaskTmp = cast(ushort)uSizemaskTable3;
1326 } 1335 }
1327 goto L1; 1336 goto L1;
1337
1338 default:
1339 assert(false);
1328 } 1340 }
1329 L2: 1341 L2:
1330 1342
1331 if ((pc.Iop & 0xF8) == 0xD8 && 1343 if ((pc.Iop & 0xF8) == 0xD8 &&
1332 ADDFWAIT() && 1344 ADDFWAIT() &&
1545 // 1557 //
1546 RETRY: 1558 RETRY:
1547 //printf("usActual = %d\n", usActual); 1559 //printf("usActual = %d\n", usActual);
1548 switch (usActual) 1560 switch (usActual)
1549 { 1561 {
1562 default:
1563 assert(false);
1564
1550 case 0: 1565 case 0:
1551 ptbRet = pop.ptb ; 1566 ptbRet = pop.ptb ;
1552 goto RETURN_IT; 1567 goto RETURN_IT;
1553 1568
1554 case 1: 1569 case 1:
2202 if (popnd1 && ASM_GET_aopty(popnd1.usFlags) == ASM_OPERAND_TYPE._reg) { 2217 if (popnd1 && ASM_GET_aopty(popnd1.usFlags) == ASM_OPERAND_TYPE._reg) {
2203 switch (ASM_GET_amod(popnd1.usFlags)) { 2218 switch (ASM_GET_amod(popnd1.usFlags)) {
2204 default: 2219 default:
2205 if (ASM_GET_uSizemask(popnd1.usFlags) == _8) { 2220 if (ASM_GET_uSizemask(popnd1.usFlags) == _8) {
2206 switch(popnd1.base.val) { 2221 switch(popnd1.base.val) {
2222 default:
2223 assert(false);
2207 case _AL: 2224 case _AL:
2208 case _AH: 2225 case _AH:
2209 usRet |= mAX; 2226 usRet |= mAX;
2210 break; 2227 break;
2211 case _BL: 2228 case _BL:
3068 bRegmatch = ((!uRegmaskTable && !uRegmaskOp) || 3085 bRegmatch = ((!uRegmaskTable && !uRegmaskOp) ||
3069 (uRegmaskTable & uRegmaskOp)); 3086 (uRegmaskTable & uRegmaskOp));
3070 3087
3071 switch (amodTable) 3088 switch (amodTable)
3072 { 3089 {
3090 default:
3091 assert(false);
3073 case _normal: // Normal's match with normals 3092 case _normal: // Normal's match with normals
3074 switch(amodOp) { 3093 switch(amodOp) {
3075 case _normal: 3094 case _normal:
3076 case _addr16: 3095 case _addr16:
3077 case _addr32: 3096 case _addr32:
3710 o2 = asm_shift_exp(); 3729 o2 = asm_shift_exp();
3711 if (asm_isint(o1) && asm_isint(o2)) 3730 if (asm_isint(o1) && asm_isint(o2))
3712 { 3731 {
3713 switch (tok_save) 3732 switch (tok_save)
3714 { 3733 {
3734 default:
3735 assert(false);
3715 case TOKgt: 3736 case TOKgt:
3716 o1.disp = o1.disp > o2.disp; 3737 o1.disp = o1.disp > o2.disp;
3717 break; 3738 break;
3718 case TOKge: 3739 case TOKge:
3719 o1.disp = o1.disp >= o2.disp; 3740 o1.disp = o1.disp >= o2.disp;