From 6e14d46da33a9aa5f5627475ac52b84101b234d6 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Wed, 1 May 2019 22:50:25 -0400 Subject: Changed how the pattern-matching stack is built, in the hopes of optimizing peeks. --- luxc/src/lux/compiler/jvm/rt.clj | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'luxc') diff --git a/luxc/src/lux/compiler/jvm/rt.clj b/luxc/src/lux/compiler/jvm/rt.clj index 4a8b470ac..689da2eb9 100644 --- a/luxc/src/lux/compiler/jvm/rt.clj +++ b/luxc/src/lux/compiler/jvm/rt.clj @@ -289,16 +289,16 @@ ^:private compile-LuxRT-frac-methods "decode_frac" "java/lang/Double" "parseDouble" "(Ljava/lang/String;)D" &&/wrap-double ) -(defn popI [writer] +(defn peekI [writer] (doto writer (.visitLdcInsn (int 0)) - (.visitInsn Opcodes/AALOAD) - (.visitTypeInsn Opcodes/CHECKCAST "[Ljava/lang/Object;"))) + (.visitInsn Opcodes/AALOAD))) -(defn peekI [writer] +(defn popI [writer] (doto writer (.visitLdcInsn (int 1)) - (.visitInsn Opcodes/AALOAD))) + (.visitInsn Opcodes/AALOAD) + (.visitTypeInsn Opcodes/CHECKCAST "[Ljava/lang/Object;"))) (defn ^:private compile-LuxRT-pm-methods [^ClassWriter =class] (|let [_ (doto (.visitMethod =class (+ Opcodes/ACC_PUBLIC Opcodes/ACC_STATIC) "pm_fail" "()V" nil nil) @@ -315,11 +315,11 @@ (.visitLdcInsn (int 2)) (.visitTypeInsn Opcodes/ANEWARRAY "java/lang/Object") (.visitInsn Opcodes/DUP) - (.visitLdcInsn (int 0)) + (.visitLdcInsn (int 1)) (.visitVarInsn Opcodes/ALOAD 0) (.visitInsn Opcodes/AASTORE) (.visitInsn Opcodes/DUP) - (.visitLdcInsn (int 1)) + (.visitLdcInsn (int 0)) (.visitVarInsn Opcodes/ALOAD 1) (.visitInsn Opcodes/AASTORE) (.visitInsn Opcodes/ARETURN) -- cgit v1.2.3