Steinar H. Gunderson: Decompilation patterns, part 16: Tail reduplication

We're nearing the end soon, I promise. Here's one that I see all the time: … } else { var_t0_5 = temp_a0_3 – 0x140; var_a2_5 = 0xA0 – temp_a3_5; goto block_45; } } else { var_t0_5 = 0xA0 – temp_a0_3; var_a2_5 = temp_a3_5 – 0x118; block_45: var_v0_3 = var_t0_5 + 0xA0; var_v1_4 = var_a2_5 + 0x78; } So, eh, what's that goto doing there? What happened was that the compiler helpfully figured it could help with some tail deduplication; someone…
Quelle: Originalartikel öffnen

