From b56d1c83fae98038f1a2979926ca74a55eb053b9 Mon Sep 17 00:00:00 2001 From: Erik Stenman Date: Wed, 3 Jul 2019 07:27:27 +0200 Subject: [PATCH] New gas costs and test programs. --- src/aeb_fate_generate_ops.erl | 56 +++++------ test/asm_code/addr_to_str_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/append_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/bits_all_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/bits_all_n_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/bits_alla_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/bits_and_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/bits_clear_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/bits_none_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/bits_nonea_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/bits_or_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/bits_set_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/bits_sum_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/bits_test_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/cons_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/element_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/hd_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/int_to_addr_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/int_to_str_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/is_nil_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/length_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/map_delete_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/map_empty_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/map_from_list_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/map_lookup_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/map_lookupd_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/map_member_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/map_update_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/nil_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/setelement_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/str_join_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/str_reverse_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/tl_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/variant_element_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/variant_loop.fate | 123 ++++++++++++++++++++++++ test/asm_code/variant_test_loop.fate | 123 ++++++++++++++++++++++++ 36 files changed, 4333 insertions(+), 28 deletions(-) create mode 100644 test/asm_code/addr_to_str_loop.fate create mode 100644 test/asm_code/append_loop.fate create mode 100644 test/asm_code/bits_all_loop.fate create mode 100644 test/asm_code/bits_all_n_loop.fate create mode 100644 test/asm_code/bits_alla_loop.fate create mode 100644 test/asm_code/bits_and_loop.fate create mode 100644 test/asm_code/bits_clear_loop.fate create mode 100644 test/asm_code/bits_none_loop.fate create mode 100644 test/asm_code/bits_nonea_loop.fate create mode 100644 test/asm_code/bits_or_loop.fate create mode 100644 test/asm_code/bits_set_loop.fate create mode 100644 test/asm_code/bits_sum_loop.fate create mode 100644 test/asm_code/bits_test_loop.fate create mode 100644 test/asm_code/cons_loop.fate create mode 100644 test/asm_code/element_loop.fate create mode 100644 test/asm_code/hd_loop.fate create mode 100644 test/asm_code/int_to_addr_loop.fate create mode 100644 test/asm_code/int_to_str_loop.fate create mode 100644 test/asm_code/is_nil_loop.fate create mode 100644 test/asm_code/length_loop.fate create mode 100644 test/asm_code/map_delete_loop.fate create mode 100644 test/asm_code/map_empty_loop.fate create mode 100644 test/asm_code/map_from_list_loop.fate create mode 100644 test/asm_code/map_lookup_loop.fate create mode 100644 test/asm_code/map_lookupd_loop.fate create mode 100644 test/asm_code/map_member_loop.fate create mode 100644 test/asm_code/map_update_loop.fate create mode 100644 test/asm_code/nil_loop.fate create mode 100644 test/asm_code/setelement_loop.fate create mode 100644 test/asm_code/str_join_loop.fate create mode 100644 test/asm_code/str_reverse_loop.fate create mode 100644 test/asm_code/tl_loop.fate create mode 100644 test/asm_code/variant_element_loop.fate create mode 100644 test/asm_code/variant_loop.fate create mode 100644 test/asm_code/variant_test_loop.fate diff --git a/src/aeb_fate_generate_ops.erl b/src/aeb_fate_generate_ops.erl index dc519ea..53e4f36 100644 --- a/src/aeb_fate_generate_ops.erl +++ b/src/aeb_fate_generate_ops.erl @@ -57,34 +57,34 @@ ops_defs() -> , { 'SWITCH_V3', 16#0b, true, true, 4, [a,ii,ii,ii], switch, {variant, integer, integer, ingeger}, none, "Conditional jump to a basic block on variant tag."} , { 'SWITCH_VN', 16#0c, true, true, 4, [a, li], switch, {variant, {list, integer}}, none, "Conditional jump to a basic block on variant tag."} , { 'CALL_VALUE', 16#0d, false, true, 3, [a], call_value, {}, integer, "The value sent in the current remote call."} - , { 'PUSH', 16#0e, false, true, 2, [a], push, {any}, any, "Push argument to stack."} - , { 'DUPA', 16#0f, false, true, 3, [], dup, {any}, any, "Duplicate top of stack."} - , { 'DUP', 16#10, false, true, 3, [a], dup, {any}, any, "push Arg0 stack pos on top of stack."} - , { 'POP', 16#11, false, true, 3, [a], pop, {integer}, integer, "Arg0 := top of stack."} - , { 'INCA', 16#12, false, true, 2, [], inc, {integer}, integer, "Increment accumulator."} - , { 'INC', 16#13, false, true, 2, [a], inc, {integer}, integer, "Increment argument."} - , { 'DECA', 16#14, false, true, 2, [], dec, {integer}, integer, "Decrement accumulator."} - , { 'DEC', 16#15, false, true, 2, [a], dec, {integer}, integer, "Decrement argument."} - , { 'ADD', 16#16, false, true, 3, [a,a,a], add, {integer, integer}, integer, "Arg0 := Arg1 + Arg2."} - , { 'SUB', 16#17, false, true, 3, [a,a,a], sub, {integer, integer}, integer, "Arg0 := Arg1 - Arg2."} - , { 'MUL', 16#18, false, true, 3, [a,a,a], mul, {integer, integer}, integer, "Arg0 := Arg1 * Arg2."} - , { 'DIV', 16#19, false, true, 3, [a,a,a], divide, {integer, integer}, integer, "Arg0 := Arg1 / Arg2."} - , { 'MOD', 16#1a, false, true, 3, [a,a,a], modulo, {integer, integer}, integer, "Arg0 := Arg1 mod Arg2."} - , { 'POW', 16#1b, false, true, 3, [a,a,a], pow, {integer, integer}, integer, "Arg0 := Arg1 ^ Arg2."} - , { 'STORE', 16#1c, false, true, 3, [a,a], store, {any}, any, "Arg0 := Arg1."} - , { 'SHA3', 16#1d, false, true, 30, [a,a], sha3, {any}, hash, "Arg0 := sha3(Arg1)."} - , { 'SHA256', 16#1e, false, true, 30, [a,a], sha256, {any}, hash, "Arg0 := sha256(Arg1)."} - , { 'BLAKE2B', 16#1f, false, true, 30, [a,a], blake2b, {any}, hash, "Arg0 := blake2b(Arg1)."} - , { 'LT', 16#20, false, true, 3, [a,a,a], lt, {integer, integer}, boolean, "Arg0 := Arg1 < Arg2."} - , { 'GT', 16#21, false, true, 3, [a,a,a], gt, {integer, integer}, boolean, "Arg0 := Arg1 > Arg2."} - , { 'EQ', 16#22, false, true, 3, [a,a,a], eq, {integer, integer}, boolean, "Arg0 := Arg1 = Arg2."} - , { 'ELT', 16#23, false, true, 3, [a,a,a], elt, {integer, integer}, boolean, "Arg0 := Arg1 =< Arg2."} - , { 'EGT', 16#24, false, true, 3, [a,a,a], egt, {integer, integer}, boolean, "Arg0 := Arg1 >= Arg2."} - , { 'NEQ', 16#25, false, true, 3, [a,a,a], neq, {integer, integer}, boolean, "Arg0 := Arg1 /= Arg2."} - , { 'AND', 16#26, false, true, 3, [a,a,a], and_op, {boolean, boolean}, boolean, "Arg0 := Arg1 and Arg2."} - , { 'OR', 16#27, false, true, 3, [a,a,a], or_op, {boolean, boolean}, boolean, "Arg0 := Arg1 or Arg2."} - , { 'NOT', 16#28, false, true, 3, [a,a], not_op, {boolean}, boolean, "Arg0 := not Arg1."} - , { 'TUPLE', 16#29, false, true, 3, [a,ii], tuple, {integer}, tuple, "Arg0 := tuple of size = Arg1. Elements on stack."} + , { 'PUSH', 16#0e, false, true, 13, [a], push, {any}, any, "Push argument to stack."} + , { 'DUPA', 16#0f, false, true, 8, [], dup, {any}, any, "Duplicate top of stack."} + , { 'DUP', 16#10, false, true, 11, [a], dup, {any}, any, "push Arg0 stack pos on top of stack."} + , { 'POP', 16#11, false, true, 15, [a], pop, {integer}, integer, "Arg0 := top of stack."} + , { 'INCA', 16#12, false, true, 14, [], inc, {integer}, integer, "Increment accumulator."} + , { 'INC', 16#13, false, true, 15, [a], inc, {integer}, integer, "Increment argument."} + , { 'DECA', 16#14, false, true, 13, [], dec, {integer}, integer, "Decrement accumulator."} + , { 'DEC', 16#15, false, true, 14, [a], dec, {integer}, integer, "Decrement argument."} + , { 'ADD', 16#16, false, true, 18, [a,a,a], add, {integer, integer}, integer, "Arg0 := Arg1 + Arg2."} + , { 'SUB', 16#17, false, true, 18, [a,a,a], sub, {integer, integer}, integer, "Arg0 := Arg1 - Arg2."} + , { 'MUL', 16#18, false, true, 16, [a,a,a], mul, {integer, integer}, integer, "Arg0 := Arg1 * Arg2."} + , { 'DIV', 16#19, false, true, 16, [a,a,a], divide, {integer, integer}, integer, "Arg0 := Arg1 / Arg2."} + , { 'MOD', 16#1a, false, true, 17, [a,a,a], modulo, {integer, integer}, integer, "Arg0 := Arg1 mod Arg2."} + , { 'POW', 16#1b, false, true, 18, [a,a,a], pow, {integer, integer}, integer, "Arg0 := Arg1 ^ Arg2."} + , { 'STORE', 16#1c, false, true, 20, [a,a], store, {any}, any, "Arg0 := Arg1."} + , { 'SHA3', 16#1d, false, true, 45, [a,a], sha3, {any}, hash, "Arg0 := sha3(Arg1)."} + , { 'SHA256', 16#1e, false, true, 43, [a,a], sha256, {any}, hash, "Arg0 := sha256(Arg1)."} + , { 'BLAKE2B', 16#1f, false, true, 40, [a,a], blake2b, {any}, hash, "Arg0 := blake2b(Arg1)."} + , { 'LT', 16#20, false, true, 15, [a,a,a], lt, {integer, integer}, boolean, "Arg0 := Arg1 < Arg2."} + , { 'GT', 16#21, false, true, 15, [a,a,a], gt, {integer, integer}, boolean, "Arg0 := Arg1 > Arg2."} + , { 'EQ', 16#22, false, true, 15, [a,a,a], eq, {integer, integer}, boolean, "Arg0 := Arg1 = Arg2."} + , { 'ELT', 16#23, false, true, 16, [a,a,a], elt, {integer, integer}, boolean, "Arg0 := Arg1 =< Arg2."} + , { 'EGT', 16#24, false, true, 15, [a,a,a], egt, {integer, integer}, boolean, "Arg0 := Arg1 >= Arg2."} + , { 'NEQ', 16#25, false, true, 16, [a,a,a], neq, {integer, integer}, boolean, "Arg0 := Arg1 /= Arg2."} + , { 'AND', 16#26, false, true, 16, [a,a,a], and_op, {boolean, boolean}, boolean, "Arg0 := Arg1 and Arg2."} + , { 'OR', 16#27, false, true, 16, [a,a,a], or_op, {boolean, boolean}, boolean, "Arg0 := Arg1 or Arg2."} + , { 'NOT', 16#28, false, true, 13, [a,a], not_op, {boolean}, boolean, "Arg0 := not Arg1."} + , { 'TUPLE', 16#29, false, true, 15, [a,ii], tuple, {integer}, tuple, "Arg0 := tuple of size = Arg1. Elements on stack."} , { 'ELEMENT', 16#2a, false, true, 3, [a,a,a], element_op, {integer, tuple}, any, "Arg1 := element(Arg2, Arg3)."} , { 'SETELEMENT', 16#2b, false, true, 3, [a,a,a,a], setelement, {integer, tuple, any}, tuple, "Arg0 := a new tuple similar to Arg2, but with element number Arg1 replaced by Arg3."} , { 'MAP_EMPTY', 16#2c, false, true, 3, [a], map_empty, {}, map, "Arg0 := #{}."} diff --git a/test/asm_code/addr_to_str_loop.fate b/test/asm_code/addr_to_str_loop.fate new file mode 100644 index 0000000..4e7b82d --- /dev/null +++ b/test/asm_code/addr_to_str_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ADDR_TO_STR a @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/append_loop.fate b/test/asm_code/append_loop.fate new file mode 100644 index 0000000..9b65e8e --- /dev/null +++ b/test/asm_code/append_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + APPEND a [1] [2] + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/bits_all_loop.fate b/test/asm_code/bits_all_loop.fate new file mode 100644 index 0000000..187801c --- /dev/null +++ b/test/asm_code/bits_all_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + BITS_ALL a + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/bits_all_n_loop.fate b/test/asm_code/bits_all_n_loop.fate new file mode 100644 index 0000000..3d57cc5 --- /dev/null +++ b/test/asm_code/bits_all_n_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + BITS_ALL_N a 42 + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/bits_alla_loop.fate b/test/asm_code/bits_alla_loop.fate new file mode 100644 index 0000000..30848f2 --- /dev/null +++ b/test/asm_code/bits_alla_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + BITS_ALLA + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/bits_and_loop.fate b/test/asm_code/bits_and_loop.fate new file mode 100644 index 0000000..596d19c --- /dev/null +++ b/test/asm_code/bits_and_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + BITS_AND a <101010> <010101> + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/bits_clear_loop.fate b/test/asm_code/bits_clear_loop.fate new file mode 100644 index 0000000..ac88661 --- /dev/null +++ b/test/asm_code/bits_clear_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + BITS_CLEAR a <101010> 1 + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/bits_none_loop.fate b/test/asm_code/bits_none_loop.fate new file mode 100644 index 0000000..c6397ce --- /dev/null +++ b/test/asm_code/bits_none_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + BITS_NONE a + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/bits_nonea_loop.fate b/test/asm_code/bits_nonea_loop.fate new file mode 100644 index 0000000..67045eb --- /dev/null +++ b/test/asm_code/bits_nonea_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + BITS_NONEA + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/bits_or_loop.fate b/test/asm_code/bits_or_loop.fate new file mode 100644 index 0000000..f44971d --- /dev/null +++ b/test/asm_code/bits_or_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + BITS_OR a <101010> <010101> + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/bits_set_loop.fate b/test/asm_code/bits_set_loop.fate new file mode 100644 index 0000000..ccd6b85 --- /dev/null +++ b/test/asm_code/bits_set_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + BITS_SET a <101010> 2 + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/bits_sum_loop.fate b/test/asm_code/bits_sum_loop.fate new file mode 100644 index 0000000..bd3ad51 --- /dev/null +++ b/test/asm_code/bits_sum_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + BITS_SUM a <101010> + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/bits_test_loop.fate b/test/asm_code/bits_test_loop.fate new file mode 100644 index 0000000..7de60c5 --- /dev/null +++ b/test/asm_code/bits_test_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + BITS_TEST a <101010> 1 + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/cons_loop.fate b/test/asm_code/cons_loop.fate new file mode 100644 index 0000000..b9e24c5 --- /dev/null +++ b/test/asm_code/cons_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + CONS a 42 [] + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/element_loop.fate b/test/asm_code/element_loop.fate new file mode 100644 index 0000000..9f88238 --- /dev/null +++ b/test/asm_code/element_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + ELEMENT a 0 (42) + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/hd_loop.fate b/test/asm_code/hd_loop.fate new file mode 100644 index 0000000..814608c --- /dev/null +++ b/test/asm_code/hd_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + HD a [42] + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/int_to_addr_loop.fate b/test/asm_code/int_to_addr_loop.fate new file mode 100644 index 0000000..76b47f4 --- /dev/null +++ b/test/asm_code/int_to_addr_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + INT_TO_ADDR a 42 + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/int_to_str_loop.fate b/test/asm_code/int_to_str_loop.fate new file mode 100644 index 0000000..d0cbc50 --- /dev/null +++ b/test/asm_code/int_to_str_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + INT_TO_STR a 42 + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/is_nil_loop.fate b/test/asm_code/is_nil_loop.fate new file mode 100644 index 0000000..d36a276 --- /dev/null +++ b/test/asm_code/is_nil_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + IS_NIL a [] + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/length_loop.fate b/test/asm_code/length_loop.fate new file mode 100644 index 0000000..9656cd7 --- /dev/null +++ b/test/asm_code/length_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + LENGTH a [42] + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/map_delete_loop.fate b/test/asm_code/map_delete_loop.fate new file mode 100644 index 0000000..690c1b2 --- /dev/null +++ b/test/asm_code/map_delete_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + MAP_DELETE a { 42 => true } 42 + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/map_empty_loop.fate b/test/asm_code/map_empty_loop.fate new file mode 100644 index 0000000..f15e2f8 --- /dev/null +++ b/test/asm_code/map_empty_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + MAP_EMPTY a + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/map_from_list_loop.fate b/test/asm_code/map_from_list_loop.fate new file mode 100644 index 0000000..c7716d1 --- /dev/null +++ b/test/asm_code/map_from_list_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + MAP_FROM_LIST a [ ( 42, true) ] + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/map_lookup_loop.fate b/test/asm_code/map_lookup_loop.fate new file mode 100644 index 0000000..cb67b96 --- /dev/null +++ b/test/asm_code/map_lookup_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + MAP_LOOKUP a { 42 => true } 42 + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/map_lookupd_loop.fate b/test/asm_code/map_lookupd_loop.fate new file mode 100644 index 0000000..c767382 --- /dev/null +++ b/test/asm_code/map_lookupd_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + MAP_LOOKUPD a { 42 => true } 41 false + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/map_member_loop.fate b/test/asm_code/map_member_loop.fate new file mode 100644 index 0000000..e115065 --- /dev/null +++ b/test/asm_code/map_member_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + MAP_MEMBER a { 42 => true } 42 + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/map_update_loop.fate b/test/asm_code/map_update_loop.fate new file mode 100644 index 0000000..9fdbead --- /dev/null +++ b/test/asm_code/map_update_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + MAP_UPDATE a { 42 => true } 42 false + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/nil_loop.fate b/test/asm_code/nil_loop.fate new file mode 100644 index 0000000..1cac4c1 --- /dev/null +++ b/test/asm_code/nil_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + NIL a + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/setelement_loop.fate b/test/asm_code/setelement_loop.fate new file mode 100644 index 0000000..db5a4aa --- /dev/null +++ b/test/asm_code/setelement_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + SETELEMENT a 0 (42) 0 + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/str_join_loop.fate b/test/asm_code/str_join_loop.fate new file mode 100644 index 0000000..7e77ee2 --- /dev/null +++ b/test/asm_code/str_join_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + STR_JOIN a "hello " "world!" + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/str_reverse_loop.fate b/test/asm_code/str_reverse_loop.fate new file mode 100644 index 0000000..d897db3 --- /dev/null +++ b/test/asm_code/str_reverse_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + STR_REVERSE a "abba" + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/tl_loop.fate b/test/asm_code/tl_loop.fate new file mode 100644 index 0000000..82ac87c --- /dev/null +++ b/test/asm_code/tl_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + TL a [42] + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/variant_element_loop.fate b/test/asm_code/variant_element_loop.fate new file mode 100644 index 0000000..9c3faff --- /dev/null +++ b/test/asm_code/variant_element_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + VARIANT_ELEMENT a (| [1] | 0 | (42) |) 0 + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/variant_loop.fate b/test/asm_code/variant_loop.fate new file mode 100644 index 0000000..59305ac --- /dev/null +++ b/test/asm_code/variant_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + VARIANT a [0] 0 0 + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 + diff --git a/test/asm_code/variant_test_loop.fate b/test/asm_code/variant_test_loop.fate new file mode 100644 index 0000000..7fa0273 --- /dev/null +++ b/test/asm_code/variant_test_loop.fate @@ -0,0 +1,123 @@ +;; Contract empty_loop + +FUNCTION run (integer) : integer + STORE var0 arg0 + PUSH (0) + JUMP 1 + + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + VARIANT_TEST a (| [0] | 0 | () |) 0 + + DEC var0 + GT var1 var0 0 + JUMPIF var1 1 + + RETURNR 0 +