From 2c887255d8655b888dffde4fb93c76fb991a2170 Mon Sep 17 00:00:00 2001 From: Danny Yoo Date: Sun, 27 Mar 2011 00:03:19 -0400 Subject: [PATCH] better instruction selection when the popenvironment doesn't have to skip any frames. --- assemble.rkt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/assemble.rkt b/assemble.rkt index ac5849d..f10f6d6 100644 --- a/assemble.rkt +++ b/assemble.rkt @@ -285,10 +285,12 @@ EOF "undefined"))) ", "))] [(PopEnvironment? stmt) - (format "MACHINE.env.splice(MACHINE.env.length-(~a),~a);" - (+ (PopEnvironment-skip stmt) - (PopEnvironment-n stmt)) - (PopEnvironment-n stmt))]))) + (if (= (PopEnvironment-skip stmt) 0) + (format "MACHINE.env.length = MACHINE.env.length - ~a;" (PopEnvironment-n stmt)) + (format "MACHINE.env.splice(MACHINE.env.length-(~a),~a);" + (+ (PopEnvironment-skip stmt) + (PopEnvironment-n stmt)) + (PopEnvironment-n stmt)))])))