aboutsummaryrefslogtreecommitdiff
path: root/lux-jvm/source/luxc/lang/translation/jvm/primitive.lux
diff options
context:
space:
mode:
Diffstat (limited to 'lux-jvm/source/luxc/lang/translation/jvm/primitive.lux')
-rw-r--r--lux-jvm/source/luxc/lang/translation/jvm/primitive.lux12
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]