diff options
Diffstat (limited to '')
-rw-r--r-- | lux-jvm/source/luxc/lang/translation/jvm/primitive.lux | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/lux-jvm/source/luxc/lang/translation/jvm/primitive.lux b/lux-jvm/source/luxc/lang/translation/jvm/primitive.lux index 016639f2e..49bc10ff3 100644 --- a/lux-jvm/source/luxc/lang/translation/jvm/primitive.lux +++ b/lux-jvm/source/luxc/lang/translation/jvm/primitive.lux @@ -2,6 +2,8 @@ [library [lux {"-" i64} ["[0]" ffi {"+" import:}] + [macro + ["^" pattern]] [math [number ["i" int]]] @@ -36,13 +38,13 @@ (def: .public (i64 value) (-> (I64 Any) (Operation Inst)) (case (.int value) - (^template [<int> <instruction>] + (^.template [<int> <instruction>] [<int> (operation@in (|>> <instruction> (_.wrap type.long)))]) ([+0 _.LCONST_0] [+1 _.LCONST_1]) - (^template [<int> <instruction>] + (^.template [<int> <instruction>] [<int> (operation@in (|>> <instruction> _.I2L (_.wrap type.long)))]) ([-1 _.ICONST_M1] @@ -77,17 +79,17 @@ (def: .public (f64 value) (-> Frac (Operation Inst)) (case value - (^template [<int> <instruction>] + (^.template [<int> <instruction>] [<int> (operation@in (|>> <instruction> (_.wrap type.double)))]) ([+1.0 _.DCONST_1]) - (^template [<int> <instruction>] + (^.template [<int> <instruction>] [<int> (operation@in (|>> <instruction> _.F2D (_.wrap type.double)))]) ([+2.0 _.FCONST_2]) - (^template [<int> <instruction>] + (^.template [<int> <instruction>] [<int> (operation@in (|>> <instruction> _.I2D (_.wrap type.double)))]) ([-1.0 _.ICONST_M1] |