diff --git a/src/Decompiler/Typing/ComplexExpressionBuilder.cs b/src/Decompiler/Typing/ComplexExpressionBuilder.cs index 88d04fcd65..d360f96196 100644 --- a/src/Decompiler/Typing/ComplexExpressionBuilder.cs +++ b/src/Decompiler/Typing/ComplexExpressionBuilder.cs @@ -273,6 +273,7 @@ public Expression VisitPrimitive(PrimitiveType pt) } else { + index = ScaleDownIndex(index, pt.Size); return CreateArrayAccess(pt, enclosingPtr, offset / pt.Size, index); } } diff --git a/subjects/Elf/ARM/angr-685/RTOSDemo.reko/RTOSDemo.h b/subjects/Elf/ARM/angr-685/RTOSDemo.reko/RTOSDemo.h index e7a3242d44..d9c5beb184 100644 --- a/subjects/Elf/ARM/angr-685/RTOSDemo.reko/RTOSDemo.h +++ b/subjects/Elf/ARM/angr-685/RTOSDemo.reko/RTOSDemo.h @@ -20371,7 +20371,7 @@ T_4340: (in 0xFFFFFFFC<32> @ 0000801C : word32) Class: Eq_4340 DataType: ui32 OrigDataType: ui32 -T_4341: (in r0_7 + ~r3_18 & 0xFFFFFFFC<32> @ 0000801C : word32) +T_4341: (in r0_7 + ~r3_18 / 4 & 0xFFFFFFFC<32> @ 0000801C : word32) Class: Eq_4341 DataType: ui32 OrigDataType: ui32 @@ -20379,7 +20379,7 @@ T_4342: (in 4<32> @ 0000801C : word32) Class: Eq_4342 DataType: word32 OrigDataType: word32 -T_4343: (in (r0_7 + ~r3_18 & 0xFFFFFFFC<32>) + 4<32> @ 0000801C : word32) +T_4343: (in (r0_7 + ~r3_18 / 4 & 0xFFFFFFFC<32>) + 4<32> @ 0000801C : word32) Class: Eq_4343 DataType: ui32 OrigDataType: ui32 diff --git a/subjects/Elf/ARM/angr-685/RTOSDemo.reko/RTOSDemo_text.c b/subjects/Elf/ARM/angr-685/RTOSDemo.reko/RTOSDemo_text.c index 673f731fb6..810fceb7b4 100644 --- a/subjects/Elf/ARM/angr-685/RTOSDemo.reko/RTOSDemo_text.c +++ b/subjects/Elf/ARM/angr-685/RTOSDemo.reko/RTOSDemo_text.c @@ -51,7 +51,7 @@ void ResetISR(word32 cpsr) word32 * r0_n = g_ptr8030; if (r3_n < r0_n) { - word32 * r2_n = r3_n + ((r0_n + ~r3_n & ~0x03) + 0x04); + word32 * r2_n = r3_n + ((r0_n + ~r3_n / 4 & ~0x03) + 0x04) / 4; do { *r3_n = 0x00; diff --git a/subjects/Elf/AVR32/ls.reko/ls.h b/subjects/Elf/AVR32/ls.reko/ls.h index 6a6536ac6c..d7ad1cecf3 100644 --- a/subjects/Elf/AVR32/ls.reko/ls.h +++ b/subjects/Elf/AVR32/ls.reko/ls.h @@ -8095,7 +8095,7 @@ Eq_9400: (struct "Eq_9400" 0001 (FFFFFFFE byte bFFFFFFFE) (FFFFFFFF byte bFFFFFF T_15549 (in 0<32> @ 0000931E : word32) T_15552 (in 4<32> @ 00009334 : word32) T_15578 (in r12 @ 0000935A : (ptr32 Eq_9400)) - T_15590 (in r5_112 | g_a99B4[r12_118 * 4<32>] @ 00009340 : word32) + T_15590 (in r5_112 | g_a99B4[r12_118] @ 00009340 : word32) T_15595 (in 0<32> @ 00009362 : word32) T_15598 (in Mem144[r2_109 + 0<32>:word32] @ 00009362 : word32) T_15601 (in Mem29[sp_130 + 0<32>:word32] @ 0000935C : word32) @@ -17837,7 +17837,7 @@ T_1200: (in 0x37<32> @ 0000302C : word32) Class: Eq_1200 DataType: word32 OrigDataType: word32 -T_1201: (in lr.u1 + (r10_149 << 4<32>) - 0x37<32> @ 0000302C : word32) +T_1201: (in lr.u1 + r10_149 * 4 - 0x37<32> @ 0000302C : word32) Class: Eq_1201 DataType: word32 OrigDataType: word32 @@ -17889,7 +17889,7 @@ T_1213: (in 0x57<32> @ 00003020 : word32) Class: Eq_1213 DataType: word32 OrigDataType: word32 -T_1214: (in lr.u1 + (r10_149 << 4<32>) - 0x57<32> @ 00003020 : word32) +T_1214: (in lr.u1 + r10_149 * 4 - 0x57<32> @ 00003020 : word32) Class: Eq_1201 DataType: word32 OrigDataType: word32 @@ -78107,7 +78107,7 @@ T_15589: (in 0x000099B4[r12_118 * 4<32>] @ 00009340 : word32) Class: Eq_15589 DataType: ui32 OrigDataType: ui32 -T_15590: (in r5_112 | g_a99B4[r12_118 * 4<32>] @ 00009340 : word32) +T_15590: (in r5_112 | g_a99B4[r12_118] @ 00009340 : word32) Class: Eq_9400 DataType: (ptr32 Eq_9400) OrigDataType: ui32 diff --git a/subjects/Elf/AVR32/ls.reko/ls_seg00001000_0000.c b/subjects/Elf/AVR32/ls.reko/ls_seg00001000_0000.c index f5be0501e0..79e200602b 100644 --- a/subjects/Elf/AVR32/ls.reko/ls_seg00001000_0000.c +++ b/subjects/Elf/AVR32/ls.reko/ls_seg00001000_0000.c @@ -720,7 +720,7 @@ void fn00002E78(word32 r0, Eq_n r9, word32 r10, byte ** r11, byte ** r12, Eq_n l word32 r8_n; if ((byte) lr <= 55 && (byte) lr >= 0x30) { - r8_n = lr.u1 + (r10_n << 0x03); + r8_n = lr.u1 + r10_n * 2; goto l00003014; } break; @@ -730,7 +730,7 @@ void fn00002E78(word32 r0, Eq_n r9, word32 r10, byte ** r11, byte ** r12, Eq_n l word32 r8_n; if ((byte) lr <= 0x39) { - r8_n = lr.u1 + (r10_n << 0x04); + r8_n = lr.u1 + r10_n * 4; l00003014: r8_n = r8_n - 0x30; goto l0000302E; @@ -739,12 +739,12 @@ void fn00002E78(word32 r0, Eq_n r9, word32 r10, byte ** r11, byte ** r12, Eq_n l { if ((byte) lr <= 0x46) { - r8_n = lr.u1 + (r10_n << 0x04) - 55; + r8_n = lr.u1 + r10_n * 4 - 55; goto l0000302E; } if ((byte) lr <= 0x66 && (byte) lr >= 0x61) { - r8_n = lr.u1 + (r10_n << 0x04) - 0x57; + r8_n = lr.u1 + r10_n * 4 - 0x57; l0000302E: r10_n = (byte) r8_n; ++r11_n; @@ -3412,7 +3412,7 @@ Eq_n fn00004968(Eq_n r0, Eq_n r1, Eq_n r2, Eq_n r3, Eq_n r4, Eq_n r5, Eq_n lr, s fn00004374(r0, r1, r2, r3, r4_n, r5_n, r5_n, lr_n, out r12_n, out lr); r10_n.u4 = sp_n->dw0014; r4_n = r12_n; - r7_n = (&sp_n[2].dw0008->tFFFFFFFC.u6->dw0004)[r10_n * 0x04]; + r7_n = (&sp_n[2].dw0008->tFFFFFFFC.u6->dw0004)[r10_n]; } goto l00004B9E; case 0x04: @@ -8421,7 +8421,7 @@ void fn000092D8(word32 r0, * r1, word32 r4, word32 r5, word64 * r10, bool V_n = ; if (!(N_n | V_n)) { - r5_n |= g_a99B4[r12_n * 0x04]; + r5_n |= g_a99B4[r12_n]; *r3_n = 0x01; } else diff --git a/subjects/Elf/Msp430/a.reko/a.h b/subjects/Elf/Msp430/a.reko/a.h index e4879232bc..b83e5f2331 100644 --- a/subjects/Elf/Msp430/a.reko/a.h +++ b/subjects/Elf/Msp430/a.reko/a.h @@ -7233,7 +7233,7 @@ T_1500: (in 0<16> @ 00004B2E : word16) Class: Eq_1499 DataType: word16 OrigDataType: word16 -T_1501: (in (&g_w0222)[uxTopReadyPriority * 0x10<16>] != 0<16> @ 00004B2E : bool) +T_1501: (in (&g_w0222)[uxTopReadyPriority *16 8] != 0<16> @ 00004B2E : bool) Class: Eq_1501 DataType: bool OrigDataType: bool @@ -7373,7 +7373,7 @@ T_1535: (in 0<16> @ 00004B44 : word16) Class: Eq_1534 DataType: word16 OrigDataType: word16 -T_1536: (in (&g_w0222)[uxTopReadyPriority * 0x10<16>] == 0<16> @ 00004B44 : bool) +T_1536: (in (&g_w0222)[uxTopReadyPriority *16 8] == 0<16> @ 00004B44 : bool) Class: Eq_1536 DataType: bool OrigDataType: bool diff --git a/subjects/Elf/Msp430/a.reko/a_text.c b/subjects/Elf/Msp430/a.reko/a_text.c index f7031a2be8..6447c2f500 100644 --- a/subjects/Elf/Msp430/a.reko/a_text.c +++ b/subjects/Elf/Msp430/a.reko/a_text.c @@ -930,7 +930,7 @@ void vTaskSwitchContext() { if (uxSchedulerSuspended == 0x00) { - while ((&g_w0222)[uxTopReadyPriority * 0x10] == 0x00) + while ((&g_w0222)[uxTopReadyPriority *16 8] == 0x00) uxTopReadyPriority += ~0x00; g_a0226[uxTopReadyPriority] = *g_a0226[uxTopReadyPriority].ptr0002; if (g_a0226[uxTopReadyPriority] == g_a0224[uxTopReadyPriority]) diff --git a/subjects/Elf/Sparc/rtems/sparc-rtems-unprotoize.reko/sparc-rtems-unprotoize_text.c b/subjects/Elf/Sparc/rtems/sparc-rtems-unprotoize.reko/sparc-rtems-unprotoize_text.c index e4075677d7..cde95a78b2 100644 --- a/subjects/Elf/Sparc/rtems/sparc-rtems-unprotoize.reko/sparc-rtems-unprotoize_text.c +++ b/subjects/Elf/Sparc/rtems/sparc-rtems-unprotoize.reko/sparc-rtems-unprotoize_text.c @@ -3453,7 +3453,7 @@ word32 (* exchange)[](word32 o0[], int8 & i2Out, ptr32 & i4Out, ptr32 & i5Out, s { g2_n = optind; l00015D44: - g_ptr2B2F0 += g2_n - g_ptr2B300; + g_ptr2B2F0 += (g2_n - g_ptr2B300) / 4; g_ptr2B300 = g2_n; i2Out = i2_n; i4Out = i4_n; @@ -3502,7 +3502,7 @@ word32 (* exchange)[](word32 o0[], int8 & i2Out, ptr32 & i4Out, ptr32 & i5Out, s ptr32 * g4_n; if (g3_n > 0x00) { - g4_n = i4_n + g3_n; + g4_n = i4_n + g3_n / 4; int32 i3_n = g3_n; int32 i1_n = i4_n << 0x02; int32 g3_n = g1_n << 0x02; @@ -3520,7 +3520,7 @@ word32 (* exchange)[](word32 o0[], int8 & i2Out, ptr32 & i4Out, ptr32 & i5Out, s i1_n = i1_n + 0x04; } else - g4_n = i4_n + g3_n; + g4_n = i4_n + g3_n / 4; i4_n = g4_n; } v28_n = i5_n <= g1_n; diff --git a/subjects/Elf/nanoMips/ping/ping.reko/ping.h b/subjects/Elf/nanoMips/ping/ping.reko/ping.h index 151943ba99..0d24f10984 100644 --- a/subjects/Elf/nanoMips/ping/ping.reko/ping.h +++ b/subjects/Elf/nanoMips/ping/ping.reko/ping.h @@ -36125,7 +36125,7 @@ T_4126: (in 0x00452340[__ext(r6_123, 5<32>, 0xB<32>) * 4<32> Class: Eq_4126 DataType: ui32 OrigDataType: ui32 -T_4127: (in 1<32> << r6_123 & g_a452340[__ext(r6_123, 5<32>, 0xB<32>) * 4<32>] @ 00401F06 : word32) +T_4127: (in 1<32> << r6_123 & g_a452340[__ext(r6_123, 5<32>, 0xB<32>)] @ 00401F06 : word32) Class: Eq_4127 DataType: ui32 OrigDataType: ui32 @@ -36133,7 +36133,7 @@ T_4128: (in 0<32> @ 00401F06 : word32) Class: Eq_4127 DataType: ui32 OrigDataType: word32 -T_4129: (in (1<32> << r6_123 & g_a452340[__ext(r6_123, 5<32>, 0xB<32>) * 4<32>]) != 0<32> @ 00401F06 : bool) +T_4129: (in (1<32> << r6_123 & g_a452340[__ext(r6_123, 5<32>, 0xB<32>)]) != 0<32> @ 00401F06 : bool) Class: Eq_4129 DataType: bool OrigDataType: bool @@ -59676,7 +59676,7 @@ T_10006: (in 0<32> @ 00404BB2 : word32) Class: Eq_10005 DataType: word32 OrigDataType: word32 -T_10007: (in (g_a432550 + r20_35)[4] != 0<32> @ 00404BB2 : bool) +T_10007: (in (g_a432550 + r20_35 / 4)[4] != 0<32> @ 00404BB2 : bool) Class: Eq_10007 DataType: bool OrigDataType: bool @@ -60400,7 +60400,7 @@ T_10187: (in 0<32> @ 00404C56 : word32) Class: Eq_10186 DataType: word32 OrigDataType: word32 -T_10188: (in (g_a432550 + r20_35)[4] != 0<32> @ 00404C56 : bool) +T_10188: (in (g_a432550 + r20_35 / 4)[4] != 0<32> @ 00404C56 : bool) Class: Eq_10188 DataType: bool OrigDataType: bool @@ -61128,7 +61128,7 @@ T_10369: (in 0<32> @ 00404D86 : word32) Class: Eq_10368 DataType: word32 OrigDataType: word32 -T_10370: (in (g_a432550 + r20_35)[4] != 0<32> @ 00404D86 : bool) +T_10370: (in (g_a432550 + r20_35 / 4)[4] != 0<32> @ 00404D86 : bool) Class: Eq_10370 DataType: bool OrigDataType: bool @@ -61856,7 +61856,7 @@ T_10551: (in 0<32> @ 00404E2A : word32) Class: Eq_10550 DataType: word32 OrigDataType: word32 -T_10552: (in (g_a432550 + r20_35)[4] != 0<32> @ 00404E2A : bool) +T_10552: (in (g_a432550 + r20_35 / 4)[4] != 0<32> @ 00404E2A : bool) Class: Eq_10552 DataType: bool OrigDataType: bool @@ -62924,7 +62924,7 @@ T_10818: (in 0<32> @ 00404FCA : word32) Class: Eq_10817 DataType: word32 OrigDataType: word32 -T_10819: (in (g_a432550 + r20_114)[4] == 0<32> @ 00404FCA : bool) +T_10819: (in (g_a432550 + r20_114 / 4)[4] == 0<32> @ 00404FCA : bool) Class: Eq_10819 DataType: bool OrigDataType: bool @@ -65176,7 +65176,7 @@ T_11381: (in 0<32> @ 00405322 : word32) Class: Eq_11380 DataType: word32 OrigDataType: word32 -T_11382: (in g_a432550[r17_175 + 8<32>] == 0<32> @ 00405322 : bool) +T_11382: (in g_a432550[(r17_175 + 8<32>) / 4] == 0<32> @ 00405322 : bool) Class: Eq_11382 DataType: bool OrigDataType: bool @@ -87323,7 +87323,7 @@ T_16853: (in 2<32> @ 0040707C : word32) Class: Eq_16852 DataType: word32 OrigDataType: word32 -T_16854: (in r4.u5[r7_525 * 0x1C<32>] != 2<32> @ 0040707C : bool) +T_16854: (in r4.u5[r7_525 * 7] != 2<32> @ 0040707C : bool) Class: Eq_16854 DataType: bool OrigDataType: bool @@ -88491,7 +88491,7 @@ T_17145: (in 0xA<32> @ 004071E0 : word32) Class: Eq_16852 DataType: word32 OrigDataType: word32 -T_17146: (in r4.u5[r21_412 * 0x1C<32>] != 0xA<32> @ 004071E0 : bool) +T_17146: (in r4.u5[r21_412 * 7] != 0xA<32> @ 004071E0 : bool) Class: Eq_17146 DataType: bool OrigDataType: bool diff --git a/subjects/Elf/nanoMips/ping/ping.reko/ping_text_0000.c b/subjects/Elf/nanoMips/ping/ping.reko/ping_text_0000.c index 32bb3820be..81d51ea8d3 100644 --- a/subjects/Elf/nanoMips/ping/ping.reko/ping_text_0000.c +++ b/subjects/Elf/nanoMips/ping/ping.reko/ping_text_0000.c @@ -117,7 +117,7 @@ void main(Eq_n r0, Eq_n r4, Eq_n r5) { if (r4_n < 0x38) { - word32 r7_n = g_a412060[(r4_n + ~0x33) * 0x04]; + word32 r7_n = g_a412060[r4_n + ~0x33]; switch (r4_n) { case 0x34: @@ -771,7 +771,7 @@ void ping4_run(Eq_n r0, Eq_n r2, Eq_n r3, Eq_n r4, Eq_n r5, Eq_n r6, struct Eq_n Eq_n r5_n; r5_n.u3 = g_t43148C.u3; nroute = r7_n + 0x01; - (&g_t431498.u0)[r7_n * 0x04] = (word32) r5_n; + (&g_t431498.u0)[r7_n] = (word32) r5_n; } } r17_n = (word32) r17_n - 1; @@ -906,7 +906,7 @@ void ping4_run(Eq_n r0, Eq_n r2, Eq_n r3, Eq_n r4, Eq_n r5, Eq_n r6, struct Eq_n ++r6_n; if (r7_n >= r5_n) break; - r6_n->dwFFFFFFFC = (&g_t431498.u0)[r7_n * 0x04]; + r6_n->dwFFFFFFFC = (&g_t431498.u0)[r7_n]; ++r7_n; } } @@ -942,7 +942,7 @@ void ping4_run(Eq_n r0, Eq_n r2, Eq_n r3, Eq_n r4, Eq_n r5, Eq_n r6, struct Eq_n while (r6_n < r8_n) { ++r6_n; - r20_n.u5[r6_n * 0x04] = r7_n->a0000[0].t0000.u3; + r20_n.u5[r6_n] = r7_n->a0000[0].t0000.u3; ++r7_n; } if (fn00401280(out r5_n) < 0x00) @@ -2571,7 +2571,7 @@ Eq_n pinger(Eq_n r0, Eq_n r4, ptr32 & r12Out) { Eq_n r6_n; r6_n.u3 = ntransmitted.u3; - if (r6_n > 0x00 && (0x01 << r6_n & g_a452340[__ext(r6_n, 0x05, 11) * 0x04]) == 0x00) + if (r6_n > 0x00 && (0x01 << r6_n & g_a452340[__ext(r6_n, 0x05, 11)]) == 0x00) { word32 r11_n; print_timestamp(out r11_n); @@ -3004,7 +3004,7 @@ struct Eq_n * gather_statistics(struct Eq_n * r4, word32 r5, Eq_n r6, Eq_n r7, E if (!__bit(options.u3, 0x0E)) update_interval(); l0040257A: - ui32 * r7_n = g_a452340 + ((r7 >> 0x05) << 0x02); + ui32 * r7_n = g_a452340 + (r7 >> 0x05); ui32 r16_n = 0x01 << r7; ui32 r6_n = *r7_n; if ((r6_n & r16_n) != 0x00) @@ -5909,7 +5909,7 @@ Eq_n sysconf(Eq_n r4, Eq_n r12, struct Eq_n & r7Out, ptr32 & r17Out) r4_n.u0 = ~0x00; goto l00404752; } - r4_n.u3 = (int32) g_a412368[r4 * 0x02]; + r4_n.u3 = (int32) g_a412368[r4]; if (r4_n == 0x00) goto l00404748; r7_n = (struct Eq_n *) ~0x00; @@ -6564,10 +6564,10 @@ Eq_n alloc_fwd(struct Eq_n * r4, ptr32 & r4Out, ptr32 & r8Out, union Eq_n & r19O r20_n = 0x03F0; } Eq_n r16_n; - r16_n.u0 = g_a432550 + r16_n; + r16_n.u0 = g_a432550 + r16_n / 4; if (g_dw45443C == 0x00) { - if ((g_a432550 + r20_n)[4] != 0x00) + if ((g_a432550 + r20_n / 4)[4] != 0x00) goto l00404C8E; r7_n = r18_n; goto l00404BB8; @@ -6588,11 +6588,11 @@ Eq_n alloc_fwd(struct Eq_n * r4, ptr32 & r4Out, ptr32 & r8Out, union Eq_n & r19O r2 = __wait(r16_n, &r16_n.u1->dw0004, 0x01, 0x01, out r4_n, out r5_n, out r8, out r9_n); } r7_n.u3 = r4->t0004.u3; - if ((g_a432550 + r20_n)[4] == 0x00) + if ((g_a432550 + r20_n / 4)[4] == 0x00) { l00404BB8: - struct Eq_n * r20_n = (struct Eq_n *) (g_a432550 + r20_n); - ui32 r6_n = g_a432550 + ((r22_n << 0x04) + 0x08); + struct Eq_n * r20_n = (struct Eq_n *) (g_a432550 + r20_n / 4); + ui32 r6_n = g_a432550 + ((r22_n << 0x04) + 0x08) / 4; r20_n->dw0010 = r6_n; r20_n->dw0014 = r6_n; } @@ -6760,10 +6760,10 @@ Eq_n alloc_rev(Eq_n r4, ptr32 & r4Out, union Eq_n & r5Out, ptr32 & r8Out, struct r20_n = 0x03F0; } Eq_n r16_n; - r16_n.u0 = g_a432550 + r16_n; + r16_n.u0 = g_a432550 + r16_n / 4; if (g_dw45443C == 0x00) { - if ((g_a432550 + r20_n)[4] != 0x00) + if ((g_a432550 + r20_n / 4)[4] != 0x00) goto l00404E62; r7_n = r18_n; goto l00404D8C; @@ -6782,11 +6782,11 @@ Eq_n alloc_rev(Eq_n r4, ptr32 & r4Out, union Eq_n & r5Out, ptr32 & r8Out, struct r2 = __wait(r16_n, &r16_n.u1->dw0004, 0x01, 0x01, out r4_n, out r5, out r8, out r9); } r7_n.u3 = *r4.u5; - if ((g_a432550 + r20_n)[4] == 0x00) + if ((g_a432550 + r20_n / 4)[4] == 0x00) { l00404D8C: - struct Eq_n * r20_n = (struct Eq_n *) (g_a432550 + r20_n); - ui32 r6_n = g_a432550 + ((r22_n << 0x04) + 0x08); + struct Eq_n * r20_n = (struct Eq_n *) (g_a432550 + r20_n / 4); + ui32 r6_n = g_a432550 + ((r22_n << 0x04) + 0x08) / 4; r20_n->dw0010 = r6_n; r20_n->dw0014 = r6_n; } @@ -7048,7 +7048,7 @@ Eq_n free(Eq_n r0, Eq_n r4, Eq_n r11, ptr32 & r3Out, union Eq_n & r4Out, ptr32 & r2 = __wait(r23_n, &r23_n.u1->dw0004, 0x01, 0x01, out r4_n, out r5_n, out r8_n, out r9_n); } } - if ((g_a432550 + r20_n)[4] == 0x00) + if ((g_a432550 + r20_n / 4)[4] == 0x00) r17_n = dwLoc34_n; if (g_dw454433 != 0x00) { @@ -7134,8 +7134,8 @@ Eq_n free(Eq_n r0, Eq_n r4, Eq_n r11, ptr32 & r3Out, union Eq_n & r4Out, ptr32 & } } } - ptr32 r6_n = (ptr32) (g_a432550 + r20_n)[5]; - struct Eq_n * r9_n = (struct Eq_n *) (g_a432550 + (r7_n.u3 + 1 << 0x04)); + ptr32 r6_n = (ptr32) (g_a432550 + r20_n / 4)[5]; + struct Eq_n * r9_n = (struct Eq_n *) (g_a432550 + (r7_n.u3 + 1) * 4); r9_n->t0001.u3 = (byte *) dwLoc34_n; if (*((byte) dwLoc34_n.u0 + 0x0C) != 0x00) r2 = madvise(out r3, out r4_n, out r6_n, out r8_n, out r9_n); @@ -7355,7 +7355,7 @@ Eq_n malloc(Eq_n r0, Eq_n r4, Eq_n r11, union Eq_n & r3Out, union Eq_n & r4Out, r19_n = (word32) ((r7_n & -r7_n) *s 124511785 >> 0x1B)->b412CC0; int32 r17_n = r19_n << 0x04; Eq_n r30_n; - r30_n.u0 = g_a432550 + (r17_n + 0x08); + r30_n.u0 = g_a432550 + (r17_n + 0x08) / 4; if (g_dw454433 != 0x00) { while (true) @@ -7373,8 +7373,8 @@ Eq_n malloc(Eq_n r0, Eq_n r4, Eq_n r11, union Eq_n & r3Out, union Eq_n & r4Out, r2 = __wait(r30_n, &r30_n.u1->dw0004, 0x01, 0x01, out r4_n, out r5_n, out r8, out r9_n); } } - struct Eq_n * r7_n = (struct Eq_n *) (g_a432550 + (r17_n + 0x08)); - r9_n = (g_a432550 + r17_n)[4]; + struct Eq_n * r7_n = (struct Eq_n *) (g_a432550 + (r17_n + 0x08) / 4); + r9_n = (g_a432550 + r17_n / 4)[4]; if (r9_n != null && r7_n != r9_n) { Eq_n r17_n; @@ -7487,10 +7487,10 @@ Eq_n malloc(Eq_n r0, Eq_n r4, Eq_n r11, union Eq_n & r3Out, union Eq_n & r4Out, r7_n.u3 = r9_n->t0001.u3; goto l0040558C; } - if (g_a432550[r17_n + 0x08] == 0x00) + if (g_a432550[(r17_n + 0x08) / 4] == 0x00) goto l004052C2; __sync(0x00); - g_a432550[r17_n + 0x08] = 0x00; + g_a432550[(r17_n + 0x08) / 4] = 0x00; __sync(0x00); if (r30_n.u1->dw0004 == 0x00) goto l004052C2; @@ -8023,7 +8023,7 @@ Eq_n __posix_getopt(Eq_n r0, Eq_n r4, Eq_n r5, byte * r6, Eq_n (* r8)[], Eq_n (& if (r7_n < r4) { Eq_n r5_n; - r5_n.u3 = r5.u5[r7_n * 0x04]; + r5_n.u3 = r5.u5[r7_n]; if (r5_n == 0x00) goto l00405B00; if ((word32) *r5_n.u3 != 0x2D) @@ -8058,7 +8058,7 @@ Eq_n __posix_getopt(Eq_n r0, Eq_n r4, Eq_n r5, byte * r6, Eq_n (* r8)[], Eq_n (& Eq_n r6_n; r6_n.u3 = __optpos.u3; Eq_n r4_n; - r4_n.u3 = r5.u5[r5_n * 0x04]; + r4_n.u3 = r5.u5[r5_n]; Eq_n r6_n; r6_n.u3 = r6_n.u3 + r7_n; __optpos.u3 = (byte *) r6_n; @@ -8113,7 +8113,7 @@ Eq_n __posix_getopt(Eq_n r0, Eq_n r4, Eq_n r5, byte * r6, Eq_n (* r8)[], Eq_n (& Eq_n r7_n; r7_n.u1 = optind.u1; Eq_n r7_n; - r7_n.u3 = r5.u5[r7_n * 0x04]; + r7_n.u3 = r5.u5[r7_n]; optind.u1 = (struct Eq_n *) &r7_n.u1->b0001; __optpos.u3 = (byte *) r0; Mem192[0x004544E8:word32] = r7_n + r6_n; @@ -9898,7 +9898,7 @@ Eq_n inet_pton(Eq_n r4, Eq_n r5, Eq_n r6, ptr32 & r4Out, union Eq_n & r6Out, ptr r2 = memmove(fp - 48 + ((r4_n + 0x07) - r17_n << 0x01), r20_n, r17_n + 0x01 - r4_n << 0x01, out r8, out r9, out r11, out r12); int32 r7_n; for (r7_n = 0x00; r7_n < 0x07 - r17_n; ++r7_n) - r20_n.u4[r7_n * 0x02] = 0x00; + r20_n.u4[r7_n] = 0x00; goto l00406B0E; } if (r4_n == ~0x00) @@ -10725,7 +10725,7 @@ Eq_n __lookup_name(Eq_n r2, Eq_n r3, Eq_n r4, Eq_n r5, Eq_n r6, Eq_n r7, Eq_n r8 do { int32 r17_n = r21_n *s 0x1C; - if (r4.u5[r21_n * 0x1C] == 0x0A) + if (r4.u5[r21_n * 7] == 0x0A) { if (r21_n < r20_n) { @@ -10790,7 +10790,7 @@ Eq_n __lookup_name(Eq_n r2, Eq_n r3, Eq_n r4, Eq_n r5, Eq_n r6, Eq_n r7, Eq_n r8 r7_n.u0 = 0x00; do { - if (r4.u5[r7_n * 0x1C] != 0x02) + if (r4.u5[r7_n * 7] != 0x02) { if (r17_n != r7_n) { @@ -11546,7 +11546,7 @@ Eq_n __res_msend_rc(Eq_n r4, Eq_n r7, Eq_n r8, Eq_n r9, struct Eq_n * r10, Eq_n r21.u0 = 0x00; while (r21 < r18_n) { - r7_n.u3 = r7_n.u5[r21 * 0x04]; + r7_n.u3 = r7_n.u5[r21]; if (r7_n == 0x00) { r7_n = &tLoc84; @@ -11594,7 +11594,7 @@ Eq_n __res_msend_rc(Eq_n r4, Eq_n r7, Eq_n r8, Eq_n r9, struct Eq_n * r10, Eq_n { Eq_n r5_n; r5_n.u3 = *r10_n.u3; - r6_n.u3 = r6_n.u5[r7_n * 0x04]; + r6_n.u3 = r6_n.u5[r7_n]; r11 = (word32) *r5_n.u3; if (r11 == (word32) (*r6_n.u3)) { @@ -14151,12 +14151,12 @@ Eq_n printf_core(Eq_n r4, Eq_n r5, Eq_n r6, Eq_n r13, Eq_n r21, union Eq_n & r4O { do { - r5.u3 = r7_n.u5[r16_n * 0x04]; + r5.u3 = r7_n.u5[r16_n]; if (r5 == 0x00) { do { - r7_n.u3 = r7_n.u5[r16_n * 0x04]; + r7_n.u3 = r7_n.u5[r16_n]; if (r7_n != 0x00) goto l00408D3A; ++r16_n; @@ -17302,7 +17302,7 @@ Eq_n memset(Eq_n r4, Eq_n r5, Eq_n r6, union Eq_n & r6Out, union Eq_n & r7Out, u struct Eq_n * r9_n = -r4; Eq_n r6_n = __ins(r6 - (r9_n & 0x03), 0x00, 0x00, 0x01); r5 = ((r5 & 0xFF) << 0x08) + (r5 & 0xFF); - r4.u5[r9_n & 0x03] = r5 * 0x00010001; + r4.u5[(r9_n & 0x03) / 4] = r5 * 0x00010001; r7.u0 = r4.u3 + (r9_n & 0x03); r10 = r7 + r6_n; r10->tFFFFFFFC.u1 = (ui32) (r5 * 0x00010001); diff --git a/subjects/Elf/superH/netbsd-ls/ls.reko/ls_text.c b/subjects/Elf/superH/netbsd-ls/ls.reko/ls_text.c index 37c5c57654..fd1ca85395 100644 --- a/subjects/Elf/superH/netbsd-ls/ls.reko/ls_text.c +++ b/subjects/Elf/superH/netbsd-ls/ls.reko/ls_text.c @@ -8,7 +8,7 @@ void _start(word32 r7, word32 r9) { int32 r0_n = g_dw401D7C; - (&g_dw401D7C)[r0_n](); + (&g_dw401D7C)[r0_n / 4](); } int32 g_dw401D7C = 64; // 00401D7C @@ -19,7 +19,7 @@ void ___start(word32 r4, struct Eq_n * r5, word32 r9, word32 r10, word32 r11, wo word32 r9_n; *** r9_n; int32 r12_n; - Eq_n r12_n = &g_dw401E94 + g_dw401E94; + Eq_n r12_n = &g_dw401E94 + g_dw401E94 / 4; if (r5 != null) { int32 r10_n = g_dw401EA8; @@ -134,7 +134,7 @@ void modcmp(struct Eq_n * r4, struct Eq_n * r5, word32 pr) struct Eq_n * r3_n = r4->ptr0050; int32 r2_n = r7_n->dw0038; int32 r1_n = r3_n->dw0038; - word32 r12_n = &g_dw4020A8 + g_dw4020A8; + word32 r12_n = &g_dw4020A8 + g_dw4020A8 / 4; up32 r0_n = r7_n->dw0034; if (r2_n > r1_n) return; @@ -172,7 +172,7 @@ void revmodcmp(struct Eq_n * r4, struct Eq_n * r5, word32 pr) struct Eq_n * r3_n = r4->ptr0050; int32 r2_n = r7_n->dw0038; int32 r1_n = r3_n->dw0038; - word32 r12_n = &g_dw402114 + g_dw402114; + word32 r12_n = &g_dw402114 + g_dw402114 / 4; up32 r0_n = r7_n->dw0034; if (r2_n > r1_n) return; @@ -210,7 +210,7 @@ void acccmp(struct Eq_n * r4, struct Eq_n * r5, word32 pr) struct Eq_n * r3_n = r4->ptr0050; int32 r2_n = r7_n->dw002C; int32 r1_n = r3_n->dw002C; - word32 r12_n = &g_dw402178 + g_dw402178; + word32 r12_n = &g_dw402178 + g_dw402178 / 4; up32 r0_n = r7_n->dw0028; if (r2_n > r1_n) return; @@ -248,7 +248,7 @@ void revacccmp(struct Eq_n * r4, struct Eq_n * r5, word32 pr) struct Eq_n * r3_n = r4->ptr0050; int32 r2_n = r7_n->dw002C; int32 r1_n = r3_n->dw002C; - word32 r12_n = &g_dw4021E4 + g_dw4021E4; + word32 r12_n = &g_dw4021E4 + g_dw4021E4 / 4; up32 r0_n = r7_n->dw0028; if (r2_n > r1_n) return; @@ -286,7 +286,7 @@ void statcmp(struct Eq_n * r4, struct Eq_n * r5, word32 pr) struct Eq_n * r1_n = r4->ptr0050; int32 r7_n = r2_n->dw0044; int32 r3_n = r1_n->dw0044; - word32 r12_n = &g_dw40224C + g_dw40224C; + word32 r12_n = &g_dw40224C + g_dw40224C / 4; up32 r0_n = r2_n->dw0040; if (r7_n > r3_n) return; @@ -324,7 +324,7 @@ void revstatcmp(struct Eq_n * r4, struct Eq_n * r5, word32 pr) struct Eq_n * r1_n = r4->ptr0050; int32 r7_n = r2_n->dw0044; int32 r3_n = r1_n->dw0044; - word32 r12_n = &g_dw4022BC + g_dw4022BC; + word32 r12_n = &g_dw4022BC + g_dw4022BC / 4; up32 r0_n = r2_n->dw0040; if (r7_n > r3_n) return; @@ -362,7 +362,7 @@ void sizecmp(struct Eq_n * r4, struct Eq_n * r5, word32 pr) struct Eq_n * r1_n = r4->ptr0050; int32 r2_n = r1_n->dw005C; int32 r1_n = r1_n->dw005C; - word32 r12_n = &g_dw402314 + g_dw402314; + word32 r12_n = &g_dw402314 + g_dw402314 / 4; up32 r7_n = r1_n->dw0058; up32 r3_n = r1_n->dw0058; if (r2_n > r1_n) @@ -395,7 +395,7 @@ void revsizecmp(struct Eq_n * r4, struct Eq_n * r5, word32 pr) struct Eq_n * r1_n = r4->ptr0050; int32 r2_n = r1_n->dw005C; int32 r1_n = r1_n->dw005C; - word32 r12_n = &g_dw402374 + g_dw402374; + word32 r12_n = &g_dw402374 + g_dw402374 / 4; up32 r6_n = r1_n->dw0058; up32 r7_n = r1_n->dw0058; if (r2_n > r1_n) @@ -425,7 +425,7 @@ int32 g_dw402378 = -0x0B50; // 00402378 void mastercmp(struct Eq_n ** r4, struct Eq_n ** r5, word32 pr) { struct Eq_n * r4_n = (struct Eq_n *) *r4; - Eq_n r12_n = &g_dw402408 + g_dw402408; + Eq_n r12_n = &g_dw402408 + g_dw402408 / 4; uint32 r7_n = (uint32) r4_n->w0048; if (r7_n == 0x07) return; @@ -474,7 +474,7 @@ void display(struct Eq_n * r5, struct Eq_n * r9, word32 r11, word32 r13, word32 int32 r12_n; int32 r0_n; ptr32 fp; - word32 ** r12_n = &g_dw402600 + g_dw402600; + word32 ** r12_n = &g_dw402600 + g_dw402600 / 4; struct Eq_n * r15_n = fp + ~0xF7; if (r5 == null) return; @@ -737,7 +737,7 @@ void display(struct Eq_n * r5, struct Eq_n * r9, word32 r11, word32 r13, word32 word32 * r15_n; word32 r1_n; *r15_n = r1_n; - word32 r10_n = r15_n + r10_n; + word32 r10_n = r15_n + r10_n / 4; int32 r1_n = g_dw4029C0; (*((word32) 0x00402910 + r1_n))(); int32 r2_n = g_dw4029C8; @@ -921,7 +921,7 @@ int32 g_dw4029D8 = -0x0C50; // 004029D8 void traverse(word32 r5, word32 r6, word32 r8, word32 r9, word32 r11, word32 r13, word32 r14, word32 pr) { Eq_n r12_n; - int32 r12_n = &g_dw402B7C + g_dw402B7C; + int32 r12_n = &g_dw402B7C + g_dw402B7C / 4; word32 r6_n = 0x00; if (**((word32) g_ptr402B80 + r12_n) == 0x00) r6_n = g_dw402B84 + r12_n; @@ -976,7 +976,7 @@ void traverse(word32 r5, word32 r6, word32 r8, word32 r9, word32 r11, word32 r13 struct Eq_n * r13_n = r0_n; r2_n = (uint32) r0_n->w0048; } while (r2_n > 0x07); - int32 r2_n = (int32) g_a402AC0[(r2_n + ~0x00) * 0x02]; + int32 r2_n = (int32) g_a402AC0[r2_n + ~0x00]; (*((word32) 4205246 + r2_n))(); } else @@ -1060,8 +1060,8 @@ void ls_main(word32 r4, word32 r5, word32 r8, word32 r9, word32 r10, word32 r11, { if (r0_n <= 0x78) { - int32 r1_n = (int32) g_a402D6C[(r0_n + ~0x30) * 0x02]; - g_a402D6C[r1_n](); + int32 r1_n = (int32) g_a402D6C[r0_n + ~0x30]; + g_a402D6C[r1_n / 2](); return; } int32 r1_n = g_dw403230; @@ -1319,7 +1319,7 @@ int32 g_dw403298 = -2004; // 00403298 // 0040329C: void safe_printpath(Register word32 r4, Register word32 pr) void safe_printpath(word32 r4, word32 pr) { - int32 r12_n = &g_dw4032DC + g_dw4032DC; + int32 r12_n = &g_dw4032DC + g_dw4032DC / 4; word32 r8_n = **((word32) g_ptr4032E0 + r12_n); if (r8_n != 0x00) { @@ -1347,7 +1347,7 @@ int32 g_dw4032F0 = 3944; // 004032F0 // 004032F4: void printescapedpath(Register word32 r4, Register word32 pr) void printescapedpath(word32 r4, word32 pr) { - int32 r12_n = &g_dw403334 + g_dw403334; + int32 r12_n = &g_dw403334 + g_dw403334 / 4; word32 r8_n = **((word32) g_ptr403338 + r12_n); if (r8_n != 0x00) { @@ -1377,7 +1377,7 @@ void printlink(struct Eq_n * r4, word32 r8, word32 pr) { word32 r15_n; ptr32 fp; - word32 r12_n = &g_dw403428 + g_dw403428; + word32 r12_n = &g_dw403428 + g_dw403428 / 4; ptr32 * r15_n = fp - 16 - (int32) g_w40341E; if (r4->dw0044 == 0x00) { @@ -1453,7 +1453,7 @@ int32 g_dw403470 = -6834; // 00403470 // 00403474: void printpath(Register word32 r4, Register word32 pr) void printpath(word32 r4, word32 pr) { - int32 r12_n = &g_dw4034AC + g_dw4034AC; + int32 r12_n = &g_dw4034AC + g_dw4034AC / 4; if (**((word32) g_ptr4034B0 + r12_n) != 0x00) { int32 r1_n = g_dw4034B4; @@ -1473,7 +1473,7 @@ int32 g_dw4034BC = -6974; // 004034BC // 004034C4: void printtotal(Register (ptr32 Eq_n) r4, Register word32 pr) void printtotal(struct Eq_n * r4, word32 pr) { - int32 r12_n = &g_dw403580 + g_dw403580; + int32 r12_n = &g_dw403580 + g_dw403580 / 4; if (r4->ptr0000->dw0044 == 0x00 || *(*((word32) g_ptr403584 + r12_n)) == 0x00 && *g_ptr403588[r12_n / 4] == 0x00) return; if (*g_ptr40358C[r12_n / 4] == 0x00) @@ -1523,7 +1523,7 @@ int32 g_dw4035BC = -7188; // 004035BC // 004035C0: void __sputc.constprop.3(Register Eq_n r4, Register word32 pr) void __sputc.constprop.3(Eq_n r4, word32 pr) { - struct Eq_n * r12_n[] = &g_dw403610 + g_dw403610; + struct Eq_n * r12_n[] = &g_dw403610 + g_dw403610 / 4; int32 r3_n = g_dw403614; struct Eq_n * r2_n = (struct Eq_n *) r12_n[r3_n / 4]; int32 r1_n = r2_n->dw0060; @@ -1651,7 +1651,7 @@ void printtype(ui32 r4, word32 pr) Eq_n r2_n; r2_n.u0 = g_t4037A4.u0; Eq_n r1_n = g_dw4037A0 & r4; - word32 r12_n = &g_dw40379C + g_dw40379C; + word32 r12_n = &g_dw40379C + g_dw40379C / 4; if (r1_n == r2_n) { int32 r1_n = g_dw4037C0; @@ -1724,7 +1724,7 @@ int32 g_dw4037C4 = -468; // 004037C4 void printaname(struct Eq_n * r4, word32 r6, word32 r9, word32 pr) { ptr32 fp; - int32 r12_n = &g_dw403914 + g_dw403914; + int32 r12_n = &g_dw403914 + g_dw403914 / 4; struct Eq_n * r15_n = fp - 0x30; word32 r10_n = r4->dw0050; struct Eq_n * r11_n = r4; @@ -1845,7 +1845,7 @@ int32 g_dw40397C = -1178; // 0040397C // 00403980: void printscol(Register (ptr32 (ptr32 Eq_n)) r4, Register word32 pr) void printscol(struct Eq_n ** r4, word32 pr) { - word32 r12_n = &g_dw4039C0 + g_dw4039C0; + word32 r12_n = &g_dw4039C0 + g_dw4039C0 / 4; struct Eq_n * r8_n; for (r8_n = (struct Eq_n *) *r4; r8_n != null; r8_n = r8_n->ptr0008) { @@ -1990,7 +1990,7 @@ void printlong(word32 r4, word32 r8, word32 r9, word32 r10, word32 r11, word32 r { l00403AA4: int32 r2_n = g_dw403AE4; - (&g_w403AAE)[r2_n](); + (&g_w403AAE)[r2_n / 2](); Eq_n r0_n; r0_n.u1->t0000.u0 = (byte) r0_n; word32 * r7_n; @@ -2153,7 +2153,7 @@ void printcol(struct Eq_n * r4, word32 r8, word32 r9, word32 r14, word32 pr) int32 r0_n; int32 r12_n; int32 r10_n; - word32 * r12_n[] = &g_dw403F28 + g_dw403F28; + word32 * r12_n[] = &g_dw403F28 + g_dw403F28 / 4; struct Eq_n * r13_n = r4; word32 r5_n; if (*r12_n[g_ptr403F2C / 4] != 0x00) @@ -2312,7 +2312,7 @@ void printacol(struct Eq_n * r4, word32 r9, word32 r10, word32 r11, word32 r13, { int32 r0_n; struct Eq_n ** r8_n; - int32 r12_n = &g_dw404080 + g_dw404080; + int32 r12_n = &g_dw404080 + g_dw404080 / 4; word32 r5_n; if (**((word32) g_ptr404084 + r12_n) != 0x00) { @@ -2415,7 +2415,7 @@ int32 g_dw4040B4 = -0x0ABA; // 004040B4 void printstream(struct Eq_n * r4, word32 pr) { ptr32 fp; - int32 r12_n = &g_dw404184 + g_dw404184; + int32 r12_n = &g_dw404184 + g_dw404184 / 4; ptr32 r15_n = fp - 32; word32 r8_n = **((word32) g_ptr404188 + r12_n); if (r8_n != 0x00) @@ -2526,7 +2526,7 @@ int32 g_dw404234 = -10556; // 00404234 // 00404238: void safe_print(Register word32 r4, Register word32 r10, Register word32 pr) void safe_print(word32 r4, word32 r10, word32 pr) { - int32 r12_n = &g_dw4042C4 + g_dw4042C4; + int32 r12_n = &g_dw4042C4 + g_dw4042C4 / 4; word32 r9_n; if (**((word32) g_ptr4042C8 + r12_n) != 0x00) r9_n = 0x1F; diff --git a/subjects/Elf/x86-64/ls/ls.reko/ls.h b/subjects/Elf/x86-64/ls/ls.reko/ls.h index 06bc7f0bea..35b8326390 100644 --- a/subjects/Elf/x86-64/ls/ls.reko/ls.h +++ b/subjects/Elf/x86-64/ls/ls.reko/ls.h @@ -1434,7 +1434,7 @@ Eq_14: (union "Eq_14" (byte u0) (word16 u1) ((arr Eq_14) u2) (size_t u3) (ssize_ T_6018 (in rax_800 @ 0000000000406EBB : Eq_14) T_6019 (in 0<64> @ 0000000000406EBB : word64) T_6060 (in 6398928[CONVERT(edi_879, word32, int64) * 8<64>] @ 0000000000406F31 : word64) - T_6061 (in fn0000000000406A80(ecx_820, rax_800, (&g_t61A3D0.u3)[(int64) edi_879 * 8<64>], r13_708, fs) @ 0000000000406F31 : word64) + T_6061 (in fn0000000000406A80(ecx_820, rax_800, (&g_t61A3D0.u3)[(int64) edi_879], r13_708, fs) @ 0000000000406F31 : word64) T_6062 (in rax_915 @ 0000000000406F31 : Eq_14) T_6063 (in 0<64> @ 0000000000406F39 : word64) T_6074 (in 0 @ 0000000000407229 : uint64) @@ -21063,7 +21063,7 @@ T_3481: (in 4271360[(CONVERT(Mem109[0x000000000061B10C:byte], byte, ui Class: Eq_14 DataType: Eq_14 OrigDataType: word64 -T_3482: (in fn000000000040D690((&g_a412D00->u3)[((uint64) g_b61B10C + ((uint64) g_b61B147 + ((int64) eax_113 + (uint64) (edx_111 + ecx_104) * 2<64>) * 2<64>) * 2<64>) * 8<64>], rbx_11, rsi_137, rdi_133) @ 0000000000404F87 : void) +T_3482: (in fn000000000040D690((&g_a412D00->u3)[(uint64) g_b61B10C + ((uint64) g_b61B147 + ((int64) eax_113 + (uint64) (edx_111 + ecx_104) * 2<64>) * 2<64>) * 2<64>], rbx_11, rsi_137, rdi_133) @ 0000000000404F87 : void) Class: Eq_3482 DataType: void OrigDataType: void @@ -31427,7 +31427,7 @@ T_6060: (in 6398928[CONVERT(edi_879, word32, int64) * 8<64>] @ 000000000040 Class: Eq_14 DataType: Eq_14 OrigDataType: word64 -T_6061: (in fn0000000000406A80(ecx_820, rax_800, (&g_t61A3D0.u3)[(int64) edi_879 * 8<64>], r13_708, fs) @ 0000000000406F31 : word64) +T_6061: (in fn0000000000406A80(ecx_820, rax_800, (&g_t61A3D0.u3)[(int64) edi_879], r13_708, fs) @ 0000000000406F31 : word64) Class: Eq_14 DataType: Eq_14 OrigDataType: word64 diff --git a/subjects/Elf/x86-64/ls/ls.reko/ls_text.c b/subjects/Elf/x86-64/ls/ls.reko/ls_text.c index e36508557b..eb9a1f4502 100644 --- a/subjects/Elf/x86-64/ls/ls.reko/ls_text.c +++ b/subjects/Elf/x86-64/ls/ls.reko/ls_text.c @@ -1201,7 +1201,7 @@ void fn00000000004028C0(char ** rsi, int32 edi, struct Eq_n * fs) word32 esi_n = 0x00; cu8 al_n = rax_n->b0012 - 0x01; if (al_n <= 0x0D) - esi_n = g_a412C00[(uint64) al_n * 0x04]; + esi_n = g_a412C00[(uint64) al_n]; qwLoc03B0_n = (word64) qwLoc03B0_n.u0 + fn0000000000407EA0(r14_n, 0x00, esi_n, &rax_n->b0013, fs); if (g_dw61B150 == 0x01 && (g_dw61B148 == ~0x00 && (g_b61B144 == 0x00 && g_b61B10E == 0x00))) { @@ -1706,7 +1706,7 @@ uint64 fn0000000000404CD0(word32 edi) { uint64 rdi_n = (uint64) edi; uint64 rax_n = 0x00; - word64 rdx_n = (&g_qw61A3E0)[rdi_n * 0x10]; + word64 rdx_n = (&g_qw61A3E0)[rdi_n *64 2]; byte * rsi_n = (byte *) *((char *) &g_ptr61A3E8 + rdi_n * 0x10); if (rdx_n == 0x00) return rax_n; @@ -1857,7 +1857,7 @@ void fn0000000000404E80() up32 edx_n = 0x00; if (ecx_n == 0x04) edx_n = g_dw61B14C; - fn000000000040D690((&g_a412D00->u3)[((uint64) g_b61B10C + ((uint64) g_b61B147 + ((int64) eax_n + (uint64) (edx_n + ecx_n) * 0x02) * 0x02) * 0x02) * 0x08], rbx_n, rsi_n, rdi_n); + fn000000000040D690((&g_a412D00->u3)[(uint64) g_b61B10C + ((uint64) g_b61B147 + ((int64) eax_n + (uint64) (edx_n + ecx_n) * 0x02) * 0x02) * 0x02], rbx_n, rsi_n, rdi_n); } // 0000000000405090: void fn0000000000405090(Register byte sil, Register Eq_n rdi) @@ -2728,7 +2728,7 @@ Eq_n fn0000000000406540(Eq_n rax, Eq_n rcx, struct obstack * rdx, byte sil, Eq_n if (*((word32) rdi + 0x00B0) == 0x00) { uint64 rax_n = (uint64) *((word32) rdi + 0x00A0); - edx_n = g_a412C60[rax_n * 0x04]; + edx_n = g_a412C60[rax_n]; if (edx_n == 0x05) goto l00000000004065CF; r14b_n = (byte) r14d_n & (int8) (edx_n == 0x07); @@ -3246,7 +3246,7 @@ void fn0000000000406B70(Eq_n rdi, struct Eq_n * fs) edi_n = ecx_n - r8d_n >> 0x1F; } l0000000000406F20: - Eq_n rax_n = fn0000000000406A80(ecx_n, rax_n, (&g_t61A3D0.u3)[(int64) edi_n * 0x08], r13_n, fs); + Eq_n rax_n = fn0000000000406A80(ecx_n, rax_n, (&g_t61A3D0.u3)[(int64) edi_n], r13_n, fs); if (rax_n != 0x00 || *r13_n.u0 == 0x00) { struct Eq_n * rax_n = rax_n + r13_n; diff --git a/subjects/Hunk-m68k/BYTEOPS.reko/BYTEOPS_code.c b/subjects/Hunk-m68k/BYTEOPS.reko/BYTEOPS_code.c index 6d3a558590..a638b775d6 100644 --- a/subjects/Hunk-m68k/BYTEOPS.reko/BYTEOPS_code.c +++ b/subjects/Hunk-m68k/BYTEOPS.reko/BYTEOPS_code.c @@ -1724,7 +1724,7 @@ word32 * fn00002AFA(word32 * d0, word32 * d1, word32 * d2, ptr32 & d1Out) if (d0_n < null) { d3_n = SEQ(v52_n, v50_n - 0x01); - d0_n += d1_n; + d0_n += d1_n / 4; while (d0_n >= null) ; } diff --git a/subjects/MachO/amd64/MachO-OSX-x64-ls.reko/MachO-OSX-x64-ls_TEXT_text.c b/subjects/MachO/amd64/MachO-OSX-x64-ls.reko/MachO-OSX-x64-ls_TEXT_text.c index 52a866655e..0d50a300f9 100644 --- a/subjects/MachO/amd64/MachO-OSX-x64-ls.reko/MachO-OSX-x64-ls_TEXT_text.c +++ b/subjects/MachO/amd64/MachO-OSX-x64-ls.reko/MachO-OSX-x64-ls_TEXT_text.c @@ -416,7 +416,7 @@ void fn00000001000023B0(ui32 edx, int32 edi) up32 eax_n = (word32) rax_n; if (eax_n <= 0x06) { - rax_n = (struct Eq_n *) (g_a2684 + (int64) g_a2684[rax_n * 0x04]); + rax_n = (struct Eq_n *) (g_a2684 + (int64) g_a2684[rax_n] /64 4); word32 rax_32_32_n = SLICE(rax_n, word32, 32); word56 rax_56_8_n = SLICE(rax_n, word56, 8); switch (eax_n) diff --git a/subjects/OpenRISC/sunxi/blob.reko/blob.c b/subjects/OpenRISC/sunxi/blob.reko/blob.c index bb0194dda7..d44a7701c0 100644 --- a/subjects/OpenRISC/sunxi/blob.reko/blob.c +++ b/subjects/OpenRISC/sunxi/blob.reko/blob.c @@ -1591,7 +1591,7 @@ int32 fn00007338(uint32 r3, Eq_n r4) int32 r11_n; while (r5_n < r4) { - union Eq_n * r7_n = (union Eq_n *) (r6_n + r3_n); + union Eq_n * r7_n = (union Eq_n *) (r6_n + r3_n / 4); if (r7_n->u0 != (word32) r5_n.u0 - 19088744) { r11_n = -1; @@ -3466,7 +3466,7 @@ int32 fn00009C2C(Eq_n r3, Eq_n r4, Eq_n r15, uint32 VR, union Eq_n & r15Out, ptr Eq_n r4_n; &r4_n.u2->t0000.u0 = (word32) r4_n->w0008; ui32 r11_n; - fn0000FEDC(r4.u1 + ((r4_n - 1) - r3_n), r4_n, r15, out r11_n, out r15); + fn0000FEDC(r4.u1 + ((r4_n - 1) - r3_n) / 4, r4_n, r15, out r11_n, out r15); r1_n = (struct Eq_n *) ; r11_n = r11_n & 0x7F; } @@ -3479,7 +3479,7 @@ int32 fn00009C2C(Eq_n r3, Eq_n r4, Eq_n r15, uint32 VR, union Eq_n & r15Out, ptr Eq_n r4_n; &r4_n.u2->t0000.u0 = (word32) r4_n->w0010; word32 r11_n; - fn0000FEDC(r4.u1 + ((r4_n - 1) - r3_n), r4_n, r15, out r11_n, out r15); + fn0000FEDC(r4.u1 + ((r4_n - 1) - r3_n) / 4, r4_n, r15, out r11_n, out r15); r1_n = (struct Eq_n *) ; r11_n = r11_n + (word32) r4_n->bFFFFFFFB & 0x7F; } diff --git a/subjects/OpenRISC/sunxi/blob.reko/blob.h b/subjects/OpenRISC/sunxi/blob.reko/blob.h index 5b1998bb27..362418f0cb 100644 --- a/subjects/OpenRISC/sunxi/blob.reko/blob.h +++ b/subjects/OpenRISC/sunxi/blob.reko/blob.h @@ -36039,7 +36039,7 @@ T_7374: (in out r15 @ 00009CBC : word32) Class: Eq_6 DataType: Eq_6 OrigDataType: ptr32 -T_7375: (in fn0000FEDC(r4.u1 + ((r4_79 - 1) - r3_35), r4_79, r15, out r11_85, out r15) @ 00009CBC : word32) +T_7375: (in fn0000FEDC(r4.u1 + ((r4_79 - 1) - r3_35) / 4, r4_79, r15, out r11_85, out r15) @ 00009CBC : word32) Class: Eq_1065 DataType: ptr32 OrigDataType: word32 @@ -36263,7 +36263,7 @@ T_7430: (in out r15 @ 00009CF8 : word32) Class: Eq_6 DataType: Eq_6 OrigDataType: ptr32 -T_7431: (in fn0000FEDC(r4.u1 + ((r4_51 - 1) - r3_47), r4_51, r15, out r11_58, out r15) @ 00009CF8 : word32) +T_7431: (in fn0000FEDC(r4.u1 + ((r4_51 - 1) - r3_47) / 4, r4_51, r15, out r11_58, out r15) @ 00009CF8 : word32) Class: Eq_1065 DataType: ptr32 OrigDataType: word32 diff --git a/subjects/PDP-11/lunar.reko/lunar.h b/subjects/PDP-11/lunar.reko/lunar.h index 06c96fea72..dc7a9cc90f 100644 --- a/subjects/PDP-11/lunar.reko/lunar.h +++ b/subjects/PDP-11/lunar.reko/lunar.h @@ -3584,7 +3584,7 @@ T_666: (in 0x28F0<16>[r1_146 * 2<16>] @ 0950 : word16) Class: Eq_666 DataType: word16 OrigDataType: word16 -T_667: (in g_a28F2[r1_146 * 2<16>] - (&g_w28F0)[r1_146 * 2<16>] @ 0950 : word16) +T_667: (in g_a28F2[r1_146] - (&g_w28F0)[r1_146] @ 0950 : word16) Class: Eq_343 DataType: int16 OrigDataType: word16 @@ -3732,7 +3732,7 @@ T_703: (in 0x28F0<16>[r1_177 * 2<16>] @ 099A : word16) Class: Eq_703 DataType: word16 OrigDataType: word16 -T_704: (in g_a28F2[r1_177 * 2<16>] - (&g_w28F0)[r1_177 * 2<16>] @ 099A : word16) +T_704: (in g_a28F2[r1_177] - (&g_w28F0)[r1_177] @ 099A : word16) Class: Eq_704 DataType: ui16 OrigDataType: word16 diff --git a/subjects/PDP-11/lunar.reko/lunar_image.c b/subjects/PDP-11/lunar.reko/lunar_image.c index 3ea7475fe2..e6230da9fe 100644 --- a/subjects/PDP-11/lunar.reko/lunar_image.c +++ b/subjects/PDP-11/lunar.reko/lunar_image.c @@ -498,7 +498,7 @@ void fn0856(struct Eq_n * r4) if (g_w0046 >= ~0x0E && g_w0046 <= 0x0F) { int16 r1_n = g_w0078; - r0_n = g_a28F2[r1_n * 0x02] - (&g_w28F0)[r1_n * 0x02]; + r0_n = g_a28F2[r1_n] - (&g_w28F0)[r1_n]; int16 r2_n = r0_n; if (r0_n <= 0x00) r2_n = -r0_n; @@ -523,7 +523,7 @@ void fn0856(struct Eq_n * r4) if (r0_n >= 0x00) wLoc02_n = 0x04; fn0C90(r1_n, (byte) wLoc02_n); - ui16 r2_n = g_a28F2[r1_n * 0x02] - (&g_w28F0)[r1_n * 0x02]; + ui16 r2_n = g_a28F2[r1_n] - (&g_w28F0)[r1_n]; ci16 r2_n = r2_n - (r2_n * 0x03 >> 2); struct Eq_n * sp_n = (struct Eq_n *) ; ci16 r2_n = r2_n + (r2_n >> 1); @@ -858,7 +858,7 @@ cui16 * fn0D78(word16 * r4, cui16 * r5) } else { - g_ptr0082 += r4_n & 0x3F; + g_ptr0082 += (r4_n & 0x3F) /16 2; r4_n = r4_n & 0x3F; } *r5 = r4_n | wLoc02_n; @@ -1027,7 +1027,7 @@ void fn0F04(int16 r0) g_w0F70 = 0x0ADF; else if (g_w00AA <= ~0x02) g_w0F70 = 0x0A9F; - word16 * r4_n = r4_n + g_w00AA + r3_n; + word16 * r4_n = r4_n + g_w00AA /16 2 + r3_n /16 2; sp_n->ptrFFFFFFFE = r4_n; r5_n = fn0D78(r4_n, r5_n); r4_n = sp_n->ptrFFFFFFFE; diff --git a/subjects/PDP-11/space.h b/subjects/PDP-11/space.h index 3d020f4e0b..911baec753 100644 --- a/subjects/PDP-11/space.h +++ b/subjects/PDP-11/space.h @@ -4564,7 +4564,7 @@ T_742: (in r5 + Mem0[r5 + 0<16>:word16] + Mem0[r5 + 0<16>:word16] + 2<16> @ 0820 Class: Eq_731 DataType: (ptr16 Eq_731) OrigDataType: word16 -T_743: (in fn11A6(r5 + *r5 + *r5 + 1, r5) @ 0820 : void) +T_743: (in fn11A6(r5 + *r5 /16 2 + *r5 /16 2 + 1, r5) @ 0820 : void) Class: Eq_743 DataType: void OrigDataType: void @@ -4624,7 +4624,7 @@ T_757: (in r5 + Mem0[r5 + 0<16>:word16] + Mem0[r5 + 0<16>:word16] + 2<16> @ 0A6C Class: Eq_731 DataType: (ptr16 Eq_731) OrigDataType: word16 -T_758: (in fn11A6(r5 + *r5 + *r5 + 1, r5) @ 0A6C : void) +T_758: (in fn11A6(r5 + *r5 /16 2 + *r5 /16 2 + 1, r5) @ 0A6C : void) Class: Eq_743 DataType: void OrigDataType: void diff --git a/subjects/PDP-11/space_text.c b/subjects/PDP-11/space_text.c index 4928ada963..f086436759 100644 --- a/subjects/PDP-11/space_text.c +++ b/subjects/PDP-11/space_text.c @@ -987,7 +987,7 @@ struct Eq_n g_t07EC = // 07EC // 0818: void fn0818(Register (ptr16 word16) r5) void fn0818(word16 * r5) { - fn11A6(r5 + *r5 + *r5 + 1, r5); + fn11A6(r5 + *r5 /16 2 + *r5 /16 2 + 1, r5); g_ptr53F0(); } @@ -1053,7 +1053,7 @@ Eq_n g_t0A15 = // 0A15 // 0A64: void fn0A64(Register (ptr16 word16) r5) void fn0A64(word16 * r5) { - fn11A6(r5 + *r5 + *r5 + 1, r5); + fn11A6(r5 + *r5 /16 2 + *r5 /16 2 + 1, r5); g_ptr5414(); } @@ -2132,7 +2132,7 @@ void fn14A8(int16 r2, uint16 r5) if (v49_n != 0x00) r2_n -= 0x0200; wLoc08_n = r2_n; - word16 * r0_n = r2_n + (r5_n << 1); + word16 * r0_n = r2_n + r5_n; do { *r2_n = *r0_n; diff --git a/subjects/PDP-11/spcinv.reko/spcinv.h b/subjects/PDP-11/spcinv.reko/spcinv.h index 08390d48b2..0279d98d5e 100644 --- a/subjects/PDP-11/spcinv.reko/spcinv.h +++ b/subjects/PDP-11/spcinv.reko/spcinv.h @@ -5733,7 +5733,7 @@ T_1227: (in 0<16> @ 0902 : word16) Class: Eq_1226 DataType: ci16 OrigDataType: ci16 -T_1228: (in g_a0DC4[r1_375 * 2<16>] <= 0<16> @ 0902 : bool) +T_1228: (in g_a0DC4[r1_375] <= 0<16> @ 0902 : bool) Class: Eq_1228 DataType: bool OrigDataType: bool diff --git a/subjects/PDP-11/spcinv.reko/spcinv_text.c b/subjects/PDP-11/spcinv.reko/spcinv_text.c index f760e7e983..fd33655988 100644 --- a/subjects/PDP-11/spcinv.reko/spcinv_text.c +++ b/subjects/PDP-11/spcinv.reko/spcinv_text.c @@ -732,7 +732,7 @@ Eq_n fn07A6(byte * r4, byte & r4Out) cui16 r0_n = (word16) v118_n; r1_n = __rcl(__rcl(SLICE(v118_n, word16, 16), 0x01, (bool) cond(r0_n << 1)), 0x01, (bool) cond(r0_n << 2)); r1_n = r1_n << 1; - } while (g_a0DC4[r1_n * 0x02] <= 0x00); + } while (g_a0DC4[r1_n] <= 0x00); r0_n.u0 = 0x0DB8; ci16 * r3_n; do diff --git a/subjects/PE/m68k/hello_m68k_CRTHEAP.c b/subjects/PE/m68k/hello_m68k_CRTHEAP.c index f9381ae6a1..42e90f8bc7 100644 --- a/subjects/PE/m68k/hello_m68k_CRTHEAP.c +++ b/subjects/PE/m68k/hello_m68k_CRTHEAP.c @@ -123,7 +123,7 @@ struct Eq_n * fn000025B4(struct Eq_n * a5, struct Eq_n * dwArg04, Eq_n dwArg08) if (d0_n == null) return null; uipr32 d0_n = dwArg04->dw0004; - struct Eq_n * d0_n = (struct Eq_n *) (dwArg08.u0 + SEQ(SLICE(d0_n, word16, 16), (word16) d0_n & ~0x03)); + struct Eq_n * d0_n = (struct Eq_n *) (dwArg08.u0 + SEQ(SLICE(d0_n, word16, 16), (word16) d0_n & ~0x03) / 4); d0_n->t0004.u2 = (struct Eq_n *) &d0_n->ptr0004; d0_n->ptr0004 = d0_n; d0_n->dw0000 = dwArg04->ptr0000; @@ -631,8 +631,8 @@ int32 fn00002BB4(struct Eq_n * a5, Eq_n dwArg04, up32 dwArg08, struct Eq_n & a5O dwArg04.u2->ptr0000 = a3_n; if (d0_n <= 0x00) { - word16 v25_n = g_a2C58[(int32) ((int16) d0_n + 3) * 2]; - g_a2C58[(int32) v25_n](); + word16 v25_n = g_a2C58[(int32) ((int16) d0_n + 3)]; + g_a2C58[(int32) v25_n / 2](); struct Eq_n * a5_n; a5Out = a5_n; ptr32 a6_n; diff --git a/subjects/PE/m68k/hello_m68k_CRTLOAD.c b/subjects/PE/m68k/hello_m68k_CRTLOAD.c index 0042dc0b1f..ced2de8ca1 100644 --- a/subjects/PE/m68k/hello_m68k_CRTLOAD.c +++ b/subjects/PE/m68k/hello_m68k_CRTLOAD.c @@ -94,7 +94,7 @@ void fn000014E8(word32 a3, word32 a5, word16 wArg00, int32 dwArg02) a3_n += 4; d0_n = SEQ(SLICE(SEQ(SLICE(v29_n, word16, 8), (word16) SEQ(v29_n, a3_n[2]) << 0x08), word24, 8), a3_n[3]) * 0x02; l00001578: - a2_n = &a2_n->u0 + d0_n; + a2_n = &a2_n->u0 + d0_n / 4; if (dwArg02 != 0x00 && a2_n->u0 >= 0x00) a2_n->u0 = (a2_n->u0 + dwArg02)->t0002.u0; else diff --git a/subjects/PE/m68k/hello_m68k_CRTSTDIO.c b/subjects/PE/m68k/hello_m68k_CRTSTDIO.c index aa68952af0..0fc37e0f3b 100644 --- a/subjects/PE/m68k/hello_m68k_CRTSTDIO.c +++ b/subjects/PE/m68k/hello_m68k_CRTSTDIO.c @@ -96,8 +96,8 @@ void fn000016D0(word32 d6, struct Eq_n * a5, byte * dwArg08) dwLoc0C_n = d0_n; if (d0_n <= 7) { - word16 v41_n = g_a1758[(int32) (int16) d0_n * 2]; - g_a1758[(int32) v41_n](); + word16 v41_n = g_a1758[(int32) (int16) d0_n]; + g_a1758[(int32) v41_n / 2](); return; } byte v43_n = *dwArg08_n; diff --git a/subjects/PE/x86-64/varargs_test/varargs_test.reko/varargs_test_text.c b/subjects/PE/x86-64/varargs_test/varargs_test.reko/varargs_test_text.c index 8e16b1ca75..0c042e4454 100644 --- a/subjects/PE/x86-64/varargs_test/varargs_test.reko/varargs_test_text.c +++ b/subjects/PE/x86-64/varargs_test/varargs_test.reko/varargs_test_text.c @@ -375,14 +375,14 @@ word64 fn0000000140001718( ** rcx) { int64 rax_n = (int64) g_dw4000003C; rax_56_8_n = SLICE(rax_n, word56, 8); - struct Eq_n * rcx_n = (struct Eq_n *) (&g_w40000000 + rax_n); + struct Eq_n * rcx_n = (struct Eq_n *) (&g_w40000000 + rax_n /64 2); if (rcx_n->dw0000 == 0x4550) { rax_56_8_n = 0x02; if (rcx_n->w0018 == 0x020B) { uint64 rax_n = (uint64) rcx_n->w0006; - struct Eq_n * rdx_n = (struct Eq_n *) (&rcx_n->w0018 + (uint64) rcx_n->w0014); + struct Eq_n * rdx_n = (struct Eq_n *) (&rcx_n->w0018 + (uint64) rcx_n->w0014 /64 2); uint64 r8_n = rcx - &g_w40000000; word56 rax_56_8_n = SLICE(rax_n, word56, 8); struct Eq_n * r9_n = rdx_n + rax_n; diff --git a/subjects/Raw/CR16/CompactRISC.reko/CompactRISC_code.c b/subjects/Raw/CR16/CompactRISC.reko/CompactRISC_code.c index fa35fcd750..851d7a2d13 100644 --- a/subjects/Raw/CR16/CompactRISC.reko/CompactRISC_code.c +++ b/subjects/Raw/CR16/CompactRISC.reko/CompactRISC_code.c @@ -4895,11 +4895,11 @@ void fn0000B218(Eq_n r3_r2, Eq_n r4, cui16 r5, word16 r6, Eq_n r13) r1_n = 0x8A; } int32 r11_r10_n = (int32) r6_n; - (&r9_r8_n.u1->w006A + (r11_r10_n + 0x01 << 0x02))[1] = ~0x00; + (&r9_r8_n.u1->w006A + (r11_r10_n + 0x01) * 2)[1] = ~0x00; ci16 r4_n = ~0x00; if (r6_n <= 0x00) { - ptr32 ra_n = &r9_r8_n.u1->w006A + ((r11_r10_n << 0x02) + 0x0A); + ptr32 ra_n = &r9_r8_n.u1->w006A + ((r11_r10_n << 0x02) + 0x0A) / 2; ci16 r6_n = 0x00; ci16 * r3_r2_n = SEQ(SLICE(&r9_r8_n.u1->ptr0070, word16, 16), r8_n + 0x70); ci16 * r3_r2_n; @@ -4980,11 +4980,11 @@ void fn0000B218(Eq_n r3_r2, Eq_n r4, cui16 r5, word16 r6, Eq_n r13) r1_n = 0x8A; } int32 r11_r10_n = (int32) r6_n; - (&r9_r8_n.u1->w095E + (r11_r10_n + 0x01 << 0x02))[1] = ~0x00; + (&r9_r8_n.u1->w095E + (r11_r10_n + 0x01) * 2)[1] = ~0x00; ci16 r4_n = ~0x00; if (r6_n <= 0x00) { - ptr32 ra_n = &r9_r8_n.u1->w095E + ((r11_r10_n << 0x02) + 0x0A); + ptr32 ra_n = &r9_r8_n.u1->w095E + ((r11_r10_n << 0x02) + 0x0A) / 2; ci16 r6_n = 0x00; ci16 * r3_r2_n = SEQ(SLICE((word32) r9_r8_n + 2404, word16, 16), r8_n + 2404); ci16 * r3_r2_n; diff --git a/subjects/Raw/MicroBlaze/MicroBlaze.reko/MicroBlaze.c b/subjects/Raw/MicroBlaze/MicroBlaze.reko/MicroBlaze.c index 261fd32034..bb0015261d 100644 --- a/subjects/Raw/MicroBlaze/MicroBlaze.reko/MicroBlaze.c +++ b/subjects/Raw/MicroBlaze/MicroBlaze.reko/MicroBlaze.c @@ -276,7 +276,7 @@ void fn00000378(Eq_n r0, Eq_n r5, Eq_n r26, word32 r27, word32 r28) fn00018E58(); if (true) goto l00000610; - struct Eq_n * r22_n = (struct Eq_n *) (&r1_n->ptrFFFFF7AC + r3_n); + struct Eq_n * r22_n = (struct Eq_n *) (&r1_n->ptrFFFFF7AC + r3_n / 4); r22_n->b001C = 0x03; r22_n = 0x01; } @@ -7386,12 +7386,12 @@ void fn00012364(Eq_n r5, struct Eq_n * r6, Eq_n r7[]) &r22_n.u2->t0000.u0 = r9_n.u2 + r22_n; r5.u3->t16BC.u2 = (struct Eq_n *) r22_n; } - int32 r8_n = g_a1B4A8[r23_n * 0x04]; + int32 r8_n = g_a1B4A8[r23_n]; int32 r4_n; if (r8_n != 0x00) { int32 r4_n = (int32) (int16) r4_n; - Eq_n r3_n = r19_n - g_a1AB64[r23_n * 0x04]; + Eq_n r3_n = r19_n - g_a1AB64[r23_n]; ui32 r18_n = r22_n & 0x1F; ui32 r9_n; if (r18_n != 0x00) @@ -10186,16 +10186,16 @@ uint32 fn000156B4(Eq_n r5, Eq_n r6, Eq_n r7) while (true) { uint32 r3_n = r4_n ^ ((r6_n.u2)->t0000).u1; - uint32 r4_n = (r3_n >> 0x0E & 1020)->dw1CDD0 ^ (((g_a1C5D0[(r3_n & 0xFF) * 0x04] ^ g_a1D1D0[(r3_n >> 24) * 0x04]) ^ (r6_n.u2)[4]) ^ (r3_n >> 6 & 1020)->dw1C9D0); - uint32 r4_n = (r4_n >> 0x0E & 1020)->dw1CDD0 ^ (((g_a1C5D0[(r4_n & 0xFF) * 0x04] ^ g_a1D1D0[(r4_n >> 24) * 0x04]) ^ (r6_n.u2)[8]) ^ (r4_n >> 6 & 1020)->dw1C9D0); - uint32 r4_n = (r4_n >> 0x0E & 1020)->dw1CDD0 ^ (((g_a1C5D0[(r4_n & 0xFF) * 0x04] ^ g_a1D1D0[(r4_n >> 24) * 0x04]) ^ (r6_n.u2)[0x0C]) ^ (r4_n >> 6 & 1020)->dw1C9D0); - uint32 r4_n = (r4_n >> 0x0E & 1020)->dw1CDD0 ^ (((g_a1C5D0[(r4_n & 0xFF) * 0x04] ^ g_a1D1D0[(r4_n >> 24) * 0x04]) ^ (r6_n.u2)[16]) ^ (r4_n >> 6 & 1020)->dw1C9D0); - uint32 r4_n = (r4_n >> 0x0E & 1020)->dw1CDD0 ^ (((g_a1C5D0[(r4_n & 0xFF) * 0x04] ^ g_a1D1D0[(r4_n >> 24) * 0x04]) ^ (r6_n.u2)[20]) ^ (r4_n >> 6 & 1020)->dw1C9D0); - uint32 r8_n = (r4_n >> 0x0E & 1020)->dw1CDD0 ^ (((g_a1C5D0[(r4_n & 0xFF) * 0x04] ^ g_a1D1D0[(r4_n >> 24) * 0x04]) ^ (r6_n.u2)[24]) ^ (r4_n >> 6 & 1020)->dw1C9D0); + uint32 r4_n = (r3_n >> 0x0E & 1020)->dw1CDD0 ^ (((g_a1C5D0[r3_n & 0xFF] ^ g_a1D1D0[r3_n >> 24]) ^ (r6_n.u2)[4]) ^ (r3_n >> 6 & 1020)->dw1C9D0); + uint32 r4_n = (r4_n >> 0x0E & 1020)->dw1CDD0 ^ (((g_a1C5D0[r4_n & 0xFF] ^ g_a1D1D0[r4_n >> 24]) ^ (r6_n.u2)[8]) ^ (r4_n >> 6 & 1020)->dw1C9D0); + uint32 r4_n = (r4_n >> 0x0E & 1020)->dw1CDD0 ^ (((g_a1C5D0[r4_n & 0xFF] ^ g_a1D1D0[r4_n >> 24]) ^ (r6_n.u2)[0x0C]) ^ (r4_n >> 6 & 1020)->dw1C9D0); + uint32 r4_n = (r4_n >> 0x0E & 1020)->dw1CDD0 ^ (((g_a1C5D0[r4_n & 0xFF] ^ g_a1D1D0[r4_n >> 24]) ^ (r6_n.u2)[16]) ^ (r4_n >> 6 & 1020)->dw1C9D0); + uint32 r4_n = (r4_n >> 0x0E & 1020)->dw1CDD0 ^ (((g_a1C5D0[r4_n & 0xFF] ^ g_a1D1D0[r4_n >> 24]) ^ (r6_n.u2)[20]) ^ (r4_n >> 6 & 1020)->dw1C9D0); + uint32 r8_n = (r4_n >> 0x0E & 1020)->dw1CDD0 ^ (((g_a1C5D0[r4_n & 0xFF] ^ g_a1D1D0[r4_n >> 24]) ^ (r6_n.u2)[24]) ^ (r4_n >> 6 & 1020)->dw1C9D0); &r6_n.u2->t0000.u0 = r6_n.u2 + 32; - uint32 r3_n = (r8_n >> 0x0E & 1020)->dw1CDD0 ^ (((g_a1C5D0[(r8_n & 0xFF) * 0x04] ^ g_a1D1D0[(r8_n >> 24) * 0x04]) ^ (r6_n.u2)->dwFFFFFFFC) ^ (r8_n >> 6 & 1020)->dw1C9D0); + uint32 r3_n = (r8_n >> 0x0E & 1020)->dw1CDD0 ^ (((g_a1C5D0[r8_n & 0xFF] ^ g_a1D1D0[r8_n >> 24]) ^ (r6_n.u2)->dwFFFFFFFC) ^ (r8_n >> 6 & 1020)->dw1C9D0); r4_n = (r3_n >> 0x0E & 1020)->dw1CDD0; - r3_n = g_a1C5D0[(r3_n & 0xFF) * 0x04] ^ g_a1D1D0[(r3_n >> 24) * 0x04] ^ (r3_n >> 6 & 1020)->dw1C9D0; + r3_n = g_a1C5D0[r3_n & 0xFF] ^ g_a1D1D0[r3_n >> 24] ^ (r3_n >> 6 & 1020)->dw1C9D0; if ((r6_n ^ r5_n) == 0x00) break; r4_n = r4_n ^ r3_n; @@ -10208,42 +10208,42 @@ uint32 fn000156B4(Eq_n r5, Eq_n r6, Eq_n r7) Eq_n r5_n = &r7.u2->dwFFFFFFFC; uint32 r3_n = r4_n ^ ((r6_n.u2)->t0000).u1; word32 r4_n = (r3_n >> 0x0E & 1020)->dw1CDD0; - ui32 r3_n = g_a1D1D0[(r3_n >> 24) * 0x04] ^ g_a1C5D0[(r3_n & 0xFF) * 0x04] ^ (r3_n >> 6 & 1020)->dw1C9D0; + ui32 r3_n = g_a1D1D0[r3_n >> 24] ^ g_a1C5D0[r3_n & 0xFF] ^ (r3_n >> 6 & 1020)->dw1C9D0; if (0x03 - r5_n < 0x00) { ui32 r4_n = r3_n ^ r4_n; uint32 r3_n = r4_n ^ (r6_n.u2)[4]; word32 r4_n = (r3_n >> 0x0E & 1020)->dw1CDD0; - ui32 r3_n = g_a1D1D0[(r3_n >> 24) * 0x04] ^ g_a1C5D0[(r3_n & 0xFF) * 0x04] ^ (r3_n >> 6 & 1020)->dw1C9D0; + ui32 r3_n = g_a1D1D0[r3_n >> 24] ^ g_a1C5D0[r3_n & 0xFF] ^ (r3_n >> 6 & 1020)->dw1C9D0; if (0x03 - ((word32) r7 - 8) < 0x00) { ui32 r4_n = r3_n ^ r4_n; uint32 r3_n = r4_n ^ (r6_n.u2)[8]; word32 r4_n = (r3_n >> 0x0E & 1020)->dw1CDD0; - ui32 r3_n = g_a1D1D0[(r3_n >> 24) * 0x04] ^ g_a1C5D0[(r3_n & 0xFF) * 0x04] ^ (r3_n >> 6 & 1020)->dw1C9D0; + ui32 r3_n = g_a1D1D0[r3_n >> 24] ^ g_a1C5D0[r3_n & 0xFF] ^ (r3_n >> 6 & 1020)->dw1C9D0; if (0x03 - ((word32) r7 - 0x0C) < 0x00) { ui32 r4_n = r3_n ^ r4_n; uint32 r3_n = r4_n ^ (r6_n.u2)[0x0C]; word32 r4_n = (r3_n >> 0x0E & 1020)->dw1CDD0; - ui32 r3_n = g_a1D1D0[(r3_n >> 24) * 0x04] ^ g_a1C5D0[(r3_n & 0xFF) * 0x04] ^ (r3_n >> 6 & 1020)->dw1C9D0; + ui32 r3_n = g_a1D1D0[r3_n >> 24] ^ g_a1C5D0[r3_n & 0xFF] ^ (r3_n >> 6 & 1020)->dw1C9D0; if (0x03 - ((word32) r7 - 16) < 0x00) { ui32 r4_n = r3_n ^ r4_n; uint32 r3_n = r4_n ^ (r6_n.u2)[16]; word32 r4_n = (r3_n >> 0x0E & 1020)->dw1CDD0; - ui32 r3_n = g_a1D1D0[(r3_n >> 24) * 0x04] ^ g_a1C5D0[(r3_n & 0xFF) * 0x04] ^ (r3_n >> 6 & 1020)->dw1C9D0; + ui32 r3_n = g_a1D1D0[r3_n >> 24] ^ g_a1C5D0[r3_n & 0xFF] ^ (r3_n >> 6 & 1020)->dw1C9D0; if (0x03 - ((word32) r7 - 20) < 0x00) { ui32 r4_n = r3_n ^ r4_n; uint32 r3_n = r4_n ^ (r6_n.u2)[20]; word32 r4_n = (r3_n >> 0x0E & 1020)->dw1CDD0; - ui32 r3_n = g_a1D1D0[(r3_n >> 24) * 0x04] ^ g_a1C5D0[(r3_n & 0xFF) * 0x04] ^ (r3_n >> 6 & 1020)->dw1C9D0; + ui32 r3_n = g_a1D1D0[r3_n >> 24] ^ g_a1C5D0[r3_n & 0xFF] ^ (r3_n >> 6 & 1020)->dw1C9D0; if (0x03 - ((word32) r7 - 24) < 0x00) { ui32 r4_n = r3_n ^ r4_n; uint32 r3_n = r4_n ^ (r6_n.u2)[24]; - r4_n = (r3_n >> 0x0E & 1020)->dw1CDD0 ^ ((g_a1C5D0[(r3_n & 0xFF) * 0x04] ^ g_a1D1D0[(r3_n >> 24) * 0x04]) ^ (r3_n >> 6 & 1020)->dw1C9D0); + r4_n = (r3_n >> 0x0E & 1020)->dw1CDD0 ^ ((g_a1C5D0[r3_n & 0xFF] ^ g_a1D1D0[r3_n >> 24]) ^ (r3_n >> 6 & 1020)->dw1C9D0); } else r4_n = r3_n ^ r4_n; @@ -10268,15 +10268,15 @@ uint32 fn000156B4(Eq_n r5, Eq_n r6, Eq_n r7) if (r7 != 0x00) { ui32 r5_n = r4_n * 0x02; - word32 r4_n = g_a1C5D0[((word32) r6_n.u2->t0000.u0 ^ r4_n >> 24) * 0x04]; + word32 r4_n = g_a1C5D0[(word32) r6_n.u2->t0000.u0 ^ r4_n >> 24]; if (r7 != 0x01) { uint32 r4_n = r5_n * 0x80 ^ r4_n; - word32 r3_n = g_a1C5D0[((word32) r6_n.u2[1] ^ r4_n >> 24) * 0x04]; + word32 r3_n = g_a1C5D0[(word32) r6_n.u2[1] ^ r4_n >> 24]; if ((r7 ^ 0x02) != 0x00) { uint32 r4_n = r4_n * 0x0100 ^ r3_n; - r4_n = g_a1C5D0[(r4_n >> 24 ^ (word32) (r6_n.u2)[2]) * 0x04] ^ r4_n * 0x0100; + r4_n = g_a1C5D0[r4_n >> 24 ^ (word32) (r6_n.u2)[2]] ^ r4_n * 0x0100; } else r4_n = r4_n * 0x0100 ^ r3_n; @@ -10293,7 +10293,7 @@ uint32 fn000156B4(Eq_n r5, Eq_n r6, Eq_n r7) while (true) { r3_n = r4_n * 0x02; - r4_n = g_a1C5D0[(r4_n >> 24 ^ (word32) (r6_n.u2)->bFFFFFFFF) * 0x04]; + r4_n = g_a1C5D0[r4_n >> 24 ^ (word32) (r6_n.u2)->bFFFFFFFF]; &r7.u2->t0000.u0 = &r7.u2->bFFFFFFFF; ui32 r5_n = r6_n & 0x03; if (r7 == 0x00) @@ -13767,7 +13767,7 @@ union Eq_n * fn0001EEC8(union Eq_n * r0, struct Eq_n * r5, struct Eq_n * r19, Eq r31_n->ptr0118 = r3_n ^ 0x3F; r19_n = (word32 *) ((char *) r1_n + 2588); word32 * r3_n = r19_n; - ptr32 r4_n = r19_n + r8_n * 0x04; + ptr32 r4_n = r19_n + r8_n; do { *r3_n = r0; @@ -17496,7 +17496,7 @@ void fn000291C4(struct Eq_n * r5, int32 r6, int32 r7, struct Eq_n ** r8, word32 ++r7_n; } r7_n = r7_n + 1; - r9_n += r12_n; + r9_n += r12_n / 2; } ++r5_n; } while ((r5_n ^ 0x09) != 0x00); diff --git a/subjects/Raw/MicroBlaze/MicroBlaze.reko/MicroBlaze.h b/subjects/Raw/MicroBlaze/MicroBlaze.reko/MicroBlaze.h index f7eee9f1d1..76619667b3 100644 --- a/subjects/Raw/MicroBlaze/MicroBlaze.reko/MicroBlaze.h +++ b/subjects/Raw/MicroBlaze/MicroBlaze.reko/MicroBlaze.h @@ -4692,7 +4692,7 @@ Eq_13110: (struct "Eq_13110" (1ABD8 byte b1ABD8)) Eq_13127: (struct "Eq_13127" (2 word16 w0002)) T_13127 (in r6 + r8_130 * 2<32> @ 000124E4 : word32) Eq_13260: (union "Eq_13260" (ui32 u0) (ptr32 u1)) - T_13260 (in r19_125 - g_a1AB64[r23_128 * 4<32>] @ 000125E4 : word32) + T_13260 (in r19_125 - g_a1AB64[r23_128] @ 000125E4 : word32) T_13261 (in r3_247 @ 000125E4 : Eq_13260) Eq_13398: (struct "Eq_13398" (1ADD8 byte b1ADD8)) T_13398 (in (char *) r21_36 - 1 >> 7 @ 000128F4 : word32) @@ -67759,7 +67759,7 @@ T_13259: (in 0x1AB64<32>[r23_128 * 4<32>] @ 000125E4 : word32) Class: Eq_13259 DataType: ui32 OrigDataType: ui32 -T_13260: (in r19_125 - g_a1AB64[r23_128 * 4<32>] @ 000125E4 : word32) +T_13260: (in r19_125 - g_a1AB64[r23_128] @ 000125E4 : word32) Class: Eq_13260 DataType: Eq_13260 OrigDataType: ptr32 @@ -89117,7 +89117,7 @@ T_18365: (in 0x1D1D0<32>[(r3_155 >>u 24) * 4<32>] @ 00015AEC : word32) Class: Eq_18365 DataType: word32 OrigDataType: word32 -T_18366: (in g_a1C5D0[(r3_155 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r3_155 >> 24) * 4<32>] @ 00015AEC : word32) +T_18366: (in g_a1C5D0[r3_155 & 0xFF<32>] ^ g_a1D1D0[r3_155 >> 24] @ 00015AEC : word32) Class: Eq_18366 DataType: ui32 OrigDataType: ui32 @@ -89133,7 +89133,7 @@ T_18369: (in Mem0[r6_1159 + 4:word32] @ 00015AEC : word32) Class: Eq_18369 DataType: word32 OrigDataType: word32 -T_18370: (in g_a1C5D0[(r3_155 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r3_155 >> 24) * 4<32>] ^ (r6_1159.u2)[4] @ 00015AEC : word32) +T_18370: (in g_a1C5D0[r3_155 & 0xFF<32>] ^ g_a1D1D0[r3_155 >> 24] ^ (r6_1159.u2)[4] @ 00015AEC : word32) Class: Eq_18370 DataType: ui32 OrigDataType: ui32 @@ -89165,11 +89165,11 @@ T_18377: (in Mem0[(r3_155 >>u 6 & 0x3FC<32>) + 0x1C9D0<32>:word32] @ 00015A Class: Eq_18377 DataType: word32 OrigDataType: word32 -T_18378: (in g_a1C5D0[(r3_155 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r3_155 >> 24) * 4<32>] ^ (r6_1159.u2)[4] ^ (r3_155 >> 6 & 0x3FC<32>)->dw1C9D0 @ 00015AEC : word32) +T_18378: (in g_a1C5D0[r3_155 & 0xFF<32>] ^ g_a1D1D0[r3_155 >> 24] ^ (r6_1159.u2)[4] ^ (r3_155 >> 6 & 0x3FC<32>)->dw1C9D0 @ 00015AEC : word32) Class: Eq_18378 DataType: ui32 OrigDataType: ui32 -T_18379: (in (r3_155 >> 14 & 0x3FC<32>)->dw1CDD0 ^ (((g_a1C5D0[(r3_155 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r3_155 >> 24) * 4<32>]) ^ (r6_1159.u2)[4]) ^ (r3_155 >> 6 & 0x3FC<32>)->dw1C9D0) @ 00015AEC : word32) +T_18379: (in (r3_155 >> 14 & 0x3FC<32>)->dw1CDD0 ^ (((g_a1C5D0[r3_155 & 0xFF<32>] ^ g_a1D1D0[r3_155 >> 24]) ^ (r6_1159.u2)[4]) ^ (r3_155 >> 6 & 0x3FC<32>)->dw1C9D0) @ 00015AEC : word32) Class: Eq_18379 DataType: uint32 OrigDataType: ui32 @@ -89253,7 +89253,7 @@ T_18399: (in 0x1D1D0<32>[(r4_218 >>u 24) * 4<32>] @ 00015C0C : word32) Class: Eq_18399 DataType: word32 OrigDataType: word32 -T_18400: (in g_a1C5D0[(r4_218 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r4_218 >> 24) * 4<32>] @ 00015C0C : word32) +T_18400: (in g_a1C5D0[r4_218 & 0xFF<32>] ^ g_a1D1D0[r4_218 >> 24] @ 00015C0C : word32) Class: Eq_18400 DataType: ui32 OrigDataType: ui32 @@ -89269,7 +89269,7 @@ T_18403: (in Mem0[r6_1159 + 8:word32] @ 00015C0C : word32) Class: Eq_18403 DataType: word32 OrigDataType: word32 -T_18404: (in g_a1C5D0[(r4_218 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r4_218 >> 24) * 4<32>] ^ (r6_1159.u2)[8] @ 00015C0C : word32) +T_18404: (in g_a1C5D0[r4_218 & 0xFF<32>] ^ g_a1D1D0[r4_218 >> 24] ^ (r6_1159.u2)[8] @ 00015C0C : word32) Class: Eq_18404 DataType: ui32 OrigDataType: ui32 @@ -89301,11 +89301,11 @@ T_18411: (in Mem0[(r4_218 >>u 6 & 0x3FC<32>) + 0x1C9D0<32>:word32] @ 00015C Class: Eq_18411 DataType: word32 OrigDataType: word32 -T_18412: (in g_a1C5D0[(r4_218 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r4_218 >> 24) * 4<32>] ^ (r6_1159.u2)[8] ^ (r4_218 >> 6 & 0x3FC<32>)->dw1C9D0 @ 00015C0C : word32) +T_18412: (in g_a1C5D0[r4_218 & 0xFF<32>] ^ g_a1D1D0[r4_218 >> 24] ^ (r6_1159.u2)[8] ^ (r4_218 >> 6 & 0x3FC<32>)->dw1C9D0 @ 00015C0C : word32) Class: Eq_18412 DataType: ui32 OrigDataType: ui32 -T_18413: (in (r4_218 >> 14 & 0x3FC<32>)->dw1CDD0 ^ (((g_a1C5D0[(r4_218 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r4_218 >> 24) * 4<32>]) ^ (r6_1159.u2)[8]) ^ (r4_218 >> 6 & 0x3FC<32>)->dw1C9D0) @ 00015C0C : word32) +T_18413: (in (r4_218 >> 14 & 0x3FC<32>)->dw1CDD0 ^ (((g_a1C5D0[r4_218 & 0xFF<32>] ^ g_a1D1D0[r4_218 >> 24]) ^ (r6_1159.u2)[8]) ^ (r4_218 >> 6 & 0x3FC<32>)->dw1C9D0) @ 00015C0C : word32) Class: Eq_18413 DataType: uint32 OrigDataType: ui32 @@ -89389,7 +89389,7 @@ T_18433: (in 0x1D1D0<32>[(r4_281 >>u 24) * 4<32>] @ 00015D30 : word32) Class: Eq_18433 DataType: word32 OrigDataType: word32 -T_18434: (in g_a1C5D0[(r4_281 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r4_281 >> 24) * 4<32>] @ 00015D30 : word32) +T_18434: (in g_a1C5D0[r4_281 & 0xFF<32>] ^ g_a1D1D0[r4_281 >> 24] @ 00015D30 : word32) Class: Eq_18434 DataType: ui32 OrigDataType: ui32 @@ -89405,7 +89405,7 @@ T_18437: (in Mem0[r6_1159 + 12:word32] @ 00015D30 : word32) Class: Eq_18437 DataType: word32 OrigDataType: word32 -T_18438: (in g_a1C5D0[(r4_281 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r4_281 >> 24) * 4<32>] ^ (r6_1159.u2)[12] @ 00015D30 : word32) +T_18438: (in g_a1C5D0[r4_281 & 0xFF<32>] ^ g_a1D1D0[r4_281 >> 24] ^ (r6_1159.u2)[12] @ 00015D30 : word32) Class: Eq_18438 DataType: ui32 OrigDataType: ui32 @@ -89437,11 +89437,11 @@ T_18445: (in Mem0[(r4_281 >>u 6 & 0x3FC<32>) + 0x1C9D0<32>:word32] @ 00015D Class: Eq_18445 DataType: word32 OrigDataType: word32 -T_18446: (in g_a1C5D0[(r4_281 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r4_281 >> 24) * 4<32>] ^ (r6_1159.u2)[12] ^ (r4_281 >> 6 & 0x3FC<32>)->dw1C9D0 @ 00015D30 : word32) +T_18446: (in g_a1C5D0[r4_281 & 0xFF<32>] ^ g_a1D1D0[r4_281 >> 24] ^ (r6_1159.u2)[12] ^ (r4_281 >> 6 & 0x3FC<32>)->dw1C9D0 @ 00015D30 : word32) Class: Eq_18446 DataType: ui32 OrigDataType: ui32 -T_18447: (in (r4_281 >> 14 & 0x3FC<32>)->dw1CDD0 ^ (((g_a1C5D0[(r4_281 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r4_281 >> 24) * 4<32>]) ^ (r6_1159.u2)[12]) ^ (r4_281 >> 6 & 0x3FC<32>)->dw1C9D0) @ 00015D30 : word32) +T_18447: (in (r4_281 >> 14 & 0x3FC<32>)->dw1CDD0 ^ (((g_a1C5D0[r4_281 & 0xFF<32>] ^ g_a1D1D0[r4_281 >> 24]) ^ (r6_1159.u2)[12]) ^ (r4_281 >> 6 & 0x3FC<32>)->dw1C9D0) @ 00015D30 : word32) Class: Eq_18447 DataType: uint32 OrigDataType: ui32 @@ -89525,7 +89525,7 @@ T_18467: (in 0x1D1D0<32>[(r4_345 >>u 24) * 4<32>] @ 00015E54 : word32) Class: Eq_18467 DataType: word32 OrigDataType: word32 -T_18468: (in g_a1C5D0[(r4_345 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r4_345 >> 24) * 4<32>] @ 00015E54 : word32) +T_18468: (in g_a1C5D0[r4_345 & 0xFF<32>] ^ g_a1D1D0[r4_345 >> 24] @ 00015E54 : word32) Class: Eq_18468 DataType: ui32 OrigDataType: ui32 @@ -89541,7 +89541,7 @@ T_18471: (in Mem0[r6_1159 + 16:word32] @ 00015E54 : word32) Class: Eq_18471 DataType: word32 OrigDataType: word32 -T_18472: (in g_a1C5D0[(r4_345 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r4_345 >> 24) * 4<32>] ^ (r6_1159.u2)[16] @ 00015E54 : word32) +T_18472: (in g_a1C5D0[r4_345 & 0xFF<32>] ^ g_a1D1D0[r4_345 >> 24] ^ (r6_1159.u2)[16] @ 00015E54 : word32) Class: Eq_18472 DataType: ui32 OrigDataType: ui32 @@ -89573,11 +89573,11 @@ T_18479: (in Mem0[(r4_345 >>u 6 & 0x3FC<32>) + 0x1C9D0<32>:word32] @ 00015E Class: Eq_18479 DataType: word32 OrigDataType: word32 -T_18480: (in g_a1C5D0[(r4_345 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r4_345 >> 24) * 4<32>] ^ (r6_1159.u2)[16] ^ (r4_345 >> 6 & 0x3FC<32>)->dw1C9D0 @ 00015E54 : word32) +T_18480: (in g_a1C5D0[r4_345 & 0xFF<32>] ^ g_a1D1D0[r4_345 >> 24] ^ (r6_1159.u2)[16] ^ (r4_345 >> 6 & 0x3FC<32>)->dw1C9D0 @ 00015E54 : word32) Class: Eq_18480 DataType: ui32 OrigDataType: ui32 -T_18481: (in (r4_345 >> 14 & 0x3FC<32>)->dw1CDD0 ^ (((g_a1C5D0[(r4_345 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r4_345 >> 24) * 4<32>]) ^ (r6_1159.u2)[16]) ^ (r4_345 >> 6 & 0x3FC<32>)->dw1C9D0) @ 00015E54 : word32) +T_18481: (in (r4_345 >> 14 & 0x3FC<32>)->dw1CDD0 ^ (((g_a1C5D0[r4_345 & 0xFF<32>] ^ g_a1D1D0[r4_345 >> 24]) ^ (r6_1159.u2)[16]) ^ (r4_345 >> 6 & 0x3FC<32>)->dw1C9D0) @ 00015E54 : word32) Class: Eq_18481 DataType: uint32 OrigDataType: ui32 @@ -89661,7 +89661,7 @@ T_18501: (in 0x1D1D0<32>[(r4_409 >>u 24) * 4<32>] @ 00015F78 : word32) Class: Eq_18501 DataType: word32 OrigDataType: word32 -T_18502: (in g_a1C5D0[(r4_409 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r4_409 >> 24) * 4<32>] @ 00015F78 : word32) +T_18502: (in g_a1C5D0[r4_409 & 0xFF<32>] ^ g_a1D1D0[r4_409 >> 24] @ 00015F78 : word32) Class: Eq_18502 DataType: ui32 OrigDataType: ui32 @@ -89677,7 +89677,7 @@ T_18505: (in Mem0[r6_1159 + 20:word32] @ 00015F78 : word32) Class: Eq_18505 DataType: word32 OrigDataType: word32 -T_18506: (in g_a1C5D0[(r4_409 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r4_409 >> 24) * 4<32>] ^ (r6_1159.u2)[20] @ 00015F78 : word32) +T_18506: (in g_a1C5D0[r4_409 & 0xFF<32>] ^ g_a1D1D0[r4_409 >> 24] ^ (r6_1159.u2)[20] @ 00015F78 : word32) Class: Eq_18506 DataType: ui32 OrigDataType: ui32 @@ -89709,11 +89709,11 @@ T_18513: (in Mem0[(r4_409 >>u 6 & 0x3FC<32>) + 0x1C9D0<32>:word32] @ 00015F Class: Eq_18513 DataType: word32 OrigDataType: word32 -T_18514: (in g_a1C5D0[(r4_409 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r4_409 >> 24) * 4<32>] ^ (r6_1159.u2)[20] ^ (r4_409 >> 6 & 0x3FC<32>)->dw1C9D0 @ 00015F78 : word32) +T_18514: (in g_a1C5D0[r4_409 & 0xFF<32>] ^ g_a1D1D0[r4_409 >> 24] ^ (r6_1159.u2)[20] ^ (r4_409 >> 6 & 0x3FC<32>)->dw1C9D0 @ 00015F78 : word32) Class: Eq_18514 DataType: ui32 OrigDataType: ui32 -T_18515: (in (r4_409 >> 14 & 0x3FC<32>)->dw1CDD0 ^ (((g_a1C5D0[(r4_409 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r4_409 >> 24) * 4<32>]) ^ (r6_1159.u2)[20]) ^ (r4_409 >> 6 & 0x3FC<32>)->dw1C9D0) @ 00015F78 : word32) +T_18515: (in (r4_409 >> 14 & 0x3FC<32>)->dw1CDD0 ^ (((g_a1C5D0[r4_409 & 0xFF<32>] ^ g_a1D1D0[r4_409 >> 24]) ^ (r6_1159.u2)[20]) ^ (r4_409 >> 6 & 0x3FC<32>)->dw1C9D0) @ 00015F78 : word32) Class: Eq_18515 DataType: uint32 OrigDataType: ui32 @@ -89797,7 +89797,7 @@ T_18535: (in 0x1D1D0<32>[(r4_473 >>u 24) * 4<32>] @ 0001609C : word32) Class: Eq_18535 DataType: word32 OrigDataType: word32 -T_18536: (in g_a1C5D0[(r4_473 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r4_473 >> 24) * 4<32>] @ 0001609C : word32) +T_18536: (in g_a1C5D0[r4_473 & 0xFF<32>] ^ g_a1D1D0[r4_473 >> 24] @ 0001609C : word32) Class: Eq_18536 DataType: ui32 OrigDataType: ui32 @@ -89813,7 +89813,7 @@ T_18539: (in Mem0[r6_1159 + 24:word32] @ 0001609C : word32) Class: Eq_18539 DataType: word32 OrigDataType: word32 -T_18540: (in g_a1C5D0[(r4_473 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r4_473 >> 24) * 4<32>] ^ (r6_1159.u2)[24] @ 0001609C : word32) +T_18540: (in g_a1C5D0[r4_473 & 0xFF<32>] ^ g_a1D1D0[r4_473 >> 24] ^ (r6_1159.u2)[24] @ 0001609C : word32) Class: Eq_18540 DataType: ui32 OrigDataType: ui32 @@ -89845,11 +89845,11 @@ T_18547: (in Mem0[(r4_473 >>u 6 & 0x3FC<32>) + 0x1C9D0<32>:word32] @ 000160 Class: Eq_18547 DataType: word32 OrigDataType: word32 -T_18548: (in g_a1C5D0[(r4_473 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r4_473 >> 24) * 4<32>] ^ (r6_1159.u2)[24] ^ (r4_473 >> 6 & 0x3FC<32>)->dw1C9D0 @ 0001609C : word32) +T_18548: (in g_a1C5D0[r4_473 & 0xFF<32>] ^ g_a1D1D0[r4_473 >> 24] ^ (r6_1159.u2)[24] ^ (r4_473 >> 6 & 0x3FC<32>)->dw1C9D0 @ 0001609C : word32) Class: Eq_18548 DataType: ui32 OrigDataType: ui32 -T_18549: (in (r4_473 >> 14 & 0x3FC<32>)->dw1CDD0 ^ (((g_a1C5D0[(r4_473 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r4_473 >> 24) * 4<32>]) ^ (r6_1159.u2)[24]) ^ (r4_473 >> 6 & 0x3FC<32>)->dw1C9D0) @ 0001609C : word32) +T_18549: (in (r4_473 >> 14 & 0x3FC<32>)->dw1CDD0 ^ (((g_a1C5D0[r4_473 & 0xFF<32>] ^ g_a1D1D0[r4_473 >> 24]) ^ (r6_1159.u2)[24]) ^ (r4_473 >> 6 & 0x3FC<32>)->dw1C9D0) @ 0001609C : word32) Class: Eq_18549 DataType: uint32 OrigDataType: ui32 @@ -89941,7 +89941,7 @@ T_18571: (in 0x1D1D0<32>[(r8_537 >>u 24) * 4<32>] @ 000161C4 : word32) Class: Eq_18571 DataType: word32 OrigDataType: word32 -T_18572: (in g_a1C5D0[(r8_537 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r8_537 >> 24) * 4<32>] @ 000161C4 : word32) +T_18572: (in g_a1C5D0[r8_537 & 0xFF<32>] ^ g_a1D1D0[r8_537 >> 24] @ 000161C4 : word32) Class: Eq_18572 DataType: ui32 OrigDataType: ui32 @@ -89957,7 +89957,7 @@ T_18575: (in Mem0[r6_1159 + -4:word32] @ 000161C4 : word32) Class: Eq_18575 DataType: word32 OrigDataType: word32 -T_18576: (in g_a1C5D0[(r8_537 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r8_537 >> 24) * 4<32>] ^ (r6_1159.u2)->dwFFFFFFFC @ 000161C4 : word32) +T_18576: (in g_a1C5D0[r8_537 & 0xFF<32>] ^ g_a1D1D0[r8_537 >> 24] ^ (r6_1159.u2)->dwFFFFFFFC @ 000161C4 : word32) Class: Eq_18576 DataType: ui32 OrigDataType: ui32 @@ -89989,11 +89989,11 @@ T_18583: (in Mem0[(r8_537 >>u 6 & 0x3FC<32>) + 0x1C9D0<32>:word32] @ 000161 Class: Eq_18583 DataType: word32 OrigDataType: word32 -T_18584: (in g_a1C5D0[(r8_537 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r8_537 >> 24) * 4<32>] ^ (r6_1159.u2)->dwFFFFFFFC ^ (r8_537 >> 6 & 0x3FC<32>)->dw1C9D0 @ 000161C4 : word32) +T_18584: (in g_a1C5D0[r8_537 & 0xFF<32>] ^ g_a1D1D0[r8_537 >> 24] ^ (r6_1159.u2)->dwFFFFFFFC ^ (r8_537 >> 6 & 0x3FC<32>)->dw1C9D0 @ 000161C4 : word32) Class: Eq_18584 DataType: ui32 OrigDataType: ui32 -T_18585: (in (r8_537 >> 14 & 0x3FC<32>)->dw1CDD0 ^ (((g_a1C5D0[(r8_537 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r8_537 >> 24) * 4<32>]) ^ (r6_1159.u2)->dwFFFFFFFC) ^ (r8_537 >> 6 & 0x3FC<32>)->dw1C9D0) @ 000161C4 : word32) +T_18585: (in (r8_537 >> 14 & 0x3FC<32>)->dw1CDD0 ^ (((g_a1C5D0[r8_537 & 0xFF<32>] ^ g_a1D1D0[r8_537 >> 24]) ^ (r6_1159.u2)->dwFFFFFFFC) ^ (r8_537 >> 6 & 0x3FC<32>)->dw1C9D0) @ 000161C4 : word32) Class: Eq_18585 DataType: uint32 OrigDataType: ui32 @@ -90081,7 +90081,7 @@ T_18606: (in 0x1D1D0<32>[(r3_602 >>u 24) * 4<32>] @ 000162DC : word32) Class: Eq_18606 DataType: word32 OrigDataType: word32 -T_18607: (in g_a1C5D0[(r3_602 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r3_602 >> 24) * 4<32>] @ 000162DC : word32) +T_18607: (in g_a1C5D0[r3_602 & 0xFF<32>] ^ g_a1D1D0[r3_602 >> 24] @ 000162DC : word32) Class: Eq_18607 DataType: ui32 OrigDataType: ui32 @@ -90113,7 +90113,7 @@ T_18614: (in Mem0[(r3_602 >>u 6 & 0x3FC<32>) + 0x1C9D0<32>:word32] @ 000162 Class: Eq_18614 DataType: word32 OrigDataType: word32 -T_18615: (in g_a1C5D0[(r3_602 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r3_602 >> 24) * 4<32>] ^ (r3_602 >> 6 & 0x3FC<32>)->dw1C9D0 @ 000162DC : word32) +T_18615: (in g_a1C5D0[r3_602 & 0xFF<32>] ^ g_a1D1D0[r3_602 >> 24] ^ (r3_602 >> 6 & 0x3FC<32>)->dw1C9D0 @ 000162DC : word32) Class: Eq_18615 DataType: ui32 OrigDataType: ui32 @@ -90285,7 +90285,7 @@ T_18657: (in 0x1C5D0<32>[(r3_684 & 0xFF<32>) * 4<32>] @ 0001641C : word32) Class: Eq_18657 DataType: word32 OrigDataType: word32 -T_18658: (in g_a1D1D0[(r3_684 >> 24) * 4<32>] ^ g_a1C5D0[(r3_684 & 0xFF<32>) * 4<32>] @ 0001641C : word32) +T_18658: (in g_a1D1D0[r3_684 >> 24] ^ g_a1C5D0[r3_684 & 0xFF<32>] @ 0001641C : word32) Class: Eq_18658 DataType: ui32 OrigDataType: ui32 @@ -90317,7 +90317,7 @@ T_18665: (in Mem0[(r3_684 >>u 6 & 0x3FC<32>) + 0x1C9D0<32>:word32] @ 000164 Class: Eq_18665 DataType: word32 OrigDataType: word32 -T_18666: (in g_a1D1D0[(r3_684 >> 24) * 4<32>] ^ g_a1C5D0[(r3_684 & 0xFF<32>) * 4<32>] ^ (r3_684 >> 6 & 0x3FC<32>)->dw1C9D0 @ 0001641C : word32) +T_18666: (in g_a1D1D0[r3_684 >> 24] ^ g_a1C5D0[r3_684 & 0xFF<32>] ^ (r3_684 >> 6 & 0x3FC<32>)->dw1C9D0 @ 0001641C : word32) Class: Eq_18666 DataType: ui32 OrigDataType: ui32 @@ -90485,7 +90485,7 @@ T_18707: (in 0x1C5D0<32>[(r3_752 & 0xFF<32>) * 4<32>] @ 0001654C : word32) Class: Eq_18707 DataType: word32 OrigDataType: word32 -T_18708: (in g_a1D1D0[(r3_752 >> 24) * 4<32>] ^ g_a1C5D0[(r3_752 & 0xFF<32>) * 4<32>] @ 0001654C : word32) +T_18708: (in g_a1D1D0[r3_752 >> 24] ^ g_a1C5D0[r3_752 & 0xFF<32>] @ 0001654C : word32) Class: Eq_18708 DataType: ui32 OrigDataType: ui32 @@ -90517,7 +90517,7 @@ T_18715: (in Mem0[(r3_752 >>u 6 & 0x3FC<32>) + 0x1C9D0<32>:word32] @ 000165 Class: Eq_18715 DataType: word32 OrigDataType: word32 -T_18716: (in g_a1D1D0[(r3_752 >> 24) * 4<32>] ^ g_a1C5D0[(r3_752 & 0xFF<32>) * 4<32>] ^ (r3_752 >> 6 & 0x3FC<32>)->dw1C9D0 @ 0001654C : word32) +T_18716: (in g_a1D1D0[r3_752 >> 24] ^ g_a1C5D0[r3_752 & 0xFF<32>] ^ (r3_752 >> 6 & 0x3FC<32>)->dw1C9D0 @ 0001654C : word32) Class: Eq_18716 DataType: ui32 OrigDataType: ui32 @@ -90661,7 +90661,7 @@ T_18751: (in 0x1C5D0<32>[(r3_820 & 0xFF<32>) * 4<32>] @ 0001667C : word32) Class: Eq_18751 DataType: word32 OrigDataType: word32 -T_18752: (in g_a1D1D0[(r3_820 >> 24) * 4<32>] ^ g_a1C5D0[(r3_820 & 0xFF<32>) * 4<32>] @ 0001667C : word32) +T_18752: (in g_a1D1D0[r3_820 >> 24] ^ g_a1C5D0[r3_820 & 0xFF<32>] @ 0001667C : word32) Class: Eq_18752 DataType: ui32 OrigDataType: ui32 @@ -90693,7 +90693,7 @@ T_18759: (in Mem0[(r3_820 >>u 6 & 0x3FC<32>) + 0x1C9D0<32>:word32] @ 000166 Class: Eq_18759 DataType: word32 OrigDataType: word32 -T_18760: (in g_a1D1D0[(r3_820 >> 24) * 4<32>] ^ g_a1C5D0[(r3_820 & 0xFF<32>) * 4<32>] ^ (r3_820 >> 6 & 0x3FC<32>)->dw1C9D0 @ 0001667C : word32) +T_18760: (in g_a1D1D0[r3_820 >> 24] ^ g_a1C5D0[r3_820 & 0xFF<32>] ^ (r3_820 >> 6 & 0x3FC<32>)->dw1C9D0 @ 0001667C : word32) Class: Eq_18760 DataType: ui32 OrigDataType: ui32 @@ -90837,7 +90837,7 @@ T_18795: (in 0x1C5D0<32>[(r3_888 & 0xFF<32>) * 4<32>] @ 000167AC : word32) Class: Eq_18795 DataType: word32 OrigDataType: word32 -T_18796: (in g_a1D1D0[(r3_888 >> 24) * 4<32>] ^ g_a1C5D0[(r3_888 & 0xFF<32>) * 4<32>] @ 000167AC : word32) +T_18796: (in g_a1D1D0[r3_888 >> 24] ^ g_a1C5D0[r3_888 & 0xFF<32>] @ 000167AC : word32) Class: Eq_18796 DataType: ui32 OrigDataType: ui32 @@ -90869,7 +90869,7 @@ T_18803: (in Mem0[(r3_888 >>u 6 & 0x3FC<32>) + 0x1C9D0<32>:word32] @ 000167 Class: Eq_18803 DataType: word32 OrigDataType: word32 -T_18804: (in g_a1D1D0[(r3_888 >> 24) * 4<32>] ^ g_a1C5D0[(r3_888 & 0xFF<32>) * 4<32>] ^ (r3_888 >> 6 & 0x3FC<32>)->dw1C9D0 @ 000167AC : word32) +T_18804: (in g_a1D1D0[r3_888 >> 24] ^ g_a1C5D0[r3_888 & 0xFF<32>] ^ (r3_888 >> 6 & 0x3FC<32>)->dw1C9D0 @ 000167AC : word32) Class: Eq_18804 DataType: ui32 OrigDataType: ui32 @@ -91013,7 +91013,7 @@ T_18839: (in 0x1C5D0<32>[(r3_956 & 0xFF<32>) * 4<32>] @ 000168DC : word32) Class: Eq_18839 DataType: word32 OrigDataType: word32 -T_18840: (in g_a1D1D0[(r3_956 >> 24) * 4<32>] ^ g_a1C5D0[(r3_956 & 0xFF<32>) * 4<32>] @ 000168DC : word32) +T_18840: (in g_a1D1D0[r3_956 >> 24] ^ g_a1C5D0[r3_956 & 0xFF<32>] @ 000168DC : word32) Class: Eq_18840 DataType: ui32 OrigDataType: ui32 @@ -91045,7 +91045,7 @@ T_18847: (in Mem0[(r3_956 >>u 6 & 0x3FC<32>) + 0x1C9D0<32>:word32] @ 000168 Class: Eq_18847 DataType: word32 OrigDataType: word32 -T_18848: (in g_a1D1D0[(r3_956 >> 24) * 4<32>] ^ g_a1C5D0[(r3_956 & 0xFF<32>) * 4<32>] ^ (r3_956 >> 6 & 0x3FC<32>)->dw1C9D0 @ 000168DC : word32) +T_18848: (in g_a1D1D0[r3_956 >> 24] ^ g_a1C5D0[r3_956 & 0xFF<32>] ^ (r3_956 >> 6 & 0x3FC<32>)->dw1C9D0 @ 000168DC : word32) Class: Eq_18848 DataType: ui32 OrigDataType: ui32 @@ -91189,7 +91189,7 @@ T_18883: (in 0x1C5D0<32>[(r3_1024 & 0xFF<32>) * 4<32>] @ 00016A0C : word32) Class: Eq_18883 DataType: word32 OrigDataType: word32 -T_18884: (in g_a1D1D0[(r3_1024 >> 24) * 4<32>] ^ g_a1C5D0[(r3_1024 & 0xFF<32>) * 4<32>] @ 00016A0C : word32) +T_18884: (in g_a1D1D0[r3_1024 >> 24] ^ g_a1C5D0[r3_1024 & 0xFF<32>] @ 00016A0C : word32) Class: Eq_18884 DataType: ui32 OrigDataType: ui32 @@ -91221,7 +91221,7 @@ T_18891: (in Mem0[(r3_1024 >>u 6 & 0x3FC<32>) + 0x1C9D0<32>:word32] @ 00016 Class: Eq_18891 DataType: word32 OrigDataType: word32 -T_18892: (in g_a1D1D0[(r3_1024 >> 24) * 4<32>] ^ g_a1C5D0[(r3_1024 & 0xFF<32>) * 4<32>] ^ (r3_1024 >> 6 & 0x3FC<32>)->dw1C9D0 @ 00016A0C : word32) +T_18892: (in g_a1D1D0[r3_1024 >> 24] ^ g_a1C5D0[r3_1024 & 0xFF<32>] ^ (r3_1024 >> 6 & 0x3FC<32>)->dw1C9D0 @ 00016A0C : word32) Class: Eq_18892 DataType: ui32 OrigDataType: ui32 @@ -91361,7 +91361,7 @@ T_18926: (in 0x1D1D0<32>[(r3_1091 >>u 24) * 4<32>] @ 00016B3C : word32) Class: Eq_18926 DataType: word32 OrigDataType: word32 -T_18927: (in g_a1C5D0[(r3_1091 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r3_1091 >> 24) * 4<32>] @ 00016B3C : word32) +T_18927: (in g_a1C5D0[r3_1091 & 0xFF<32>] ^ g_a1D1D0[r3_1091 >> 24] @ 00016B3C : word32) Class: Eq_18927 DataType: ui32 OrigDataType: ui32 @@ -91393,11 +91393,11 @@ T_18934: (in Mem0[(r3_1091 >>u 6 & 0x3FC<32>) + 0x1C9D0<32>:word32] @ 00016 Class: Eq_18934 DataType: word32 OrigDataType: word32 -T_18935: (in g_a1C5D0[(r3_1091 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r3_1091 >> 24) * 4<32>] ^ (r3_1091 >> 6 & 0x3FC<32>)->dw1C9D0 @ 00016B3C : word32) +T_18935: (in g_a1C5D0[r3_1091 & 0xFF<32>] ^ g_a1D1D0[r3_1091 >> 24] ^ (r3_1091 >> 6 & 0x3FC<32>)->dw1C9D0 @ 00016B3C : word32) Class: Eq_18935 DataType: ui32 OrigDataType: ui32 -T_18936: (in (r3_1091 >> 14 & 0x3FC<32>)->dw1CDD0 ^ ((g_a1C5D0[(r3_1091 & 0xFF<32>) * 4<32>] ^ g_a1D1D0[(r3_1091 >> 24) * 4<32>]) ^ (r3_1091 >> 6 & 0x3FC<32>)->dw1C9D0) @ 00016B3C : word32) +T_18936: (in (r3_1091 >> 14 & 0x3FC<32>)->dw1CDD0 ^ ((g_a1C5D0[r3_1091 & 0xFF<32>] ^ g_a1D1D0[r3_1091 >> 24]) ^ (r3_1091 >> 6 & 0x3FC<32>)->dw1C9D0) @ 00016B3C : word32) Class: Eq_18230 DataType: uint32 OrigDataType: ui32 @@ -91629,7 +91629,7 @@ T_18993: (in r4_1254 * 0x100<32> @ 00016D58 : word32) Class: Eq_18993 DataType: ui32 OrigDataType: ui32 -T_18994: (in g_a1C5D0[(r4_1254 >> 24 ^ (word32) (r6_1159.u2)[2]) * 4<32>] ^ r4_1254 * 0x100<32> @ 00016D58 : word32) +T_18994: (in g_a1C5D0[r4_1254 >> 24 ^ (word32) (r6_1159.u2)[2]] ^ r4_1254 * 0x100<32> @ 00016D58 : word32) Class: Eq_18230 DataType: uint32 OrigDataType: ui32 diff --git a/subjects/Raw/Padauk/adctest_pfs173.reko/adctest_pfs173_CODE_02.c b/subjects/Raw/Padauk/adctest_pfs173.reko/adctest_pfs173_CODE_02.c index 57fea5f400..f6496086a1 100644 --- a/subjects/Raw/Padauk/adctest_pfs173.reko/adctest_pfs173_CODE_02.c +++ b/subjects/Raw/Padauk/adctest_pfs173.reko/adctest_pfs173_CODE_02.c @@ -955,7 +955,7 @@ byte fn01C7(byte f) &a_n.u1->t0000.u0 = g_t004E.u1 + fn056C() /8 2; sp_n->t0000.u1 = (struct Eq_n *) a_n; sp_n->b0001 = f; - null = &null->u0 + (byte) (a_n < 0x00); + null = &null->u0 + (byte) (a_n < 0x00) /8 2; Eq_n a_n; &a_n.u1->t0000.u0 = sp_n->t0000.u1; f = sp_n->b0001; @@ -972,7 +972,7 @@ byte fn01C7(byte f) &a_n.u1->t0000.u0 = g_t004E.u1 + fn056C() /8 2; sp_n->t0000.u1 = (struct Eq_n *) a_n; sp_n->b0001 = f; - null = &null->u0 + (byte) (a_n < 0x00); + null = &null->u0 + (byte) (a_n < 0x00) /8 2; Eq_n a_n; &a_n.u1->t0000.u0 = sp_n->t0000.u1; f = sp_n->b0001; diff --git a/subjects/Raw/TriCore/bootloader.reko/bootloader_code.c b/subjects/Raw/TriCore/bootloader.reko/bootloader_code.c index c1f4e1d69c..1bb1b1f63a 100644 --- a/subjects/Raw/TriCore/bootloader.reko/bootloader_code.c +++ b/subjects/Raw/TriCore/bootloader.reko/bootloader_code.c @@ -294,7 +294,7 @@ void fn000005CE(ui32 d4, ui16 * a4) int32 d4_n = d15_n + 0x01; if ((d15_n & 0xFF) >= d2_n) break; - (a4 + d15_n)[6] = (ui16) ((char *) a15_n - 0x10000000 + d15_n)[16]; + (a4 + d15_n / 2)[6] = (ui16) ((char *) a15_n - 0x10000000 + d15_n)[16]; d15_n = d4_n; } Eq_n d15_n; @@ -372,7 +372,7 @@ void fn00000690(ui32 d4, struct Eq_n * a4) ++d4_n; if (d4_n >= (int32) SLICE((int32) a4->w0000, word4, 4)) break; - (&a15_n->dwF0000000 + d4_n)[4] = (&(a4 + d4_n / 22)->dw0008)[1]; + (&a15_n->dwF0000000 + d4_n / 4)[4] = (&(a4 + d4_n / 22)->dw0008)[1]; } d15_n = 0x06280000; } @@ -493,7 +493,7 @@ void fn000008BE(struct Eq_n * d4, ui16 * a4) int32 d4_n = d15_n + 0x01; if ((d15_n & 0xFF) >= d2_n) break; - (a4 + d15_n)[6] = (ui16) ((char *) a15_n - 0x10000000 + d15_n)[16]; + (a4 + d15_n / 2)[6] = (ui16) ((char *) a15_n - 0x10000000 + d15_n)[16]; d15_n = d4_n; } Eq_n d15_n; diff --git a/subjects/VMS-vax/unzip_code_0000.c b/subjects/VMS-vax/unzip_code_0000.c index 4cc10575f4..d80ca19283 100644 --- a/subjects/VMS-vax/unzip_code_0000.c +++ b/subjects/VMS-vax/unzip_code_0000.c @@ -2934,7 +2934,7 @@ struct Eq_n * fn0000D5BE(struct Eq_n * r0, struct Eq_n * r4, struct Eq_n * ap, u sp_n->dwFFFFFFFC = r4->dwC5F7; sp_n->ptrFFFFFFF8 = ap->ptr0004; (*((word32) g_ptr1929C + 2))(); - ap->ptr0004 += r3; + ap->ptr0004 += r3 / 4; r4->dwC5F7 += r3; r4->ptrC5FB -= r3; word32 r2_n; diff --git a/subjects/regressions/reko-90/PP.reko/PP.h b/subjects/regressions/reko-90/PP.reko/PP.h index d7350224c0..a4c20d1977 100644 --- a/subjects/regressions/reko-90/PP.reko/PP.h +++ b/subjects/regressions/reko-90/PP.reko/PP.h @@ -216675,7 +216675,7 @@ T_46108: (in bp - 1<16> @ 1483:0CDB : word16) Class: Eq_46108 DataType: word16 OrigDataType: word16 -T_46109: (in bx_130[(word16) di + 1] + (bp - 1<16>) @ 1483:0CDB : word16) +T_46109: (in bx_130[((word16) di + 1) /16 2] + (bp - 1<16>) @ 1483:0CDB : word16) Class: Eq_46106 DataType: word16 OrigDataType: word16 diff --git a/subjects/regressions/reko-90/PP.reko/PP_1483.c b/subjects/regressions/reko-90/PP.reko/PP_1483.c index 0410b1bd5f..7fd9970d40 100644 --- a/subjects/regressions/reko-90/PP.reko/PP_1483.c +++ b/subjects/regressions/reko-90/PP.reko/PP_1483.c @@ -151,13 +151,13 @@ word16 fn1483-0CA0(byte * es_di, struct Eq_n * ss_bp, Eq_n si, struct Eq_n * ds, byte bl_n = bl_n & ds->*bx_n; *es_di = (byte) ax_n - 0xAC; word16 Eq_n::* bx_n = SEQ(bh_n, bl_n); - ds->*bx_n = bx_n + ds->*bx_n; + ds->*bx_n = bx_n + ds->*bx_n /16 2; ds->*((word16) di + 21) = ax_n - ~0x4234; fn1483-4FE0(); word16 dx_n; ds->wF7E3 -= dx_n; word16 Eq_n::* bx_n; - bx_n[(word16) di + 1] += bp - 0x01; + bx_n[((word16) di + 1) /16 2] += bp - 0x01; word16 ax_n = __in(0x8B); diOut = (word16) di + 1; return ax_n; @@ -403,7 +403,7 @@ Eq_n fn1483-0D3F(struct Eq_n * ds_di, struct Eq_n * ss_bp, Eq_n ax, Eq_n cx, ui1 byte ch_n; do { - di_n += (uint16) (bx_n->*si_n); + di_n += (uint16) (bx_n->*si_n) /16 2; psegArg01A4->*di_n = (word16) dx_n.u0 + psegArg01A4->*di_n; --cx_n; ++si_n;