aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/library/lux/target/jvm/bytecode/instruction.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/library/lux/target/jvm/bytecode/instruction.lux')
-rw-r--r--stdlib/source/library/lux/target/jvm/bytecode/instruction.lux104
1 files changed, 52 insertions, 52 deletions
diff --git a/stdlib/source/library/lux/target/jvm/bytecode/instruction.lux b/stdlib/source/library/lux/target/jvm/bytecode/instruction.lux
index 5aee5816a..7d76f4c78 100644
--- a/stdlib/source/library/lux/target/jvm/bytecode/instruction.lux
+++ b/stdlib/source/library/lux/target/jvm/bytecode/instruction.lux
@@ -75,7 +75,7 @@
[(n.+ (///unsigned.value ..opcode_size)
offset)
(try.assumed
- (binary.write/8 offset opcode binary))]))
+ (binary.write/8! offset opcode binary))]))
(def: nullary
[Estimator (-> Opcode Instruction)]
@@ -105,7 +105,7 @@
[(n.+ (///unsigned.value <shift>) offset)
(try.assumed
(do try.monad
- [_ (binary.write/8 offset opcode binary)]
+ [_ (binary.write/8! offset opcode binary)]
(<writer> (n.+ (///unsigned.value ..opcode_size) offset)
(<unwrap> input0)
binary)))]))
@@ -117,10 +117,10 @@
[(n.+ (///unsigned.value <shift>) size)
(|>> mutation ((<private> opcode input0)))])]))]
- [..size/1 unary/1 U1 binary.write/8 ///unsigned.value]
- [..size/2 unary/2 U2 binary.write/16 ///unsigned.value]
- [..size/2 jump/2 Jump binary.write/16 ///signed.value]
- [..size/4 jump/4 Big_Jump binary.write/32 ///signed.value]
+ [..size/1 unary/1 U1 binary.write/8! ///unsigned.value]
+ [..size/2 unary/2 U2 binary.write/16! ///unsigned.value]
+ [..size/2 jump/2 Jump binary.write/16! ///signed.value]
+ [..size/4 jump/4 Big_Jump binary.write/32! ///signed.value]
)
(template [<shift> <name> <inputT> <writer>]
@@ -131,7 +131,7 @@
[(n.+ (///unsigned.value <shift>) offset)
(try.assumed
(do try.monad
- [_ (binary.write/8 offset opcode binary)]
+ [_ (binary.write/8! offset opcode binary)]
(<writer> (n.+ (///unsigned.value ..opcode_size) offset)
(///signed.value input0)
binary)))]))
@@ -143,8 +143,8 @@
[(n.+ (///unsigned.value <shift>) size)
(|>> mutation ((<private> opcode input0)))])]))]
- [..size/1 unary/1' S1 binary.write/8]
- [..size/2 unary/2' S2 binary.write/16]
+ [..size/1 unary/1' S1 binary.write/8!]
+ [..size/2 unary/2' S2 binary.write/16!]
)
(def: size/11
@@ -159,13 +159,13 @@
[(n.+ (///unsigned.value ..size/11) offset)
(try.assumed
(do try.monad
- [_ (binary.write/8 offset opcode binary)
- _ (binary.write/8 (n.+ (///unsigned.value ..opcode_size) offset)
- (///unsigned.value input0)
- binary)]
- (binary.write/8 (n.+ (///unsigned.value ..size/1) offset)
- (///unsigned.value input1)
- binary)))]))
+ [_ (binary.write/8! offset opcode binary)
+ _ (binary.write/8! (n.+ (///unsigned.value ..opcode_size) offset)
+ (///unsigned.value input0)
+ binary)]
+ (binary.write/8! (n.+ (///unsigned.value ..size/1) offset)
+ (///unsigned.value input1)
+ binary)))]))
(def: binary/11
[Estimator (-> Opcode U1 U1 Instruction)]
@@ -186,13 +186,13 @@
[(n.+ (///unsigned.value ..size/21) offset)
(try.assumed
(do try.monad
- [_ (binary.write/8 offset opcode binary)
- _ (binary.write/16 (n.+ (///unsigned.value ..opcode_size) offset)
- (///unsigned.value input0)
- binary)]
- (binary.write/8 (n.+ (///unsigned.value ..size/2) offset)
- (///unsigned.value input1)
- binary)))]))
+ [_ (binary.write/8! offset opcode binary)
+ _ (binary.write/16! (n.+ (///unsigned.value ..opcode_size) offset)
+ (///unsigned.value input0)
+ binary)]
+ (binary.write/8! (n.+ (///unsigned.value ..size/2) offset)
+ (///unsigned.value input1)
+ binary)))]))
(def: binary/21
[Estimator (-> Opcode U2 U1 Instruction)]
@@ -214,16 +214,16 @@
[(n.+ (///unsigned.value ..size/211) offset)
(try.assumed
(do try.monad
- [_ (binary.write/8 offset opcode binary)
- _ (binary.write/16 (n.+ (///unsigned.value ..opcode_size) offset)
- (///unsigned.value input0)
- binary)
- _ (binary.write/8 (n.+ (///unsigned.value ..size/2) offset)
- (///unsigned.value input1)
- binary)]
- (binary.write/8 (n.+ (///unsigned.value ..size/21) offset)
- (///unsigned.value input2)
- binary)))]))
+ [_ (binary.write/8! offset opcode binary)
+ _ (binary.write/16! (n.+ (///unsigned.value ..opcode_size) offset)
+ (///unsigned.value input0)
+ binary)
+ _ (binary.write/8! (n.+ (///unsigned.value ..size/2) offset)
+ (///unsigned.value input1)
+ binary)]
+ (binary.write/8! (n.+ (///unsigned.value ..size/21) offset)
+ (///unsigned.value input2)
+ binary)))]))
(def: trinary/211
[Estimator (-> Opcode U2 U1 U1 Instruction)]
@@ -254,7 +254,7 @@
[11 t_long]
))
-## https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5
+... https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5
(with_expansions [<constants> (template [<code> <name>]
[[<code> <name> [] []]]
@@ -617,21 +617,21 @@
(do {! try.monad}
[amount_of_afterwards (|> amount_of_afterwards .int ///signed.s4)
maximum (///signed.+/4 minimum amount_of_afterwards)
- _ (binary.write/8 offset (hex "AA") binary)
+ _ (binary.write/8! offset (hex "AA") binary)
.let [offset (n.+ (///unsigned.value ..opcode_size) offset)]
_ (case padding
3 (do !
- [_ (binary.write/8 offset 0 binary)]
- (binary.write/16 (inc offset) 0 binary))
- 2 (binary.write/16 offset 0 binary)
- 1 (binary.write/8 offset 0 binary)
+ [_ (binary.write/8! offset 0 binary)]
+ (binary.write/16! (inc offset) 0 binary))
+ 2 (binary.write/16! offset 0 binary)
+ 1 (binary.write/8! offset 0 binary)
_ (in binary))
.let [offset (n.+ padding offset)]
- _ (binary.write/32 offset (///signed.value default) binary)
+ _ (binary.write/32! offset (///signed.value default) binary)
.let [offset (n.+ (///unsigned.value ..big_jump_size) offset)]
- _ (binary.write/32 offset (///signed.value minimum) binary)
+ _ (binary.write/32! offset (///signed.value minimum) binary)
.let [offset (n.+ (///unsigned.value ..integer_size) offset)]
- _ (binary.write/32 offset (///signed.value maximum) binary)]
+ _ (binary.write/32! offset (///signed.value maximum) binary)]
(loop [offset (n.+ (///unsigned.value ..integer_size) offset)
afterwards (: (List Big_Jump)
(#.Item at_minimum afterwards))]
@@ -641,7 +641,7 @@
(#.Item head tail)
(do !
- [_ (binary.write/32 offset (///signed.value head) binary)]
+ [_ (binary.write/32! offset (///signed.value head) binary)]
(recur (n.+ (///unsigned.value ..big_jump_size) offset)
tail))))))]))]
[(n.+ tableswitch_size
@@ -679,19 +679,19 @@
[(n.+ lookupswitch_size offset)
(try.assumed
(do {! try.monad}
- [_ (binary.write/8 offset (hex "AB") binary)
+ [_ (binary.write/8! offset (hex "AB") binary)
.let [offset (n.+ (///unsigned.value ..opcode_size) offset)]
_ (case padding
3 (do !
- [_ (binary.write/8 offset 0 binary)]
- (binary.write/16 (inc offset) 0 binary))
- 2 (binary.write/16 offset 0 binary)
- 1 (binary.write/8 offset 0 binary)
+ [_ (binary.write/8! offset 0 binary)]
+ (binary.write/16! (inc offset) 0 binary))
+ 2 (binary.write/16! offset 0 binary)
+ 1 (binary.write/8! offset 0 binary)
_ (in binary))
.let [offset (n.+ padding offset)]
- _ (binary.write/32 offset (///signed.value default) binary)
+ _ (binary.write/32! offset (///signed.value default) binary)
.let [offset (n.+ (///unsigned.value ..big_jump_size) offset)]
- _ (binary.write/32 offset amount_of_cases binary)]
+ _ (binary.write/32! offset amount_of_cases binary)]
(loop [offset (n.+ (///unsigned.value ..integer_size) offset)
cases cases]
(case cases
@@ -700,8 +700,8 @@
(#.Item [value jump] tail)
(do !
- [_ (binary.write/32 offset (///signed.value value) binary)
- _ (binary.write/32 (n.+ (///unsigned.value ..integer_size) offset) (///signed.value jump) binary)]
+ [_ (binary.write/32! offset (///signed.value value) binary)
+ _ (binary.write/32! (n.+ (///unsigned.value ..integer_size) offset) (///signed.value jump) binary)]
(recur (n.+ case_size offset)
tail))))))]))]
[(n.+ lookupswitch_size