diff options
-rw-r--r-- | stdlib/optimize.tl | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/stdlib/optimize.tl b/stdlib/optimize.tl index a8e4ba9d..7a1a8bc0 100644 --- a/stdlib/optimize.tl +++ b/stdlib/optimize.tl @@ -609,6 +609,17 @@ ^(,(car insns) (jmp ,lab4) ,*(cddr insns))) + ((@(symbolp @lab1) + (mov (t @tn) (t 0)) + @lab2 + (ifq (t @tn) (t 0) @lab4) + @(symbolp @lab3) + (gcall (t @tn) . @grest) + . @rest) + ^(,lab2 + (ifq (t ,tn) (t 0) ,lab4) + ,lab1 + ,*(cddddr insns))) (((mov (t @tx) (t @ty)) (if (t @ty) @lab2) @(symbolp @lab1) |