| 331 | | Ick! |
| | 345 | Ick! The old codegen was much better... |
| | 346 | |
| | 347 | {{{ |
| | 348 | Foo.foo_entry() |
| | 349 | { [const Foo.foo_slow-Foo.foo_info;, const 9;, |
| | 350 | const Foo.foo_srt-Foo.foo_info;, const 589824;, const 0;, |
| | 351 | const 196623;] |
| | 352 | } |
| | 353 | cqM: |
| | 354 | if ((Sp + -12) < I32[BaseReg + 84]) goto cqO; |
| | 355 | I32[Sp - 8] = I32[Sp + 4]; |
| | 356 | I32[Sp - 12] = I32[Sp + 0]; |
| | 357 | I32[Sp - 4] = smz_info; |
| | 358 | Sp = Sp - 12; |
| | 359 | jump Foo.baz_info (); |
| | 360 | cqO: |
| | 361 | R1 = Foo.foo_closure; |
| | 362 | Sp = Sp + 0; |
| | 363 | jump (I32[BaseReg - 4]) (); |
| | 364 | } |
| | 365 | |
| | 366 | smz_ret() |
| | 367 | { [const Foo.foo_srt-smz_info;, const 9;, const 65568;] |
| | 368 | } |
| | 369 | cqx: |
| | 370 | if (R1 & 3 >= 2) goto cqC; |
| | 371 | Hp = Hp + 8; |
| | 372 | if (Hp > I32[BaseReg + 92]) goto cqA; |
| | 373 | I32[Hp - 4] = sat_smA_info; |
| | 374 | I32[Sp + 36] = Hp - 4; |
| | 375 | I32[Sp + 32] = stg_ap_p_info; |
| | 376 | I32[Sp + 28] = I32[Sp + 4]; |
| | 377 | Sp = Sp + 28; |
| | 378 | jump GHC.Num.fromInteger_info (); |
| | 379 | cqC: |
| | 380 | Sp = Sp + 4; |
| | 381 | jump Foo.bar_info (); |
| | 382 | cqB: jump (I32[BaseReg - 8]) (); |
| | 383 | cqA: |
| | 384 | I32[BaseReg + 112] = 8; |
| | 385 | goto cqB; |
| | 386 | } |
| | 387 | }}} |