# HG changeset patch # User kono # Date 1100414465 -32400 # Node ID d9278603304224c527e51ddd8e79a0a0994f3cdb # Parent d3e6359f850161af31bcb48f7bbc99d5ec773526 loprtc diff -r d3e6359f8501 -r d92786033042 Changes --- a/Changes Thu Nov 11 00:39:37 2004 +0900 +++ b/Changes Sun Nov 14 15:41:05 2004 +0900 @@ -6556,3 +6556,60 @@ Thu Nov 4 10:15:29 JST 2004 あ、なんか long long の定数シフトで > 32 の場合を忘れているね。 + +Fri Nov 12 15:37:42 JST 2004 + +やっぱり、record (taged union) は欲しいよね。 + + struct { + enum {hoge0,hoge1,hoge2} i; + switch(i) { + case hoge0: struct {...} b; + case hoge1: struct {...} c; + case hoge2: struct {...} d; + } + } a; + + assert(a.i==hoge0); + a.b.j = 3; + assert(a.i==hoge0); + printf("%d\n",a.b.j); + +うーん、あんまり良くないなぁ。これだったら、いらないよね。 + +Fri Nov 12 15:59:32 JST 2004 + +Template あるいは型変数は入れたくないよね。入れるとしても、 +上位言語だろうなぁ。 + +Sat Nov 13 11:05:06 JST 2004 + +main() { printf("%d,%d\n", -555>>3,-555/8); } +-70,-69 + +なるほどね。 + +なんか arm-linux-gcc がバグっているな... + + ltosop_register() + { + register long long i1,i2,i; + register unsigned long long u1,u2,u; + u1 = 632423423; u2= 32394234; + u = 0; + .... + u = u1 & u2; + printf("#2052:ltosop r u 6 %llu\n",u); + + sub r6, fp, #48 + ldmia r6, {r2-r3} + sub r7, fp, #48 <---?! + ldmdb r7, {r6-r7} + and r2, r2, r6 + and r3, r3, r7 + sub r7, fp, #64 + stmia r7, {r2-r3} + ldr r0, .L640+92 + +なんでかね。 + diff -r d3e6359f8501 -r d92786033042 mc-code-arm.c --- a/mc-code-arm.c Thu Nov 11 00:39:37 2004 +0900 +++ b/mc-code-arm.c Sun Nov 14 15:41:05 2004 +0900 @@ -5172,10 +5172,10 @@ } else return 0; switch(op) { - case LMUL: case LUMUL: case LDIV: case LUDIV: + case LMUL: case LUMUL: /* case LDIV: */ case LUDIV: return ilog(v); case LLSHIFT: case LULSHIFT: case LRSHIFT: case LURSHIFT: - return 031) { + printf("\tmov\t%s, %s, lsl #%d\n",crn_h,crn_l,v-32); + code_const(0,regv_l(creg)); + return; + } greg = get_register(); grn = register_name(greg); inc_inst(4); @@ -5224,6 +5234,16 @@ case LDIV: v=ilog(v); case LRSHIFT: + if (v==0) return; + if (v==32) { + code_register(regv_h(creg),regv_l(creg)); + printf("\tmov\t%s, %s asr #31\n",crn_h,crn_l); + return; + } else if (v>31) { + printf("\tmov\t%s, %s, asr #%d\n",crn_l,crn_h,v-32); + printf("\tmov\t%s, %s, asr #31\n",crn_h,crn_l); + return; + } greg = get_register(); grn = register_name(greg); inc_inst(4); @@ -5236,6 +5256,16 @@ case LUDIV: v=ilog(v); case LURSHIFT: + if (v==0) return; + if (v==32) { + code_register(regv_h(creg),regv_l(creg)); + code_const(0,regv_h(creg)); + return; + } else if (v>31) { + printf("\tmov\t%s, %s, lsr #%d\n",crn_l,crn_h,v-32); + code_const(0,regv_h(creg)); + return; + } greg = get_register(); grn = register_name(greg); inc_inst(4); diff -r d3e6359f8501 -r d92786033042 mc-code-ia32.c --- a/mc-code-ia32.c Thu Nov 11 00:39:37 2004 +0900 +++ b/mc-code-ia32.c Sun Nov 14 15:41:05 2004 +0900 @@ -2923,6 +2923,11 @@ case LRSHIFT: case LURSHIFT: return (0<=l&&l<=63); + case LMUL: + case LUMUL: + case LUDIV: + /* case LDIV: */ + return -0x10000000LL0); + case LMUL: + case LUMUL: + case LUDIV: + /* case LDIV: */ + return ilog(v); default: return 0; } @@ -4821,8 +4826,20 @@ else if (car(e)==CONST) v = cadr(e); switch(op) { + case LMUL: case LUMUL: + v=ilog(v); case LLSHIFT: case LULSHIFT: + if (v==0) return; + if (v==32) { + code_register(regv_l(creg),regv_h(creg)); + code_const(0,regv_l(creg)); + return; + } else if (v>31) { + printf("\tsll %s,%s,%d\n",crn_h,crn_l,v-32); + code_const(0,regv_l(creg)); + return; + } greg = get_register(); grn = register_name(greg); printf("\tsll %s,%s,%d\n",crn_h,crn_h,v); @@ -4832,6 +4849,16 @@ free_register(greg); return; case LRSHIFT: + if (v==0) return; + if (v==32) { + code_register(regv_h(creg),regv_l(creg)); + printf("\tsra %s,%s,31\n",crn_h,crn_l); + return; + } else if (v>31) { + printf("\tsra %s,%s,%d\n",crn_l,crn_h,v-32); + printf("\tsra %s,%s,31\n",crn_h,crn_l); + return; + } greg = get_register(); grn = register_name(greg); printf("\tsrl %s,%s,%d\n",crn_l,crn_l,v); @@ -4840,7 +4867,19 @@ printf("\tsra %s,%s,%d\n",crn_h,crn_h,v); free_register(greg); return; + case LUDIV: + v=ilog(v); case LURSHIFT: + if (v==0) return; + if (v==32) { + code_register(regv_h(creg),regv_l(creg)); + code_const(0,regv_h(creg)); + return; + } else if (v>31) { + printf("\tsrl %s,%s,%d\n",crn_l,crn_h,v-32); + code_const(0,regv_h(creg)); + return; + } greg = get_register(); grn = register_name(greg); printf("\tsll %s,%s,%d\n",grn,crn_h,32-v); diff -r d3e6359f8501 -r d92786033042 mc-code-powerpc.c --- a/mc-code-powerpc.c Thu Nov 11 00:39:37 2004 +0900 +++ b/mc-code-powerpc.c Sun Nov 14 15:41:05 2004 +0900 @@ -4528,6 +4528,9 @@ } else return 0; switch(op) { + case LMUL: case LUMUL: case LUDIV: +// case LDIV: + return ilog(v); case LLSHIFT: case LULSHIFT: case LRSHIFT: @@ -4560,6 +4563,8 @@ else if (car(e)==CONST) v = cadr(e); switch(op) { + case LMUL: case LUMUL: + v=ilog(v); case LLSHIFT: case LULSHIFT: if (v==0) return; @@ -4581,6 +4586,8 @@ printf("\tslwi %s,%s,%d\n",crn_l,crn_l,v); free_register(greg); return; + case LDIV: + v=ilog(v); case LRSHIFT: if (v==0) return; if (v==32) { @@ -4601,6 +4608,8 @@ printf("\tmr %s,%s\n",crn_l,grn); free_register(greg); return; + case LUDIV: + v=ilog(v); case LURSHIFT: if (v==0) return; if (v==32) { diff -r d3e6359f8501 -r d92786033042 mc-codegen.c --- a/mc-codegen.c Thu Nov 11 00:39:37 2004 +0900 +++ b/mc-codegen.c Sun Nov 14 15:41:05 2004 +0900 @@ -3215,7 +3215,7 @@ int e=0; long long le1, le2; long long le = 0; - int us = (t1==ULONGLONG&&t2==ULONGLONG); + int us = ((t1==ULONGLONG||t1==UNSIGNED)&&(t2==ULONGLONG||t2==UNSIGNED)); if (us||(t1==ULONGLONG&&(op==LSHIFT||op==RSHIFT))) { type=t1; e1=ulonglong_value(e1); @@ -3237,7 +3237,7 @@ case ADD: le=le1+le2;break; case SUB: - le=le1-le2;break; + le=le1-le2; type=LONGLONG; break; case MUL: le=le1*le2;break; case DIV: @@ -3287,6 +3287,7 @@ } else if(op==GT||op==GE||op==LT||op==LE) { type = INT; return(list3(op+LOP+us,e1,e2)); } + if(op==SUB) { us = 0; type=LONGLONG; } if(op==SUB&&car(e2)==LCONST) { op=ADD; lcadr(e2)=-lcadr(e2); } if((op==ADD||op==MUL||op==BOR||op==EOR||op==BAND)&& (car(e1)!=LCONST) && ( @@ -3365,7 +3366,7 @@ break; case SUB: if(integral(t1)) { - e=e1-e2; + e=e1-e2; type=INT; } else { if(car(t1)!=POINTER) error(TYERR); e=e1-size(cadr(t1))*e2; @@ -3460,6 +3461,7 @@ if(integral(t1)) { if(!integral(t2)) error(TYERR); if(t1==INT) type=t2;else type=t1; + if (type==UNSIGNED) type=INT; return(list3(SUB,e1,e2)); } if(car(t1)!=POINTER) error(TYERR); @@ -3478,7 +3480,8 @@ return e; } if(!integral(t1)||!integral(t2)) error(TYERR); - if(t1==INT) type=t2; else type=t1; /* ??? */ + // if(t1==INT) type=t2; else type=t1; /* ??? */ + if (us) type=UNSIGNED; else type=INT; if((op==MUL||op==DIV)&&car(e2)==CONST&&cadr(e2)==1) return e1; if(op==BOR||op==EOR||op==BAND) return(list3(op,e1,e2)); if(op==LSHIFT||op==RSHIFT) return(list3(op+(t1==UNSIGNED?US:0),e1,e2)); diff -r d3e6359f8501 -r d92786033042 mc-parse.c --- a/mc-parse.c Thu Nov 11 00:39:37 2004 +0900 +++ b/mc-parse.c Sun Nov 14 15:41:05 2004 +0900 @@ -2569,12 +2569,24 @@ #if LONGLONG_CODE if(type==LONGLONG||type==ULONGLONG) { // return list2(LMINUS,e); - return(car(e)==LCONST?llist2(LCONST,-lcadr(e)):list2(LMINUS,e)); + if (car(e)==LCONST) { + if (lcadr(e)>0 && type==ULONGLONG) { type=LONGLONG; + } else if (lcadr(e)<=0 && type==LONGLONG) { type=ULONGLONG; + } + return llist2(LCONST,-lcadr(e)); + } + return list2(LMINUS,e); } #endif if(!integral(type)) error(TYERR); - return(car(e)==CONST?list2(CONST,-cadr(e)):list2(MINUS,e)); + if (car(e)==CONST) { + if (cadr(e)>0 && type==UNSIGNED) { type=INT; + } if (cadr(e)<=0 && type==INT) { type=UNSIGNED; + } + return list2(CONST,-cadr(e)); + } + return list2(MINUS,e); case BNOT: /* ~p */ conv->prefix_(sym); getsym(0); @@ -2801,7 +2813,7 @@ break; case CONST: conv-> const_(symval); - type= INT; + type= symval>=0?UNSIGNED:INT; e1=list2(CONST,symval); getsym(0); break; @@ -2822,7 +2834,7 @@ #if LONGLONG_CODE case LCONST: conv-> const_(symval); - type= LONGLONG; + type= ULONGLONG; e1=llist2(LCONST,lsymval); getsym(0); break; diff -r d3e6359f8501 -r d92786033042 test/code-gen.c --- a/test/code-gen.c Thu Nov 11 00:39:37 2004 +0900 +++ b/test/code-gen.c Sun Nov 14 15:41:05 2004 +0900 @@ -1947,31 +1947,59 @@ printf("#1946:loprtc 9 %lld\n",i); i = i1 % 5; printf("#1948:loprtc 10 %lld\n",i); + i = i1 / 8; + printf("#1950:loprtc 3 %lld\n",i); + i = i1 / 256; + printf("#1952:loprtc 3 %lld\n",i); + i = i1 % 8; + printf("#1954:loprtc 3 %lld\n",i); + i = i1 % 256; + printf("#1956:loprtc 3 %lld\n",i); + i = i1 * 8; + printf("#1958:loprtc 3 %lld\n",i); + i = i1 * 256; + printf("#1960:loprtc 3 %lld\n",i); u = u1 + 3; - printf("#1951:loprtc 1 u %llu\n",u); + printf("#1963:loprtc 1 u %llu\n",u); u = u1 - 3; - printf("#1953:loprtc 2 u %llu\n",u); + printf("#1965:loprtc 2 u %llu\n",u); u = u1 / 32342342344234LL; - printf("#1955:loprtc 3 u %llu\n",u); + printf("#1967:loprtc 3 u %llu\n",u); u = u1 * 243234234232324LL; - printf("#1957:loprtc 4 u %llu\n",u); + printf("#1969:loprtc 4 u %llu\n",u); u = u1 | 234234234; - printf("#1959:loprtc 5 u %llu\n",u); + printf("#1971:loprtc 5 u %llu\n",u); u = u1 & 234234234; - printf("#1961:loprtc 6 u %llu\n",u); + printf("#1973:loprtc 6 u %llu\n",u); u = u1 ^ 234234234; - printf("#1963:loprtc 7 u %llu\n",u); + printf("#1975:loprtc 7 u %llu\n",u); u = u1 << 5; - printf("#1965:loprtc 8 u %llu\n",u); + printf("#1977:loprtc 8 u %llu\n",u); u = u1 >> 5; - printf("#1967:loprtc 9 u %llu\n",u); + printf("#1979:loprtc 9 u %llu\n",u); u = u1 << 38; - printf("#1969:loprtc 8 u %llu\n",u); + printf("#1981:loprtc 8 u %llu\n",u); u = u1 >> 38; - printf("#1971:loprtc 9 u %llu\n",u); + printf("#1983:loprtc 9 u %llu\n",u); u = u1 % 5; - printf("#1973:loprtc 10 u %llu\n",u); + printf("#1985:loprtc 10 u %llu\n",u); + u = u1 / 8; + printf("#1987:loprtc 3 %lld\n",i); + u = u1 / 256; + printf("#1989:loprtc 3 %lld\n",i); + u = u1 / 8; + printf("#1991:loprtc 3 %lld\n",i); + u = u1 / 256; + printf("#1993:loprtc 3 %lld\n",i); + u = u1 % 8; + printf("#1995:loprtc 3 %lld\n",i); + u = u1 % 256; + printf("#1997:loprtc 3 %lld\n",i); + u = u1 * 8; + printf("#1999:loprtc 3 %lld\n",i); + u = u1 * 256; + printf("#2001:loprtc 3 %lld\n",i); } @@ -1990,92 +2018,92 @@ u = 0; i = i1 + i2; - printf("#1992:ltosop r 1 %lld\n",i); + printf("#2020:ltosop r 1 %lld\n",i); i = i1 - i2; - printf("#1994:ltosop r 2 %lld\n",i); + printf("#2022:ltosop r 2 %lld\n",i); i = i1 / i2; - printf("#1996:ltosop r 3 %lld\n",i); + printf("#2024:ltosop r 3 %lld\n",i); i = i1 * i2; - printf("#1998:ltosop r 4 %lld\n",i); + printf("#2026:ltosop r 4 %lld\n",i); i = i1 | i2; - printf("#2000:ltosop r 5 %lld\n",i); + printf("#2028:ltosop r 5 %lld\n",i); i = i1 & i2; - printf("#2002:ltosop r 6 %lld\n",i); + printf("#2030:ltosop r 6 %lld\n",i); i = i1 ^ i2; - printf("#2004:ltosop r 7 %lld\n",i); + printf("#2032:ltosop r 7 %lld\n",i); i2 = 3; i = i1 << i2; - printf("#2007:ltosop r 8 %lld\n",i); + printf("#2035:ltosop r 8 %lld\n",i); i = i1 >> i2; - printf("#2009:ltosop r 9 %lld\n",i); + printf("#2037:ltosop r 9 %lld\n",i); i = i1 % i2; - printf("#2011:ltosop r 10 %lld\n",i); + printf("#2039:ltosop r 10 %lld\n",i); u = u1 + u2; - printf("#2014:ltosop r u 1 %llu\n",u); + printf("#2042:ltosop r u 1 %llu\n",u); u = u1 - u2; - printf("#2016:ltosop r u 2 %llu\n",u); + printf("#2044:ltosop r u 2 %llu\n",u); u = u1 / u2; - printf("#2018:ltosop r u 3 %llu\n",u); + printf("#2046:ltosop r u 3 %llu\n",u); u = u1 * u2; - printf("#2020:ltosop r u 4 %llu\n",u); + printf("#2048:ltosop r u 4 %llu\n",u); u = u1 | u2; - printf("#2022:ltosop r u 5 %llu\n",u); + printf("#2050:ltosop r u 5 %llu\n",u); u = u1 & u2; - printf("#2024:ltosop r u 6 %llu\n",u); + printf("#2052:ltosop r u 6 %llu\n",u); u = u1 ^ u2; - printf("#2026:ltosop r u 7 %llu\n",u); + printf("#2054:ltosop r u 7 %llu\n",u); u2 = 3; u = u1 << u2; - printf("#2029:ltosop r u 8 %llu\n",u); + printf("#2057:ltosop r u 8 %llu\n",u); u = u1 >> u2; - printf("#2031:ltosop r u 9 %llu\n",u); + printf("#2059:ltosop r u 9 %llu\n",u); u = u1 % u2; - printf("#2033:ltosop r u 10 %llu\n",u); + printf("#2061:ltosop r u 10 %llu\n",u); i = i1 + ii2; - printf("#2036:litosop r 1 %lld\n",i); + printf("#2064:litosop r 1 %lld\n",i); i = i1 - ii2; - printf("#2038:litosop r 2 %lld\n",i); + printf("#2066:litosop r 2 %lld\n",i); i = i1 / ii2; - printf("#2040:litosop r 3 %lld\n",i); + printf("#2068:litosop r 3 %lld\n",i); i = i1 * ii2; - printf("#2042:litosop r 4 %lld\n",i); + printf("#2070:litosop r 4 %lld\n",i); i = i1 | ii2; - printf("#2044:litosop r 5 %lld\n",i); + printf("#2072:litosop r 5 %lld\n",i); i = i1 & ii2; - printf("#2046:litosop r 6 %lld\n",i); + printf("#2074:litosop r 6 %lld\n",i); i = i1 ^ ii2; - printf("#2048:litosop r 7 %lld\n",i); + printf("#2076:litosop r 7 %lld\n",i); ii2 = 3; i = i1 << ii2; - printf("#2051:litosop r 8 %lld\n",i); + printf("#2079:litosop r 8 %lld\n",i); i = i1 >> ii2; - printf("#2053:litosop r 9 %lld\n",i); + printf("#2081:litosop r 9 %lld\n",i); i = i1 % ii2; - printf("#2055:litosop r 10 %lld\n",i); + printf("#2083:litosop r 10 %lld\n",i); u = u1 + uu2; - printf("#2058:litosop r u 1 %llu\n",u); + printf("#2086:litosop r u 1 %llu\n",u); u = u1 - uu2; - printf("#2060:litosop r u 2 %llu\n",u); + printf("#2088:litosop r u 2 %llu\n",u); u = u1 / uu2; - printf("#2062:litosop r u 3 %llu\n",u); + printf("#2090:litosop r u 3 %llu\n",u); u = u1 * uu2; - printf("#2064:litosop r u 4 %llu\n",u); + printf("#2092:litosop r u 4 %llu\n",u); u = u1 | uu2; - printf("#2066:litosop r u 5 %llu\n",u); + printf("#2094:litosop r u 5 %llu\n",u); u = u1 & uu2; - printf("#2068:litosop r u 6 %llu\n",u); + printf("#2096:litosop r u 6 %llu\n",u); u = u1 ^ uu2; - printf("#2070:litosop r u 7 %llu\n",u); + printf("#2098:litosop r u 7 %llu\n",u); uu2 = 3; u = u1 << uu2; - printf("#2073:litosop r u 8 %llu\n",u); + printf("#2101:litosop r u 8 %llu\n",u); u = u1 >> uu2; - printf("#2075:litosop r u 9 %llu\n",u); + printf("#2103:litosop r u 9 %llu\n",u); u = u1 % uu2; - printf("#2077:litosop r u 10 %llu\n",u); + printf("#2105:litosop r u 10 %llu\n",u); } // loprtc(int op,int v) @@ -2088,54 +2116,70 @@ u1 = 632423423; i = i1 + 3; - printf("#2090:loprtc r 1 %lld\n",i); + printf("#2118:loprtc r 1 %lld\n",i); i = i1 - 3; - printf("#2092:loprtc r 2 %lld\n",i); + printf("#2120:loprtc r 2 %lld\n",i); i = i1 / 32323423423LL; - printf("#2094:loprtc r 3 %lld\n",i); + printf("#2122:loprtc r 3 %lld\n",i); i = i1 * 323423423423LL; - printf("#2096:loprtc r 4 %lld\n",i); + printf("#2124:loprtc r 4 %lld\n",i); i = i1 | 234234234; - printf("#2098:loprtc r 5 %lld\n",i); + printf("#2126:loprtc r 5 %lld\n",i); i = i1 & 23234234; - printf("#2100:loprtc r 6 %lld\n",i); + printf("#2128:loprtc r 6 %lld\n",i); i = i1 ^ 23234234; - printf("#2102:loprtc r 7 %lld\n",i); + printf("#2130:loprtc r 7 %lld\n",i); i = i1 << 5; - printf("#2104:loprtc r 8 %lld\n",i); + printf("#2132:loprtc r 8 %lld\n",i); i = i1 >> 5; - printf("#2106:loprtc r 9 %lld\n",i); + printf("#2134:loprtc r 9 %lld\n",i); i = i1 << 38; - printf("#2108:loprtc r 8 %lld\n",i); + printf("#2136:loprtc r 8 %lld\n",i); i = i1 >> 38; - printf("#2110:loprtc r 9 %lld\n",i); + printf("#2138:loprtc r 9 %lld\n",i); i = i1 % 5; - printf("#2112:loprtc r 10 %lld\n",i); + printf("#2140:loprtc r 10 %lld\n",i); + i = i1 / 8; + printf("#2142:loprtc r 10 %lld\n",i); + i = i1 / 256; + printf("#2144:loprtc r 10 %lld\n",i); + i = i1 * 8; + printf("#2146:loprtc r 10 %lld\n",i); + i = i1 * 256; + printf("#2148:loprtc r 10 %lld\n",i); u = u1 + 3; - printf("#2115:loprtc r 1 u %llu\n",u); + printf("#2151:loprtc r 1 u %llu\n",u); u = u1 - 3; - printf("#2117:loprtc r 2 u %llu\n",u); + printf("#2153:loprtc r 2 u %llu\n",u); u = u1 / 32342342344234LL; - printf("#2119:loprtc r 3 u %llu\n",u); + printf("#2155:loprtc r 3 u %llu\n",u); u = u1 * 243234234232324LL; - printf("#2121:loprtc r 4 u %llu\n",u); + printf("#2157:loprtc r 4 u %llu\n",u); u = u1 | 234234234; - printf("#2123:loprtc r 5 u %llu\n",u); + printf("#2159:loprtc r 5 u %llu\n",u); u = u1 & 234234234; - printf("#2125:loprtc r 6 u %llu\n",u); + printf("#2161:loprtc r 6 u %llu\n",u); u = u1 ^ 234234234; - printf("#2127:loprtc r 7 u %llu\n",u); + printf("#2163:loprtc r 7 u %llu\n",u); u = u1 << 5; - printf("#2129:loprtc r 8 u %llu\n",u); + printf("#2165:loprtc r 8 u %llu\n",u); u = u1 >> 5; - printf("#2131:loprtc r 9 u %llu\n",u); + printf("#2167:loprtc r 9 u %llu\n",u); u = u1 << 38; - printf("#2133:loprtc r 8 u %llu\n",u); + printf("#2169:loprtc r 8 u %llu\n",u); u = u1 >> 38; - printf("#2135:loprtc r 9 u %llu\n",u); + printf("#2171:loprtc r 9 u %llu\n",u); u = u1 % 5; - printf("#2137:loprtc r 10 u %llu\n",u); + printf("#2173:loprtc r 10 u %llu\n",u); + u = u1 / 8; + printf("#2175:loprtc r 10 u %lld\n",u); + u = u1 / 256; + printf("#2177:loprtc r 10 u %lld\n",u); + u = u1 * 8; + printf("#2179:loprtc r 10 u %lld\n",u); + u = u1 * 256; + printf("#2181:loprtc r 10 u %lld\n",u); } @@ -2147,7 +2191,7 @@ int i; i = 23442342; d = i; - printf("#2149:code_i2ll %lld\n",d); + printf("#2193:code_i2ll %lld\n",d); } // code_i2ull(int creg) void @@ -2157,7 +2201,7 @@ int i; i = 23442342; d = i; - printf("#2159:code_i2ull %lld\n",d); + printf("#2203:code_i2ull %lld\n",d); } // code_u2ll(int creg) void @@ -2167,7 +2211,7 @@ unsigned int i; i = 23442342; d = i; - printf("#2169:code_u2ll %lld\n",d); + printf("#2213:code_u2ll %lld\n",d); } // code_u2ull(int creg) void @@ -2177,7 +2221,7 @@ unsigned int i; i = 23342342; d = i; - printf("#2179:code_u2ull %llu\n",d); + printf("#2223:code_u2ull %llu\n",d); } // code_ll2i(int creg) void @@ -2187,7 +2231,7 @@ int i; d = 2342342342LL; i = d; - printf("#2189:code_ll2i %d\n",i); + printf("#2233:code_ll2i %d\n",i); } // code_ll2u(int creg) void @@ -2197,7 +2241,7 @@ unsigned int i; d = 2342342342LL; i = d; - printf("#2199:code_ll2i %ud\n",i); + printf("#2243:code_ll2i %ud\n",i); } // code_ull2i(int creg) void @@ -2207,7 +2251,7 @@ int i; d = 2342342342LL; i = d; - printf("#2209:code_ull2i %d\n",i); + printf("#2253:code_ull2i %d\n",i); } // code_ull2u(int creg) void @@ -2217,7 +2261,7 @@ unsigned int i; d = 2342342342LL; i = d; - printf("#2219:code_ll2i %ud\n",i); + printf("#2263:code_ll2i %ud\n",i); } #if FLOAT_CODE // code_d2ll(int creg) @@ -2228,7 +2272,7 @@ double i; i = 2342342342LL; d = i; - printf("#2230:code_d2ll %lld\n",d); + printf("#2274:code_d2ll %lld\n",d); } // code_d2ull(int creg) void @@ -2238,7 +2282,7 @@ double i; i = 2342342342LL; d = i; - printf("#2240:code_d2ll %llu\n",d); + printf("#2284:code_d2ll %llu\n",d); } // code_f2ll(int creg) void @@ -2248,7 +2292,7 @@ float i; i = 2342342342LL; d = i; - printf("#2250:code_f2ll %lld\n",d); + printf("#2294:code_f2ll %lld\n",d); } // code_f2ull(int creg) void @@ -2258,7 +2302,7 @@ float i; i = 2342342342LL; d = i; - printf("#2260:code_f2ull %llu\n",d); + printf("#2304:code_f2ull %llu\n",d); } // code_ll2d(int creg) void @@ -2268,7 +2312,7 @@ double i; d = 2342342342LL; i = d; - printf("#2270:code_ll2d %g\n",i); + printf("#2314:code_ll2d %g\n",i); } // code_ll2f(int creg) void @@ -2278,7 +2322,7 @@ float i; d = 2342342342LL; i = d; - printf("#2280:code_ll2f %g\n",i); + printf("#2324:code_ll2f %g\n",i); } // code_ull2d(int creg) void @@ -2288,7 +2332,7 @@ double i; d = 2342342342LL; i = d; - printf("#2290:code_ull2f %g\n",i); + printf("#2334:code_ull2f %g\n",i); } // code_ull2f(int creg) void @@ -2298,7 +2342,7 @@ float i; d = 2342342342LL; i = d; - printf("#2300:code_ull2f %g\n",i); + printf("#2344:code_ull2f %g\n",i); } #endif @@ -2308,8 +2352,8 @@ { long long i,j; i = 123123123;j = 0; - printf("#2310:code_preinc l %lld %lld",++i,--j); - printf("#2311: %lld %lld\n",i,j); + printf("#2354:code_preinc l %lld %lld",++i,--j); + printf("#2355: %lld %lld\n",i,j); } // code_lpostinc(int e1,int e2,int reg) @@ -2318,8 +2362,8 @@ { long long i,j; i = 123123123;j = 0; - printf("#2320:code_postinc l %lld %lld",i++,j--); - printf("#2321: %lld %lld\n",i,j); + printf("#2364:code_postinc l %lld %lld",i++,j--); + printf("#2365: %lld %lld\n",i,j); } // code_lpreinc(int e1,int e2,int reg) @@ -2328,8 +2372,8 @@ { register unsigned long long i,j; i = 123123123;j = 0; - printf("#2330:code_preinc l %llu %llu",++i,--j); - printf("#2331: %lld %lld\n",i,j); + printf("#2374:code_preinc l %llu %llu",++i,--j); + printf("#2375: %lld %lld\n",i,j); } // code_lpostinc(int e1,int e2,int reg) @@ -2338,8 +2382,8 @@ { register unsigned long long i,j; i = 123123123;j = 0; - printf("#2340:code_postinc lu %llu %llu",i++,j--); - printf("#2341: %lld %lld\n",i,j); + printf("#2384:code_postinc lu %llu %llu",i++,j--); + printf("#2385: %lld %lld\n",i,j); } // code_lpreinc(int e1,int e2,int reg) @@ -2348,8 +2392,8 @@ { register long long i,j; i = 123123123;j = 0; - printf("#2350:code_preinc l r %lld %lld",++i,--j); - printf("#2351: %lld %lld\n",i,j); + printf("#2394:code_preinc l r %lld %lld",++i,--j); + printf("#2395: %lld %lld\n",i,j); } // code_lpostinc(int e1,int e2,int reg) @@ -2358,8 +2402,8 @@ { register long long i,j; i = 123123123;j = 0; - printf("#2360:code_postinc l r %lld %lld",i++,j--); - printf("#2361: %lld %lld\n",i,j); + printf("#2404:code_postinc l r %lld %lld",i++,j--); + printf("#2405: %lld %lld\n",i,j); } // code_lpreinc(int e1,int e2,int reg) @@ -2368,8 +2412,8 @@ { register unsigned long long i,j; i = 123123123;j = 0; - printf("#2370:code_preinc l r %llu %llu",++i,--j); - printf("#2371: %lld %lld\n",i,j); + printf("#2414:code_preinc l r %llu %llu",++i,--j); + printf("#2415: %lld %lld\n",i,j); } // code_lpostinc(int e1,int e2,int reg) @@ -2378,8 +2422,8 @@ { register unsigned long long i,j; i = 123123123;j = 0; - printf("#2380:code_postinc lu r %llu %llu",i++,j--); - printf("#2381: %lld %lld\n",i,j); + printf("#2424:code_postinc lu r %llu %llu",i++,j--); + printf("#2425: %lld %lld\n",i,j); } // code_lassop(int op) @@ -2395,42 +2439,42 @@ ui1 = 632423423; i1 += a; - printf("#2397:code_register_lassop 1 %lld\n",i1); + printf("#2441:code_register_lassop 1 %lld\n",i1); i1 -= a; - printf("#2399:code_register_lassop 2 %lld\n",i1); + printf("#2443:code_register_lassop 2 %lld\n",i1); i1 /= a; - printf("#2401:code_register_lassop 3 %lld\n",i1); + printf("#2445:code_register_lassop 3 %lld\n",i1); i1 *= a; - printf("#2403:code_register_lassop 4 %lld\n",i1); + printf("#2447:code_register_lassop 4 %lld\n",i1); i1 |= a; - printf("#2405:code_register_lassop 5 %lld\n",i1); + printf("#2449:code_register_lassop 5 %lld\n",i1); i1 &= a; - printf("#2407:code_register_lassop 6 %lld\n",i1); + printf("#2451:code_register_lassop 6 %lld\n",i1); i1 ^= a; - printf("#2409:code_register_lassop 7 %lld\n",i1); + printf("#2453:code_register_lassop 7 %lld\n",i1); i1 <<= a; - printf("#2411:code_register_lassop 8 %lld\n",i1); + printf("#2455:code_register_lassop 8 %lld\n",i1); i1 >>= a; - printf("#2413:code_register_lassop 9 %lld\n",i1); + printf("#2457:code_register_lassop 9 %lld\n",i1); ui1 += a; - printf("#2416:code_register_lassop 1 %llu\n",ui1); + printf("#2460:code_register_lassop 1 %llu\n",ui1); ui1 -= a; - printf("#2418:code_register_lassop 2 %llu\n",ui1); + printf("#2462:code_register_lassop 2 %llu\n",ui1); ui1 /= a; - printf("#2420:code_register_lassop 3 %llu\n",ui1); + printf("#2464:code_register_lassop 3 %llu\n",ui1); ui1 *= a; - printf("#2422:code_register_lassop 4 %llu\n",ui1); + printf("#2466:code_register_lassop 4 %llu\n",ui1); ui1 |= a; - printf("#2424:code_register_lassop 5 %llu\n",ui1); + printf("#2468:code_register_lassop 5 %llu\n",ui1); ui1 &= a; - printf("#2426:code_register_lassop 6 %llu\n",ui1); + printf("#2470:code_register_lassop 6 %llu\n",ui1); ui1 ^= a; - printf("#2428:code_register_lassop 7 %llu\n",ui1); + printf("#2472:code_register_lassop 7 %llu\n",ui1); ui1 <<= a; - printf("#2430:code_register_lassop 8 %llu\n",ui1); + printf("#2474:code_register_lassop 8 %llu\n",ui1); ui1 >>= a; - printf("#2432:code_register_lassop 9 %llu\n",ui1); + printf("#2476:code_register_lassop 9 %llu\n",ui1); } // code_lassop(int op,int byte,int sign) @@ -2444,42 +2488,42 @@ ui1 = 632423423; ui2= 32394234; i1 += a; - printf("#2446:code_lassop 1 %lld\n",i1); + printf("#2490:code_lassop 1 %lld\n",i1); i1 -= a; - printf("#2448:code_lassop 2 %lld\n",i1); + printf("#2492:code_lassop 2 %lld\n",i1); i1 /= a; - printf("#2450:code_lassop 3 %lld\n",i1); + printf("#2494:code_lassop 3 %lld\n",i1); i1 *= a; - printf("#2452:code_lassop 4 %lld\n",i1); + printf("#2496:code_lassop 4 %lld\n",i1); i1 |= a; - printf("#2454:code_lassop 5 %lld\n",i1); + printf("#2498:code_lassop 5 %lld\n",i1); i1 &= a; - printf("#2456:code_lassop 6 %lld\n",i1); + printf("#2500:code_lassop 6 %lld\n",i1); i1 ^= a; - printf("#2458:code_lassop 7 %lld\n",i1); + printf("#2502:code_lassop 7 %lld\n",i1); i1 <<= a; - printf("#2460:code_lassop 8 %lld\n",i1); + printf("#2504:code_lassop 8 %lld\n",i1); i1 >>= a; - printf("#2462:code_lassop 9 %lld\n",i1); + printf("#2506:code_lassop 9 %lld\n",i1); ui1 += a; - printf("#2465:code_lassop 1 %llu\n",ui1); + printf("#2509:code_lassop 1 %llu\n",ui1); ui1 -= a; - printf("#2467:code_lassop 2 %llu\n",ui1); + printf("#2511:code_lassop 2 %llu\n",ui1); ui1 /= a; - printf("#2469:code_lassop 3 %llu\n",ui1); + printf("#2513:code_lassop 3 %llu\n",ui1); ui1 *= a; - printf("#2471:code_lassop 4 %llu\n",ui1); + printf("#2515:code_lassop 4 %llu\n",ui1); ui1 |= a; - printf("#2473:code_lassop 5 %llu\n",ui1); + printf("#2517:code_lassop 5 %llu\n",ui1); ui1 &= a; - printf("#2475:code_lassop 6 %llu\n",ui1); + printf("#2519:code_lassop 6 %llu\n",ui1); ui1 ^= a; - printf("#2477:code_lassop 7 %llu\n",ui1); + printf("#2521:code_lassop 7 %llu\n",ui1); ui1 <<= a; - printf("#2479:code_lassop 8 %llu\n",ui1); + printf("#2523:code_lassop 8 %llu\n",ui1); ui1 >>= a; - printf("#2481:code_lassop 9 %llu\n",ui1); + printf("#2525:code_lassop 9 %llu\n",ui1); } // code_register_assop(int e2,int op,int byte) @@ -2492,42 +2536,42 @@ ui1 = 632423423; i1 += 3; - printf("#2494:code_register_lassop c 1 %lld\n",i1); + printf("#2538:code_register_lassop c 1 %lld\n",i1); i1 -= 3; - printf("#2496:code_register_lassop c 2 %lld\n",i1); + printf("#2540:code_register_lassop c 2 %lld\n",i1); i1 /= 3; - printf("#2498:code_register_lassop c 3 %lld\n",i1); + printf("#2542:code_register_lassop c 3 %lld\n",i1); i1 *= 3; - printf("#2500:code_register_lassop c 4 %lld\n",i1); + printf("#2544:code_register_lassop c 4 %lld\n",i1); i1 |= 234; - printf("#2502:code_register_lassop c 5 %lld\n",i1); + printf("#2546:code_register_lassop c 5 %lld\n",i1); i1 &= 2324234234234234LL; - printf("#2504:code_register_lassop c 6 %lld\n",i1); + printf("#2548:code_register_lassop c 6 %lld\n",i1); i1 ^= 5523234234234234LL; - printf("#2506:code_register_lassop c 7 %lld\n",i1); + printf("#2550:code_register_lassop c 7 %lld\n",i1); i1 <<= 3; - printf("#2508:code_register_lassop c 8 %lld\n",i1); + printf("#2552:code_register_lassop c 8 %lld\n",i1); i1 >>= 3; - printf("#2510:code_register_lassop c 9 %lld\n",i1); + printf("#2554:code_register_lassop c 9 %lld\n",i1); ui1 += 3; - printf("#2513:code_register_lassop c 1 %llu\n",ui1); + printf("#2557:code_register_lassop c 1 %llu\n",ui1); ui1 -= 3; - printf("#2515:code_register_lassop c 2 %llu\n",ui1); + printf("#2559:code_register_lassop c 2 %llu\n",ui1); ui1 /= 3; - printf("#2517:code_register_lassop c 3 %llu\n",ui1); + printf("#2561:code_register_lassop c 3 %llu\n",ui1); ui1 *= 3; - printf("#2519:code_register_lassop c 4 %llu\n",ui1); + printf("#2563:code_register_lassop c 4 %llu\n",ui1); ui1 |= 234; - printf("#2521:code_register_lassop c 5 %llu\n",ui1); + printf("#2565:code_register_lassop c 5 %llu\n",ui1); ui1 &= 2324234234234234LL; - printf("#2523:code_register_lassop c 6 %llu\n",ui1); + printf("#2567:code_register_lassop c 6 %llu\n",ui1); ui1 ^= 5523234234234234LL; - printf("#2525:code_register_lassop c 7 %llu\n",ui1); + printf("#2569:code_register_lassop c 7 %llu\n",ui1); ui1 <<= 3; - printf("#2527:code_register_lassop c 8 %llu\n",ui1); + printf("#2571:code_register_lassop c 8 %llu\n",ui1); ui1 >>= 3; - printf("#2529:code_register_lassop c 9 %llu\n",ui1); + printf("#2573:code_register_lassop c 9 %llu\n",ui1); } // code_lassop(int op,int byte,int sign) @@ -2540,42 +2584,42 @@ ui1 = 632423423; ui2= 32394234; i1 += 3; - printf("#2542:code_lassop c 1 %lld\n",i1); + printf("#2586:code_lassop c 1 %lld\n",i1); i1 -= 3; - printf("#2544:code_lassop c 2 %lld\n",i1); + printf("#2588:code_lassop c 2 %lld\n",i1); i1 /= 3; - printf("#2546:code_lassop c 3 %lld\n",i1); + printf("#2590:code_lassop c 3 %lld\n",i1); i1 *= 3; - printf("#2548:code_lassop c 4 %lld\n",i1); + printf("#2592:code_lassop c 4 %lld\n",i1); i1 |= 234; - printf("#2550:code_lassop c 5 %lld\n",i1); + printf("#2594:code_lassop c 5 %lld\n",i1); i1 &= 2324234234234234LL; - printf("#2552:code_lassop c 6 %lld\n",i1); + printf("#2596:code_lassop c 6 %lld\n",i1); i1 ^= 5523234234234234LL; - printf("#2554:code_lassop c 7 %lld\n",i1); + printf("#2598:code_lassop c 7 %lld\n",i1); i1 <<= 3; - printf("#2556:code_lassop c 8 %lld\n",i1); + printf("#2600:code_lassop c 8 %lld\n",i1); i1 >>= 3; - printf("#2558:code_lassop c 9 %lld\n",i1); + printf("#2602:code_lassop c 9 %lld\n",i1); ui1 += 3; - printf("#2561:code_lassop c 1 %llu\n",ui1); + printf("#2605:code_lassop c 1 %llu\n",ui1); ui1 -= 3; - printf("#2563:code_lassop c 2 %llu\n",ui1); + printf("#2607:code_lassop c 2 %llu\n",ui1); ui1 /= 3; - printf("#2565:code_lassop c 3 %llu\n",ui1); + printf("#2609:code_lassop c 3 %llu\n",ui1); ui1 *= 3; - printf("#2567:code_lassop c 4 %llu\n",ui1); + printf("#2611:code_lassop c 4 %llu\n",ui1); ui1 |= 234; - printf("#2569:code_lassop c 5 %llu\n",ui1); + printf("#2613:code_lassop c 5 %llu\n",ui1); ui1 &= 2324234234234234LL; - printf("#2571:code_lassop c 6 %llu\n",ui1); + printf("#2615:code_lassop c 6 %llu\n",ui1); ui1 ^= 5523234234234234LL; - printf("#2573:code_lassop c 7 %llu\n",ui1); + printf("#2617:code_lassop c 7 %llu\n",ui1); ui1 <<= 3; - printf("#2575:code_lassop c 8 %llu\n",ui1); + printf("#2619:code_lassop c 8 %llu\n",ui1); ui1 >>= 3; - printf("#2577:code_lassop c 9 %llu\n",ui1); + printf("#2621:code_lassop c 9 %llu\n",ui1); } // code_lgt(int cond) @@ -2585,16 +2629,16 @@ { long long reg; if (l0>l1) - printf("#2587:code_lgt 1\n"); + printf("#2631:code_lgt 1\n"); else - printf("#2589:code_lgt 0\n"); + printf("#2633:code_lgt 0\n"); for (reg=-3;reg<7;reg++) { if (0ul1) - printf("#2606:code_lugt 1\n"); + printf("#2650:code_lugt 1\n"); else - printf("#2608:code_lugt 0\n"); + printf("#2652:code_lugt 0\n"); for (reg=0;reg<7;reg++) { if (2=l1) - printf("#2625:code_lge 1\n"); + printf("#2669:code_lge 1\n"); else - printf("#2627:code_lge 0\n"); + printf("#2671:code_lge 0\n"); for (reg=-3;reg<7;reg++) { if (0<=reg && reg<=3) - printf("#2630:reg=%lld code_lge 0<=reg && reg <=3\n",reg); + printf("#2674:reg=%lld code_lge 0<=reg && reg <=3\n",reg); } for (reg=-3;reg<7;reg++) { if (-2<=reg && reg<=0) - printf("#2634:reg=%lld code_lge -2<=reg && reg <=0\n",reg); + printf("#2678:reg=%lld code_lge -2<=reg && reg <=0\n",reg); } } @@ -2642,16 +2686,16 @@ { unsigned long long reg; if (ul0>=ul1) - printf("#2644:code_luge 1\n"); + printf("#2688:code_luge 1\n"); else - printf("#2646:code_luge 0\n"); + printf("#2690:code_luge 0\n"); for (reg=0;reg<7;reg++) { if (2