From 34849d5e6e2bb01d20c42c07bf42f359fbec00d6 Mon Sep 17 00:00:00 2001 From: Daniel Frederico Lins Leite Date: Thu, 20 Nov 2025 09:02:01 -0300 Subject: [PATCH 01/27] trivial fns allowing control ifa type is trivially encoded/decoded --- .../declaration/auto_impl/abi_encoding.rs | 8 + sway-lib-std/generate.sh | 12 +- sway-lib-std/src/bytes.sw | 2 + sway-lib-std/src/codec.sw | 1026 +++++++++++++++++ sway-lib-std/src/string.sw | 2 + sway-lib-std/src/vec.sw | 2 + .../should_pass/language/logging/src/main.sw | 1 + 7 files changed, 1047 insertions(+), 6 deletions(-) diff --git a/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs b/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs index 8ff53dd15e3..ca2d48876a0 100644 --- a/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs +++ b/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs @@ -43,6 +43,8 @@ where if body.is_empty() { format!("#[allow(dead_code, deprecated)] impl{type_parameters_declaration_expanded} AbiEncode for {name}{type_parameters_declaration}{type_parameters_constraints} {{ + #[allow(dead_code, deprecated)] + fn is_encode_trivial() -> bool {{ false }} #[allow(dead_code, deprecated)] fn abi_encode(self, buffer: Buffer) -> Buffer {{ buffer @@ -50,6 +52,8 @@ where }}") } else { format!("#[allow(dead_code, deprecated)] impl{type_parameters_declaration_expanded} AbiEncode for {name}{type_parameters_declaration}{type_parameters_constraints} {{ + #[allow(dead_code, deprecated)] + fn is_encode_trivial() -> bool {{ false }} #[allow(dead_code, deprecated)] fn abi_encode(self, buffer: Buffer) -> Buffer {{ {body} @@ -76,6 +80,8 @@ where if body == "Self { }" { format!("#[allow(dead_code, deprecated)] impl{type_parameters_declaration_expanded} AbiDecode for {name}{type_parameters_declaration}{type_parameters_constraints} {{ + #[allow(dead_code, deprecated)] + fn is_decode_trivial() -> bool {{ false }} #[allow(dead_code, deprecated)] fn abi_decode(ref mut _buffer: BufferReader) -> Self {{ {body} @@ -83,6 +89,8 @@ where }}") } else { format!("#[allow(dead_code, deprecated)] impl{type_parameters_declaration_expanded} AbiDecode for {name}{type_parameters_declaration}{type_parameters_constraints} {{ + #[allow(dead_code, deprecated)] + fn is_decode_trivial() -> bool {{ false }} #[allow(dead_code, deprecated)] fn abi_decode(ref mut buffer: BufferReader) -> Self {{ {body} diff --git a/sway-lib-std/generate.sh b/sway-lib-std/generate.sh index 15ea3020774..d94f610d42d 100755 --- a/sway-lib-std/generate.sh +++ b/sway-lib-std/generate.sh @@ -13,7 +13,7 @@ remove_generated_code "ARRAY_ENCODE" "codec.sw" START=1 END=64 for ((i=END;i>=START;i--)); do - CODE="#[cfg(experimental_const_generics = false)]\nimpl AbiEncode for [T; $i] where T: AbiEncode { fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; while i < $i { buffer = self[i].abi_encode(buffer); i += 1; }; buffer } }" + CODE="#[cfg(experimental_const_generics = false)]\nimpl AbiEncode for [T; $i] where T: AbiEncode { fn is_encode_trivial() -> bool { false } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; while i < $i { buffer = self[i].abi_encode(buffer); i += 1; }; buffer } }" sed -i "s/\/\/ BEGIN ARRAY_ENCODE/\/\/ BEGIN ARRAY_ENCODE\n$CODE/g" ./src/codec.sw done @@ -21,7 +21,7 @@ remove_generated_code "ARRAY_DECODE" "codec.sw" START=1 END=64 for ((i=END;i>=START;i--)); do - CODE="#[cfg(experimental_const_generics = false)]\nimpl AbiDecode for [T; $i] where T: AbiDecode { fn abi_decode(ref mut buffer: BufferReader) -> [T; $i] { let first: T = buffer.decode::(); let mut array = [first; $i]; let mut i = 1; while i < $i { array[i] = buffer.decode::(); i += 1; }; array } }" + CODE="#[cfg(experimental_const_generics = false)]\nimpl AbiDecode for [T; $i] where T: AbiDecode { fn is_decode_trivial() -> bool { false } fn abi_decode(ref mut buffer: BufferReader) -> [T; $i] { let first: T = buffer.decode::(); let mut array = [first; $i]; let mut i = 1; while i < $i { array[i] = buffer.decode::(); i += 1; }; array } }" sed -i "s/\/\/ BEGIN ARRAY_DECODE/\/\/ BEGIN ARRAY_DECODE\n$CODE/g" ./src/codec.sw done @@ -29,7 +29,7 @@ remove_generated_code "STRARRAY_ENCODE" "codec.sw" START=1 END=64 for ((i=END;i>=START;i--)); do - CODE="#[cfg(experimental_const_generics = false)]\nimpl AbiEncode for str[$i] { fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self) } } }" + CODE="#[cfg(experimental_const_generics = false)]\nimpl AbiEncode for str[$i] { fn is_encode_trivial() -> bool { false } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self) } } }" sed -i "s/\/\/ BEGIN STRARRAY_ENCODE/\/\/ BEGIN STRARRAY_ENCODE\n$CODE/g" ./src/codec.sw done @@ -37,7 +37,7 @@ remove_generated_code "STRARRAY_DECODE" "codec.sw" START=1 END=64 for ((i=END;i>=START;i--)); do - CODE="#[cfg(experimental_const_generics = false)]\nimpl AbiDecode for str[$i] { fn abi_decode(ref mut buffer: BufferReader) -> str[$i] { let data = buffer.read_bytes($i); asm(s: data.ptr()) { s: str[$i] } } }" + CODE="#[cfg(experimental_const_generics = false)]\nimpl AbiDecode for str[$i] { fn is_decode_trivial() -> bool { false } fn abi_decode(ref mut buffer: BufferReader) -> str[$i] { let data = buffer.read_bytes($i); asm(s: data.ptr()) { s: str[$i] } } }" sed -i "s/\/\/ BEGIN STRARRAY_DECODE/\/\/ BEGIN STRARRAY_DECODE\n$CODE/g" ./src/codec.sw done @@ -64,7 +64,7 @@ generate_tuple_encode() { CODE="$CODE $element: AbiEncode, " done - CODE="$CODE{ fn abi_encode(self, buffer: Buffer) -> Buffer { " + CODE="$CODE{ fn is_encode_trivial() -> bool { false } fn abi_encode(self, buffer: Buffer) -> Buffer { " i=0 for element in ${elements[@]} @@ -129,7 +129,7 @@ generate_tuple_decode() { CODE="$CODE $element: AbiDecode, " done - CODE="$CODE{ fn abi_decode(ref mut buffer: BufferReader) -> Self { (" + CODE="$CODE{ fn is_decode_trivial() -> bool { false } fn abi_decode(ref mut buffer: BufferReader) -> Self { (" for element in ${elements[@]} do diff --git a/sway-lib-std/src/bytes.sw b/sway-lib-std/src/bytes.sw index 344fef624cb..84c6efb5bd2 100644 --- a/sway-lib-std/src/bytes.sw +++ b/sway-lib-std/src/bytes.sw @@ -1240,12 +1240,14 @@ impl Clone for Bytes { } impl AbiEncode for Bytes { + fn is_encode_trivial() -> bool { false } fn abi_encode(self, buffer: Buffer) -> Buffer { self.as_raw_slice().abi_encode(buffer) } } impl AbiDecode for Bytes { + fn is_decode_trivial() -> bool { false } fn abi_decode(ref mut buffer: BufferReader) -> Bytes { raw_slice::abi_decode(buffer).into() } diff --git a/sway-lib-std/src/codec.sw b/sway-lib-std/src/codec.sw index 5ef6d2cb2f2..7f79709b85b 100644 --- a/sway-lib-std/src/codec.sw +++ b/sway-lib-std/src/codec.sw @@ -162,13 +162,33 @@ impl BufferReader { } } +// is trivial? + +pub fn is_encode_trivial() -> bool +where + T: AbiEncode, +{ + T::is_encode_trivial() +} + +pub fn is_decode_trivial() -> bool +where + T: AbiDecode, +{ + T::is_decode_trivial() +} + // Encode pub trait AbiEncode { + fn is_encode_trivial() -> bool; fn abi_encode(self, buffer: Buffer) -> Buffer; } impl AbiEncode for bool { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -179,6 +199,9 @@ impl AbiEncode for bool { // Encode Numbers impl AbiEncode for b256 { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -187,6 +210,9 @@ impl AbiEncode for b256 { } impl AbiEncode for u256 { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -195,6 +221,9 @@ impl AbiEncode for u256 { } impl AbiEncode for u64 { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -203,6 +232,9 @@ impl AbiEncode for u64 { } impl AbiEncode for u32 { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -211,6 +243,9 @@ impl AbiEncode for u32 { } impl AbiEncode for u16 { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -219,6 +254,9 @@ impl AbiEncode for u16 { } impl AbiEncode for u8 { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -229,6 +267,9 @@ impl AbiEncode for u8 { // Encode str slice and str arrays impl AbiEncode for str { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -238,6 +279,9 @@ impl AbiEncode for str { #[cfg(experimental_const_generics = true)] impl AbiEncode for str[N] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -247,6 +291,9 @@ impl AbiEncode for str[N] { #[cfg(experimental_const_generics = false)] impl AbiEncode for str[0] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { buffer } @@ -255,6 +302,9 @@ impl AbiEncode for str[0] { // BEGIN STRARRAY_ENCODE #[cfg(experimental_const_generics = false)] impl AbiEncode for str[1] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -263,6 +313,9 @@ impl AbiEncode for str[1] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[2] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -271,6 +324,9 @@ impl AbiEncode for str[2] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[3] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -279,6 +335,9 @@ impl AbiEncode for str[3] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[4] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -287,6 +346,9 @@ impl AbiEncode for str[4] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[5] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -295,6 +357,9 @@ impl AbiEncode for str[5] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[6] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -303,6 +368,9 @@ impl AbiEncode for str[6] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[7] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -311,6 +379,9 @@ impl AbiEncode for str[7] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[8] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -319,6 +390,9 @@ impl AbiEncode for str[8] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[9] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -327,6 +401,9 @@ impl AbiEncode for str[9] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[10] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -335,6 +412,9 @@ impl AbiEncode for str[10] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[11] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -343,6 +423,9 @@ impl AbiEncode for str[11] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[12] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -351,6 +434,9 @@ impl AbiEncode for str[12] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[13] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -359,6 +445,9 @@ impl AbiEncode for str[13] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[14] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -367,6 +456,9 @@ impl AbiEncode for str[14] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[15] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -375,6 +467,9 @@ impl AbiEncode for str[15] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[16] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -383,6 +478,9 @@ impl AbiEncode for str[16] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[17] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -391,6 +489,9 @@ impl AbiEncode for str[17] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[18] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -399,6 +500,9 @@ impl AbiEncode for str[18] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[19] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -407,6 +511,9 @@ impl AbiEncode for str[19] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[20] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -415,6 +522,9 @@ impl AbiEncode for str[20] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[21] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -423,6 +533,9 @@ impl AbiEncode for str[21] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[22] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -431,6 +544,9 @@ impl AbiEncode for str[22] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[23] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -439,6 +555,9 @@ impl AbiEncode for str[23] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[24] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -447,6 +566,9 @@ impl AbiEncode for str[24] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[25] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -455,6 +577,9 @@ impl AbiEncode for str[25] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[26] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -463,6 +588,9 @@ impl AbiEncode for str[26] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[27] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -471,6 +599,9 @@ impl AbiEncode for str[27] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[28] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -479,6 +610,9 @@ impl AbiEncode for str[28] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[29] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -487,6 +621,9 @@ impl AbiEncode for str[29] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[30] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -495,6 +632,9 @@ impl AbiEncode for str[30] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[31] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -503,6 +643,9 @@ impl AbiEncode for str[31] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[32] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -511,6 +654,9 @@ impl AbiEncode for str[32] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[33] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -519,6 +665,9 @@ impl AbiEncode for str[33] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[34] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -527,6 +676,9 @@ impl AbiEncode for str[34] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[35] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -535,6 +687,9 @@ impl AbiEncode for str[35] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[36] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -543,6 +698,9 @@ impl AbiEncode for str[36] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[37] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -551,6 +709,9 @@ impl AbiEncode for str[37] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[38] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -559,6 +720,9 @@ impl AbiEncode for str[38] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[39] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -567,6 +731,9 @@ impl AbiEncode for str[39] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[40] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -575,6 +742,9 @@ impl AbiEncode for str[40] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[41] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -583,6 +753,9 @@ impl AbiEncode for str[41] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[42] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -591,6 +764,9 @@ impl AbiEncode for str[42] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[43] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -599,6 +775,9 @@ impl AbiEncode for str[43] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[44] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -607,6 +786,9 @@ impl AbiEncode for str[44] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[45] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -615,6 +797,9 @@ impl AbiEncode for str[45] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[46] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -623,6 +808,9 @@ impl AbiEncode for str[46] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[47] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -631,6 +819,9 @@ impl AbiEncode for str[47] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[48] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -639,6 +830,9 @@ impl AbiEncode for str[48] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[49] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -647,6 +841,9 @@ impl AbiEncode for str[49] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[50] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -655,6 +852,9 @@ impl AbiEncode for str[50] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[51] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -663,6 +863,9 @@ impl AbiEncode for str[51] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[52] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -671,6 +874,9 @@ impl AbiEncode for str[52] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[53] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -679,6 +885,9 @@ impl AbiEncode for str[53] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[54] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -687,6 +896,9 @@ impl AbiEncode for str[54] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[55] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -695,6 +907,9 @@ impl AbiEncode for str[55] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[56] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -703,6 +918,9 @@ impl AbiEncode for str[56] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[57] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -711,6 +929,9 @@ impl AbiEncode for str[57] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[58] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -719,6 +940,9 @@ impl AbiEncode for str[58] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[59] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -727,6 +951,9 @@ impl AbiEncode for str[59] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[60] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -735,6 +962,9 @@ impl AbiEncode for str[60] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[61] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -743,6 +973,9 @@ impl AbiEncode for str[61] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[62] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -751,6 +984,9 @@ impl AbiEncode for str[62] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[63] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -759,6 +995,9 @@ impl AbiEncode for str[63] { } #[cfg(experimental_const_generics = false)] impl AbiEncode for str[64] { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -770,6 +1009,9 @@ impl AbiEncode for str[64] { // Encode Arrays and Slices impl AbiEncode for raw_slice { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { buffer: __encode_buffer_append(buffer.buffer, self), @@ -782,6 +1024,9 @@ impl AbiEncode for [T; N] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -800,6 +1045,9 @@ impl AbiEncode for [T; 0] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { buffer } @@ -811,6 +1059,9 @@ impl AbiEncode for [T; 1] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -826,6 +1077,9 @@ impl AbiEncode for [T; 2] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -841,6 +1095,9 @@ impl AbiEncode for [T; 3] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -856,6 +1113,9 @@ impl AbiEncode for [T; 4] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -871,6 +1131,9 @@ impl AbiEncode for [T; 5] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -886,6 +1149,9 @@ impl AbiEncode for [T; 6] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -901,6 +1167,9 @@ impl AbiEncode for [T; 7] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -916,6 +1185,9 @@ impl AbiEncode for [T; 8] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -931,6 +1203,9 @@ impl AbiEncode for [T; 9] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -946,6 +1221,9 @@ impl AbiEncode for [T; 10] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -961,6 +1239,9 @@ impl AbiEncode for [T; 11] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -976,6 +1257,9 @@ impl AbiEncode for [T; 12] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -991,6 +1275,9 @@ impl AbiEncode for [T; 13] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1006,6 +1293,9 @@ impl AbiEncode for [T; 14] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1021,6 +1311,9 @@ impl AbiEncode for [T; 15] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1036,6 +1329,9 @@ impl AbiEncode for [T; 16] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1051,6 +1347,9 @@ impl AbiEncode for [T; 17] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1066,6 +1365,9 @@ impl AbiEncode for [T; 18] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1081,6 +1383,9 @@ impl AbiEncode for [T; 19] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1096,6 +1401,9 @@ impl AbiEncode for [T; 20] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1111,6 +1419,9 @@ impl AbiEncode for [T; 21] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1126,6 +1437,9 @@ impl AbiEncode for [T; 22] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1141,6 +1455,9 @@ impl AbiEncode for [T; 23] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1156,6 +1473,9 @@ impl AbiEncode for [T; 24] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1171,6 +1491,9 @@ impl AbiEncode for [T; 25] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1186,6 +1509,9 @@ impl AbiEncode for [T; 26] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1201,6 +1527,9 @@ impl AbiEncode for [T; 27] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1216,6 +1545,9 @@ impl AbiEncode for [T; 28] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1231,6 +1563,9 @@ impl AbiEncode for [T; 29] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1246,6 +1581,9 @@ impl AbiEncode for [T; 30] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1261,6 +1599,9 @@ impl AbiEncode for [T; 31] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1276,6 +1617,9 @@ impl AbiEncode for [T; 32] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1291,6 +1635,9 @@ impl AbiEncode for [T; 33] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1306,6 +1653,9 @@ impl AbiEncode for [T; 34] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1321,6 +1671,9 @@ impl AbiEncode for [T; 35] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1336,6 +1689,9 @@ impl AbiEncode for [T; 36] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1351,6 +1707,9 @@ impl AbiEncode for [T; 37] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1366,6 +1725,9 @@ impl AbiEncode for [T; 38] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1381,6 +1743,9 @@ impl AbiEncode for [T; 39] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1396,6 +1761,9 @@ impl AbiEncode for [T; 40] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1411,6 +1779,9 @@ impl AbiEncode for [T; 41] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1426,6 +1797,9 @@ impl AbiEncode for [T; 42] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1441,6 +1815,9 @@ impl AbiEncode for [T; 43] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1456,6 +1833,9 @@ impl AbiEncode for [T; 44] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1471,6 +1851,9 @@ impl AbiEncode for [T; 45] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1486,6 +1869,9 @@ impl AbiEncode for [T; 46] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1501,6 +1887,9 @@ impl AbiEncode for [T; 47] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1516,6 +1905,9 @@ impl AbiEncode for [T; 48] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1531,6 +1923,9 @@ impl AbiEncode for [T; 49] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1546,6 +1941,9 @@ impl AbiEncode for [T; 50] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1561,6 +1959,9 @@ impl AbiEncode for [T; 51] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1576,6 +1977,9 @@ impl AbiEncode for [T; 52] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1591,6 +1995,9 @@ impl AbiEncode for [T; 53] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1606,6 +2013,9 @@ impl AbiEncode for [T; 54] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1621,6 +2031,9 @@ impl AbiEncode for [T; 55] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1636,6 +2049,9 @@ impl AbiEncode for [T; 56] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1651,6 +2067,9 @@ impl AbiEncode for [T; 57] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1666,6 +2085,9 @@ impl AbiEncode for [T; 58] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1681,6 +2103,9 @@ impl AbiEncode for [T; 59] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1696,6 +2121,9 @@ impl AbiEncode for [T; 60] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1711,6 +2139,9 @@ impl AbiEncode for [T; 61] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1726,6 +2157,9 @@ impl AbiEncode for [T; 62] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1741,6 +2175,9 @@ impl AbiEncode for [T; 63] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1756,6 +2193,9 @@ impl AbiEncode for [T; 64] where T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; @@ -1771,6 +2211,9 @@ where // Encode Tuples impl AbiEncode for () { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { buffer } @@ -1781,6 +2224,9 @@ impl AbiEncode for (A, ) where A: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); buffer @@ -1791,6 +2237,9 @@ where A: AbiEncode, B: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -1803,6 +2252,9 @@ where B: AbiEncode, C: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -1817,6 +2269,9 @@ where C: AbiEncode, D: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -1833,6 +2288,9 @@ where D: AbiEncode, E: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -1851,6 +2309,9 @@ where E: AbiEncode, F: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -1871,6 +2332,9 @@ where F: AbiEncode, G: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -1893,6 +2357,9 @@ where G: AbiEncode, H: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -1917,6 +2384,9 @@ where H: AbiEncode, I: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -1943,6 +2413,9 @@ where I: AbiEncode, J: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -1971,6 +2444,9 @@ where J: AbiEncode, K: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -2001,6 +2477,9 @@ where K: AbiEncode, L: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -2033,6 +2512,9 @@ where L: AbiEncode, M: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -2067,6 +2549,9 @@ where M: AbiEncode, N: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -2103,6 +2588,9 @@ where N: AbiEncode, O: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -2141,6 +2629,9 @@ where O: AbiEncode, P: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -2181,6 +2672,9 @@ where P: AbiEncode, Q: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -2223,6 +2717,9 @@ where Q: AbiEncode, R: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -2267,6 +2764,9 @@ where R: AbiEncode, S: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -2313,6 +2813,9 @@ where S: AbiEncode, T: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -2361,6 +2864,9 @@ where T: AbiEncode, U: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -2411,6 +2917,9 @@ where U: AbiEncode, V: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -2463,6 +2972,9 @@ where V: AbiEncode, W: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -2517,6 +3029,9 @@ where W: AbiEncode, X: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -2573,6 +3088,9 @@ where X: AbiEncode, Y: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -2631,6 +3149,9 @@ where Y: AbiEncode, Z: AbiEncode, { + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); let buffer = self.1.abi_encode(buffer); @@ -2730,22 +3251,32 @@ where // Decode pub trait AbiDecode { + fn is_decode_trivial() -> bool; fn abi_decode(ref mut buffer: BufferReader) -> Self; } impl AbiDecode for b256 { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> b256 { buffer.read_32_bytes::() } } impl AbiDecode for u256 { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> u256 { buffer.read_32_bytes::() } } impl AbiDecode for u64 { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> u64 { buffer.read_8_bytes::() } @@ -2764,6 +3295,9 @@ pub fn as_u32(input: u8) -> u32 { } impl AbiDecode for u32 { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> u32 { let a = as_u32(buffer.read::()); let b = as_u32(buffer.read::()); @@ -2774,6 +3308,9 @@ impl AbiDecode for u32 { } impl AbiDecode for u16 { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> u16 { let a = as_u16(buffer.read::()); let b = as_u16(buffer.read::()); @@ -2782,12 +3319,18 @@ impl AbiDecode for u16 { } impl AbiDecode for u8 { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> u8 { buffer.read::() } } impl AbiDecode for bool { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> bool { match buffer.read::() { 0 => false, @@ -2798,6 +3341,9 @@ impl AbiDecode for bool { } impl AbiDecode for raw_slice { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> raw_slice { let len = buffer.read_8_bytes::(); buffer.read_bytes(len) @@ -2805,6 +3351,9 @@ impl AbiDecode for raw_slice { } impl AbiDecode for str { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str { let len = buffer.read_8_bytes::(); let data = buffer.read_bytes(len); @@ -2816,6 +3365,9 @@ impl AbiDecode for str { #[cfg(experimental_const_generics = true)] impl AbiDecode for str[N] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[N] { let data = buffer.read_bytes(N); asm(s: data.ptr()) { @@ -2826,6 +3378,9 @@ impl AbiDecode for str[N] { #[cfg(experimental_const_generics = false)] impl AbiDecode for str[0] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut _buffer: BufferReader) -> str[0] { __to_str_array("") } @@ -2834,6 +3389,9 @@ impl AbiDecode for str[0] { // BEGIN STRARRAY_DECODE #[cfg(experimental_const_generics = false)] impl AbiDecode for str[1] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[1] { let data = buffer.read_bytes(1); asm(s: data.ptr()) { @@ -2843,6 +3401,9 @@ impl AbiDecode for str[1] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[2] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[2] { let data = buffer.read_bytes(2); asm(s: data.ptr()) { @@ -2852,6 +3413,9 @@ impl AbiDecode for str[2] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[3] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[3] { let data = buffer.read_bytes(3); asm(s: data.ptr()) { @@ -2861,6 +3425,9 @@ impl AbiDecode for str[3] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[4] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[4] { let data = buffer.read_bytes(4); asm(s: data.ptr()) { @@ -2870,6 +3437,9 @@ impl AbiDecode for str[4] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[5] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[5] { let data = buffer.read_bytes(5); asm(s: data.ptr()) { @@ -2879,6 +3449,9 @@ impl AbiDecode for str[5] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[6] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[6] { let data = buffer.read_bytes(6); asm(s: data.ptr()) { @@ -2888,6 +3461,9 @@ impl AbiDecode for str[6] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[7] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[7] { let data = buffer.read_bytes(7); asm(s: data.ptr()) { @@ -2897,6 +3473,9 @@ impl AbiDecode for str[7] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[8] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[8] { let data = buffer.read_bytes(8); asm(s: data.ptr()) { @@ -2906,6 +3485,9 @@ impl AbiDecode for str[8] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[9] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[9] { let data = buffer.read_bytes(9); asm(s: data.ptr()) { @@ -2915,6 +3497,9 @@ impl AbiDecode for str[9] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[10] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[10] { let data = buffer.read_bytes(10); asm(s: data.ptr()) { @@ -2924,6 +3509,9 @@ impl AbiDecode for str[10] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[11] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[11] { let data = buffer.read_bytes(11); asm(s: data.ptr()) { @@ -2933,6 +3521,9 @@ impl AbiDecode for str[11] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[12] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[12] { let data = buffer.read_bytes(12); asm(s: data.ptr()) { @@ -2942,6 +3533,9 @@ impl AbiDecode for str[12] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[13] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[13] { let data = buffer.read_bytes(13); asm(s: data.ptr()) { @@ -2951,6 +3545,9 @@ impl AbiDecode for str[13] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[14] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[14] { let data = buffer.read_bytes(14); asm(s: data.ptr()) { @@ -2960,6 +3557,9 @@ impl AbiDecode for str[14] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[15] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[15] { let data = buffer.read_bytes(15); asm(s: data.ptr()) { @@ -2969,6 +3569,9 @@ impl AbiDecode for str[15] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[16] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[16] { let data = buffer.read_bytes(16); asm(s: data.ptr()) { @@ -2978,6 +3581,9 @@ impl AbiDecode for str[16] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[17] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[17] { let data = buffer.read_bytes(17); asm(s: data.ptr()) { @@ -2987,6 +3593,9 @@ impl AbiDecode for str[17] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[18] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[18] { let data = buffer.read_bytes(18); asm(s: data.ptr()) { @@ -2996,6 +3605,9 @@ impl AbiDecode for str[18] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[19] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[19] { let data = buffer.read_bytes(19); asm(s: data.ptr()) { @@ -3005,6 +3617,9 @@ impl AbiDecode for str[19] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[20] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[20] { let data = buffer.read_bytes(20); asm(s: data.ptr()) { @@ -3014,6 +3629,9 @@ impl AbiDecode for str[20] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[21] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[21] { let data = buffer.read_bytes(21); asm(s: data.ptr()) { @@ -3023,6 +3641,9 @@ impl AbiDecode for str[21] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[22] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[22] { let data = buffer.read_bytes(22); asm(s: data.ptr()) { @@ -3032,6 +3653,9 @@ impl AbiDecode for str[22] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[23] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[23] { let data = buffer.read_bytes(23); asm(s: data.ptr()) { @@ -3041,6 +3665,9 @@ impl AbiDecode for str[23] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[24] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[24] { let data = buffer.read_bytes(24); asm(s: data.ptr()) { @@ -3050,6 +3677,9 @@ impl AbiDecode for str[24] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[25] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[25] { let data = buffer.read_bytes(25); asm(s: data.ptr()) { @@ -3059,6 +3689,9 @@ impl AbiDecode for str[25] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[26] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[26] { let data = buffer.read_bytes(26); asm(s: data.ptr()) { @@ -3068,6 +3701,9 @@ impl AbiDecode for str[26] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[27] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[27] { let data = buffer.read_bytes(27); asm(s: data.ptr()) { @@ -3077,6 +3713,9 @@ impl AbiDecode for str[27] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[28] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[28] { let data = buffer.read_bytes(28); asm(s: data.ptr()) { @@ -3086,6 +3725,9 @@ impl AbiDecode for str[28] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[29] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[29] { let data = buffer.read_bytes(29); asm(s: data.ptr()) { @@ -3095,6 +3737,9 @@ impl AbiDecode for str[29] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[30] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[30] { let data = buffer.read_bytes(30); asm(s: data.ptr()) { @@ -3104,6 +3749,9 @@ impl AbiDecode for str[30] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[31] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[31] { let data = buffer.read_bytes(31); asm(s: data.ptr()) { @@ -3113,6 +3761,9 @@ impl AbiDecode for str[31] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[32] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[32] { let data = buffer.read_bytes(32); asm(s: data.ptr()) { @@ -3122,6 +3773,9 @@ impl AbiDecode for str[32] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[33] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[33] { let data = buffer.read_bytes(33); asm(s: data.ptr()) { @@ -3131,6 +3785,9 @@ impl AbiDecode for str[33] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[34] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[34] { let data = buffer.read_bytes(34); asm(s: data.ptr()) { @@ -3140,6 +3797,9 @@ impl AbiDecode for str[34] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[35] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[35] { let data = buffer.read_bytes(35); asm(s: data.ptr()) { @@ -3149,6 +3809,9 @@ impl AbiDecode for str[35] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[36] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[36] { let data = buffer.read_bytes(36); asm(s: data.ptr()) { @@ -3158,6 +3821,9 @@ impl AbiDecode for str[36] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[37] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[37] { let data = buffer.read_bytes(37); asm(s: data.ptr()) { @@ -3167,6 +3833,9 @@ impl AbiDecode for str[37] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[38] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[38] { let data = buffer.read_bytes(38); asm(s: data.ptr()) { @@ -3176,6 +3845,9 @@ impl AbiDecode for str[38] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[39] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[39] { let data = buffer.read_bytes(39); asm(s: data.ptr()) { @@ -3185,6 +3857,9 @@ impl AbiDecode for str[39] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[40] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[40] { let data = buffer.read_bytes(40); asm(s: data.ptr()) { @@ -3194,6 +3869,9 @@ impl AbiDecode for str[40] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[41] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[41] { let data = buffer.read_bytes(41); asm(s: data.ptr()) { @@ -3203,6 +3881,9 @@ impl AbiDecode for str[41] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[42] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[42] { let data = buffer.read_bytes(42); asm(s: data.ptr()) { @@ -3212,6 +3893,9 @@ impl AbiDecode for str[42] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[43] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[43] { let data = buffer.read_bytes(43); asm(s: data.ptr()) { @@ -3221,6 +3905,9 @@ impl AbiDecode for str[43] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[44] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[44] { let data = buffer.read_bytes(44); asm(s: data.ptr()) { @@ -3230,6 +3917,9 @@ impl AbiDecode for str[44] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[45] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[45] { let data = buffer.read_bytes(45); asm(s: data.ptr()) { @@ -3239,6 +3929,9 @@ impl AbiDecode for str[45] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[46] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[46] { let data = buffer.read_bytes(46); asm(s: data.ptr()) { @@ -3248,6 +3941,9 @@ impl AbiDecode for str[46] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[47] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[47] { let data = buffer.read_bytes(47); asm(s: data.ptr()) { @@ -3257,6 +3953,9 @@ impl AbiDecode for str[47] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[48] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[48] { let data = buffer.read_bytes(48); asm(s: data.ptr()) { @@ -3266,6 +3965,9 @@ impl AbiDecode for str[48] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[49] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[49] { let data = buffer.read_bytes(49); asm(s: data.ptr()) { @@ -3275,6 +3977,9 @@ impl AbiDecode for str[49] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[50] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[50] { let data = buffer.read_bytes(50); asm(s: data.ptr()) { @@ -3284,6 +3989,9 @@ impl AbiDecode for str[50] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[51] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[51] { let data = buffer.read_bytes(51); asm(s: data.ptr()) { @@ -3293,6 +4001,9 @@ impl AbiDecode for str[51] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[52] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[52] { let data = buffer.read_bytes(52); asm(s: data.ptr()) { @@ -3302,6 +4013,9 @@ impl AbiDecode for str[52] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[53] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[53] { let data = buffer.read_bytes(53); asm(s: data.ptr()) { @@ -3311,6 +4025,9 @@ impl AbiDecode for str[53] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[54] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[54] { let data = buffer.read_bytes(54); asm(s: data.ptr()) { @@ -3320,6 +4037,9 @@ impl AbiDecode for str[54] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[55] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[55] { let data = buffer.read_bytes(55); asm(s: data.ptr()) { @@ -3329,6 +4049,9 @@ impl AbiDecode for str[55] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[56] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[56] { let data = buffer.read_bytes(56); asm(s: data.ptr()) { @@ -3338,6 +4061,9 @@ impl AbiDecode for str[56] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[57] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[57] { let data = buffer.read_bytes(57); asm(s: data.ptr()) { @@ -3347,6 +4073,9 @@ impl AbiDecode for str[57] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[58] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[58] { let data = buffer.read_bytes(58); asm(s: data.ptr()) { @@ -3356,6 +4085,9 @@ impl AbiDecode for str[58] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[59] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[59] { let data = buffer.read_bytes(59); asm(s: data.ptr()) { @@ -3365,6 +4097,9 @@ impl AbiDecode for str[59] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[60] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[60] { let data = buffer.read_bytes(60); asm(s: data.ptr()) { @@ -3374,6 +4109,9 @@ impl AbiDecode for str[60] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[61] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[61] { let data = buffer.read_bytes(61); asm(s: data.ptr()) { @@ -3383,6 +4121,9 @@ impl AbiDecode for str[61] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[62] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[62] { let data = buffer.read_bytes(62); asm(s: data.ptr()) { @@ -3392,6 +4133,9 @@ impl AbiDecode for str[62] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[63] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[63] { let data = buffer.read_bytes(63); asm(s: data.ptr()) { @@ -3401,6 +4145,9 @@ impl AbiDecode for str[63] { } #[cfg(experimental_const_generics = false)] impl AbiDecode for str[64] { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> str[64] { let data = buffer.read_bytes(64); asm(s: data.ptr()) { @@ -3415,6 +4162,9 @@ impl AbiDecode for [T; N] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; N] { const LENGTH: u64 = __size_of::() * N; let mut array = [0u8; LENGTH]; @@ -3437,6 +4187,9 @@ impl AbiDecode for [T; 0] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut _buffer: BufferReader) -> [T; 0] { [] } @@ -3448,6 +4201,9 @@ impl AbiDecode for [T; 1] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 1] { let first: T = buffer.decode::(); let mut array = [first; 1]; @@ -3464,6 +4220,9 @@ impl AbiDecode for [T; 2] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 2] { let first: T = buffer.decode::(); let mut array = [first; 2]; @@ -3480,6 +4239,9 @@ impl AbiDecode for [T; 3] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 3] { let first: T = buffer.decode::(); let mut array = [first; 3]; @@ -3496,6 +4258,9 @@ impl AbiDecode for [T; 4] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 4] { let first: T = buffer.decode::(); let mut array = [first; 4]; @@ -3512,6 +4277,9 @@ impl AbiDecode for [T; 5] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 5] { let first: T = buffer.decode::(); let mut array = [first; 5]; @@ -3528,6 +4296,9 @@ impl AbiDecode for [T; 6] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 6] { let first: T = buffer.decode::(); let mut array = [first; 6]; @@ -3544,6 +4315,9 @@ impl AbiDecode for [T; 7] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 7] { let first: T = buffer.decode::(); let mut array = [first; 7]; @@ -3560,6 +4334,9 @@ impl AbiDecode for [T; 8] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 8] { let first: T = buffer.decode::(); let mut array = [first; 8]; @@ -3576,6 +4353,9 @@ impl AbiDecode for [T; 9] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 9] { let first: T = buffer.decode::(); let mut array = [first; 9]; @@ -3592,6 +4372,9 @@ impl AbiDecode for [T; 10] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 10] { let first: T = buffer.decode::(); let mut array = [first; 10]; @@ -3608,6 +4391,9 @@ impl AbiDecode for [T; 11] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 11] { let first: T = buffer.decode::(); let mut array = [first; 11]; @@ -3624,6 +4410,9 @@ impl AbiDecode for [T; 12] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 12] { let first: T = buffer.decode::(); let mut array = [first; 12]; @@ -3640,6 +4429,9 @@ impl AbiDecode for [T; 13] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 13] { let first: T = buffer.decode::(); let mut array = [first; 13]; @@ -3656,6 +4448,9 @@ impl AbiDecode for [T; 14] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 14] { let first: T = buffer.decode::(); let mut array = [first; 14]; @@ -3672,6 +4467,9 @@ impl AbiDecode for [T; 15] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 15] { let first: T = buffer.decode::(); let mut array = [first; 15]; @@ -3688,6 +4486,9 @@ impl AbiDecode for [T; 16] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 16] { let first: T = buffer.decode::(); let mut array = [first; 16]; @@ -3704,6 +4505,9 @@ impl AbiDecode for [T; 17] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 17] { let first: T = buffer.decode::(); let mut array = [first; 17]; @@ -3720,6 +4524,9 @@ impl AbiDecode for [T; 18] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 18] { let first: T = buffer.decode::(); let mut array = [first; 18]; @@ -3736,6 +4543,9 @@ impl AbiDecode for [T; 19] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 19] { let first: T = buffer.decode::(); let mut array = [first; 19]; @@ -3752,6 +4562,9 @@ impl AbiDecode for [T; 20] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 20] { let first: T = buffer.decode::(); let mut array = [first; 20]; @@ -3768,6 +4581,9 @@ impl AbiDecode for [T; 21] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 21] { let first: T = buffer.decode::(); let mut array = [first; 21]; @@ -3784,6 +4600,9 @@ impl AbiDecode for [T; 22] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 22] { let first: T = buffer.decode::(); let mut array = [first; 22]; @@ -3800,6 +4619,9 @@ impl AbiDecode for [T; 23] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 23] { let first: T = buffer.decode::(); let mut array = [first; 23]; @@ -3816,6 +4638,9 @@ impl AbiDecode for [T; 24] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 24] { let first: T = buffer.decode::(); let mut array = [first; 24]; @@ -3832,6 +4657,9 @@ impl AbiDecode for [T; 25] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 25] { let first: T = buffer.decode::(); let mut array = [first; 25]; @@ -3848,6 +4676,9 @@ impl AbiDecode for [T; 26] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 26] { let first: T = buffer.decode::(); let mut array = [first; 26]; @@ -3864,6 +4695,9 @@ impl AbiDecode for [T; 27] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 27] { let first: T = buffer.decode::(); let mut array = [first; 27]; @@ -3880,6 +4714,9 @@ impl AbiDecode for [T; 28] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 28] { let first: T = buffer.decode::(); let mut array = [first; 28]; @@ -3896,6 +4733,9 @@ impl AbiDecode for [T; 29] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 29] { let first: T = buffer.decode::(); let mut array = [first; 29]; @@ -3912,6 +4752,9 @@ impl AbiDecode for [T; 30] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 30] { let first: T = buffer.decode::(); let mut array = [first; 30]; @@ -3928,6 +4771,9 @@ impl AbiDecode for [T; 31] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 31] { let first: T = buffer.decode::(); let mut array = [first; 31]; @@ -3944,6 +4790,9 @@ impl AbiDecode for [T; 32] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 32] { let first: T = buffer.decode::(); let mut array = [first; 32]; @@ -3960,6 +4809,9 @@ impl AbiDecode for [T; 33] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 33] { let first: T = buffer.decode::(); let mut array = [first; 33]; @@ -3976,6 +4828,9 @@ impl AbiDecode for [T; 34] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 34] { let first: T = buffer.decode::(); let mut array = [first; 34]; @@ -3992,6 +4847,9 @@ impl AbiDecode for [T; 35] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 35] { let first: T = buffer.decode::(); let mut array = [first; 35]; @@ -4008,6 +4866,9 @@ impl AbiDecode for [T; 36] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 36] { let first: T = buffer.decode::(); let mut array = [first; 36]; @@ -4024,6 +4885,9 @@ impl AbiDecode for [T; 37] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 37] { let first: T = buffer.decode::(); let mut array = [first; 37]; @@ -4040,6 +4904,9 @@ impl AbiDecode for [T; 38] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 38] { let first: T = buffer.decode::(); let mut array = [first; 38]; @@ -4056,6 +4923,9 @@ impl AbiDecode for [T; 39] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 39] { let first: T = buffer.decode::(); let mut array = [first; 39]; @@ -4072,6 +4942,9 @@ impl AbiDecode for [T; 40] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 40] { let first: T = buffer.decode::(); let mut array = [first; 40]; @@ -4088,6 +4961,9 @@ impl AbiDecode for [T; 41] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 41] { let first: T = buffer.decode::(); let mut array = [first; 41]; @@ -4104,6 +4980,9 @@ impl AbiDecode for [T; 42] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 42] { let first: T = buffer.decode::(); let mut array = [first; 42]; @@ -4120,6 +4999,9 @@ impl AbiDecode for [T; 43] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 43] { let first: T = buffer.decode::(); let mut array = [first; 43]; @@ -4136,6 +5018,9 @@ impl AbiDecode for [T; 44] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 44] { let first: T = buffer.decode::(); let mut array = [first; 44]; @@ -4152,6 +5037,9 @@ impl AbiDecode for [T; 45] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 45] { let first: T = buffer.decode::(); let mut array = [first; 45]; @@ -4168,6 +5056,9 @@ impl AbiDecode for [T; 46] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 46] { let first: T = buffer.decode::(); let mut array = [first; 46]; @@ -4184,6 +5075,9 @@ impl AbiDecode for [T; 47] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 47] { let first: T = buffer.decode::(); let mut array = [first; 47]; @@ -4200,6 +5094,9 @@ impl AbiDecode for [T; 48] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 48] { let first: T = buffer.decode::(); let mut array = [first; 48]; @@ -4216,6 +5113,9 @@ impl AbiDecode for [T; 49] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 49] { let first: T = buffer.decode::(); let mut array = [first; 49]; @@ -4232,6 +5132,9 @@ impl AbiDecode for [T; 50] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 50] { let first: T = buffer.decode::(); let mut array = [first; 50]; @@ -4248,6 +5151,9 @@ impl AbiDecode for [T; 51] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 51] { let first: T = buffer.decode::(); let mut array = [first; 51]; @@ -4264,6 +5170,9 @@ impl AbiDecode for [T; 52] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 52] { let first: T = buffer.decode::(); let mut array = [first; 52]; @@ -4280,6 +5189,9 @@ impl AbiDecode for [T; 53] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 53] { let first: T = buffer.decode::(); let mut array = [first; 53]; @@ -4296,6 +5208,9 @@ impl AbiDecode for [T; 54] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 54] { let first: T = buffer.decode::(); let mut array = [first; 54]; @@ -4312,6 +5227,9 @@ impl AbiDecode for [T; 55] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 55] { let first: T = buffer.decode::(); let mut array = [first; 55]; @@ -4328,6 +5246,9 @@ impl AbiDecode for [T; 56] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 56] { let first: T = buffer.decode::(); let mut array = [first; 56]; @@ -4344,6 +5265,9 @@ impl AbiDecode for [T; 57] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 57] { let first: T = buffer.decode::(); let mut array = [first; 57]; @@ -4360,6 +5284,9 @@ impl AbiDecode for [T; 58] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 58] { let first: T = buffer.decode::(); let mut array = [first; 58]; @@ -4376,6 +5303,9 @@ impl AbiDecode for [T; 59] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 59] { let first: T = buffer.decode::(); let mut array = [first; 59]; @@ -4392,6 +5322,9 @@ impl AbiDecode for [T; 60] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 60] { let first: T = buffer.decode::(); let mut array = [first; 60]; @@ -4408,6 +5341,9 @@ impl AbiDecode for [T; 61] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 61] { let first: T = buffer.decode::(); let mut array = [first; 61]; @@ -4424,6 +5360,9 @@ impl AbiDecode for [T; 62] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 62] { let first: T = buffer.decode::(); let mut array = [first; 62]; @@ -4440,6 +5379,9 @@ impl AbiDecode for [T; 63] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 63] { let first: T = buffer.decode::(); let mut array = [first; 63]; @@ -4456,6 +5398,9 @@ impl AbiDecode for [T; 64] where T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> [T; 64] { let first: T = buffer.decode::(); let mut array = [first; 64]; @@ -4470,6 +5415,9 @@ where // END ARRAY_DECODE impl AbiDecode for () { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut _buffer: BufferReader) -> () { () } @@ -4480,6 +5428,9 @@ impl AbiDecode for (A, ) where A: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { (A::abi_decode(buffer), ) } @@ -4489,6 +5440,9 @@ where A: AbiDecode, B: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { (A::abi_decode(buffer), B::abi_decode(buffer)) } @@ -4499,6 +5453,9 @@ where B: AbiDecode, C: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { (A::abi_decode(buffer), B::abi_decode(buffer), C::abi_decode(buffer)) } @@ -4510,6 +5467,9 @@ where C: AbiDecode, D: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( A::abi_decode(buffer), @@ -4527,6 +5487,9 @@ where D: AbiDecode, E: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( A::abi_decode(buffer), @@ -4546,6 +5509,9 @@ where E: AbiDecode, F: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( A::abi_decode(buffer), @@ -4567,6 +5533,9 @@ where F: AbiDecode, G: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( A::abi_decode(buffer), @@ -4590,6 +5559,9 @@ where G: AbiDecode, H: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( A::abi_decode(buffer), @@ -4615,6 +5587,9 @@ where H: AbiDecode, I: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( A::abi_decode(buffer), @@ -4642,6 +5617,9 @@ where I: AbiDecode, J: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( A::abi_decode(buffer), @@ -4671,6 +5649,9 @@ where J: AbiDecode, K: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( A::abi_decode(buffer), @@ -4702,6 +5683,9 @@ where K: AbiDecode, L: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( A::abi_decode(buffer), @@ -4735,6 +5719,9 @@ where L: AbiDecode, M: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( A::abi_decode(buffer), @@ -4770,6 +5757,9 @@ where M: AbiDecode, N: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( A::abi_decode(buffer), @@ -4807,6 +5797,9 @@ where N: AbiDecode, O: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( A::abi_decode(buffer), @@ -4846,6 +5839,9 @@ where O: AbiDecode, P: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( A::abi_decode(buffer), @@ -4887,6 +5883,9 @@ where P: AbiDecode, Q: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( A::abi_decode(buffer), @@ -4930,6 +5929,9 @@ where Q: AbiDecode, R: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( A::abi_decode(buffer), @@ -4975,6 +5977,9 @@ where R: AbiDecode, S: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( A::abi_decode(buffer), @@ -5022,6 +6027,9 @@ where S: AbiDecode, T: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( A::abi_decode(buffer), @@ -5071,6 +6079,9 @@ where T: AbiDecode, U: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( A::abi_decode(buffer), @@ -5122,6 +6133,9 @@ where U: AbiDecode, V: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( A::abi_decode(buffer), @@ -5175,6 +6189,9 @@ where V: AbiDecode, W: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( A::abi_decode(buffer), @@ -5230,6 +6247,9 @@ where W: AbiDecode, X: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( A::abi_decode(buffer), @@ -5287,6 +6307,9 @@ where X: AbiDecode, Y: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( A::abi_decode(buffer), @@ -5346,6 +6369,9 @@ where Y: AbiDecode, Z: AbiDecode, { + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( A::abi_decode(buffer), diff --git a/sway-lib-std/src/string.sw b/sway-lib-std/src/string.sw index e946593b9ee..060d24a6d03 100644 --- a/sway-lib-std/src/string.sw +++ b/sway-lib-std/src/string.sw @@ -376,12 +376,14 @@ impl Hash for String { } impl AbiEncode for String { + fn is_encode_trivial() -> bool { false } fn abi_encode(self, buffer: Buffer) -> Buffer { self.bytes.abi_encode(buffer) } } impl AbiDecode for String { + fn is_decode_trivial() -> bool { false } fn abi_decode(ref mut buffer: BufferReader) -> Self { String { bytes: Bytes::abi_decode(buffer), diff --git a/sway-lib-std/src/vec.sw b/sway-lib-std/src/vec.sw index 5b7183b0951..a8e8907a450 100644 --- a/sway-lib-std/src/vec.sw +++ b/sway-lib-std/src/vec.sw @@ -818,6 +818,7 @@ impl AbiEncode for Vec where T: AbiEncode, { + fn is_encode_trivial() -> bool { false } fn abi_encode(self, buffer: Buffer) -> Buffer { let len = self.len; let mut buffer = len.abi_encode(buffer); @@ -837,6 +838,7 @@ impl AbiDecode for Vec where T: AbiDecode, { + fn is_decode_trivial() -> bool { false } fn abi_decode(ref mut buffer: BufferReader) -> Vec { let len = u64::abi_decode(buffer); diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw index e935e0cc7f8..5381738711e 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw @@ -31,6 +31,7 @@ struct CustomAbiEncode { } impl AbiEncode for CustomAbiEncode { + fn is_encode_trivial() -> bool { false } fn abi_encode(self, buffer: Buffer) -> Buffer { 77u64.abi_encode(buffer) } From b07c4ccc7d3803cbabf172c5e723536cfff009a2 Mon Sep 17 00:00:00 2001 From: Daniel Frederico Lins Leite Date: Thu, 20 Nov 2025 09:54:42 -0300 Subject: [PATCH 02/27] fix tests --- sway-lib-std/src/bytes.sw | 8 +- sway-lib-std/src/string.sw | 8 +- sway-lib-std/src/vec.sw | 8 +- .../language/array/array_repeat/stdout.snap | 67 ++-- .../configurable_dedup_decode/stdout.snap | 43 ++- .../should_pass/language/logging/stdout.snap | 359 ++++++++++-------- .../main_args/main_args_one_u64/stdout.snap | 25 +- .../main_args/main_args_two_u64/stdout.snap | 29 +- .../main_args_various_types/stdout.snap | 245 ++++++------ .../storage_vec_iter_tests/src/impls.sw | 1 + .../result_option_expect/src/main.sw | 1 + 11 files changed, 419 insertions(+), 375 deletions(-) diff --git a/sway-lib-std/src/bytes.sw b/sway-lib-std/src/bytes.sw index 84c6efb5bd2..fda7bdb0af8 100644 --- a/sway-lib-std/src/bytes.sw +++ b/sway-lib-std/src/bytes.sw @@ -1240,14 +1240,18 @@ impl Clone for Bytes { } impl AbiEncode for Bytes { - fn is_encode_trivial() -> bool { false } + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { self.as_raw_slice().abi_encode(buffer) } } impl AbiDecode for Bytes { - fn is_decode_trivial() -> bool { false } + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Bytes { raw_slice::abi_decode(buffer).into() } diff --git a/sway-lib-std/src/string.sw b/sway-lib-std/src/string.sw index 060d24a6d03..54869c93a27 100644 --- a/sway-lib-std/src/string.sw +++ b/sway-lib-std/src/string.sw @@ -376,14 +376,18 @@ impl Hash for String { } impl AbiEncode for String { - fn is_encode_trivial() -> bool { false } + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { self.bytes.abi_encode(buffer) } } impl AbiDecode for String { - fn is_decode_trivial() -> bool { false } + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Self { String { bytes: Bytes::abi_decode(buffer), diff --git a/sway-lib-std/src/vec.sw b/sway-lib-std/src/vec.sw index a8e8907a450..c0f0c94a96b 100644 --- a/sway-lib-std/src/vec.sw +++ b/sway-lib-std/src/vec.sw @@ -818,7 +818,9 @@ impl AbiEncode for Vec where T: AbiEncode, { - fn is_encode_trivial() -> bool { false } + fn is_encode_trivial() -> bool { + false + } fn abi_encode(self, buffer: Buffer) -> Buffer { let len = self.len; let mut buffer = len.abi_encode(buffer); @@ -838,7 +840,9 @@ impl AbiDecode for Vec where T: AbiDecode, { - fn is_decode_trivial() -> bool { false } + fn is_decode_trivial() -> bool { + false + } fn abi_decode(ref mut buffer: BufferReader) -> Vec { let len = u64::abi_decode(buffer); diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/array/array_repeat/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/array/array_repeat/stdout.snap index 95263d45937..fba408be37d 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/array/array_repeat/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/array/array_repeat/stdout.snap @@ -1,5 +1,6 @@ --- source: test/src/snapshot/mod.rs +snapshot_kind: text --- > forc build --path test/src/e2e_vm_tests/test_programs/should_pass/language/array/array_repeat --experimental const_generics --ir final --asm final --bytecode --release exit status: 0 @@ -547,12 +548,12 @@ script { !116 = span !109 1257 1262 !117 = (!107 !108 !110 !111 !116) !118 = "test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-assert/src/codec.sw" -!119 = span !118 71747 71920 -!120 = fn_name_span !118 71754 71764 +!119 = span !118 81563 81736 +!120 = fn_name_span !118 81570 81580 !121 = (!119 !120 !48) -!122 = span !118 71862 71866 -!123 = span !118 71862 71872 -!124 = fn_call_path_span !118 71867 71870 +!122 = span !118 81678 81682 +!123 = span !118 81678 81688 +!124 = fn_call_path_span !118 81683 81686 !125 = (!123 !124) !126 = span !109 2922 2926 !127 = (!123 !124 !126) @@ -563,9 +564,9 @@ script { !132 = (!123 !124 !128 !129 !131) !133 = span !109 2928 2929 !134 = (!123 !124 !133) -!135 = span !118 71874 71878 -!136 = span !118 71874 71890 -!137 = fn_call_path_span !118 71879 71882 +!135 = span !118 81690 81694 +!136 = span !118 81690 81706 +!137 = fn_call_path_span !118 81695 81698 !138 = (!136 !137) !139 = span !109 3420 3424 !140 = (!136 !137 !139) @@ -573,32 +574,32 @@ script { !142 = fn_call_path_span !109 3409 3419 !143 = (!136 !137 !141 !142) !144 = (!136 !137 !141 !142 !131) -!145 = span !118 71837 71891 -!146 = fn_call_path_span !118 71837 71861 +!145 = span !118 81653 81707 +!146 = fn_call_path_span !118 81653 81677 !147 = span !118 735 755 !148 = (!145 !146 !147) !149 = (!145 !146) -!150 = span !118 71820 71892 -!151 = span !118 71911 71917 -!152 = span !118 71897 71918 -!153 = fn_call_path_span !118 71897 71910 -!154 = span !118 90639 90652 +!150 = span !118 81636 81708 +!151 = span !118 81727 81733 +!152 = span !118 81713 81734 +!153 = fn_call_path_span !118 81713 81726 +!154 = span !118 104823 104836 !155 = (!152 !153 !154) !156 = (!152 !153) -!157 = span !118 90623 90653 +!157 = span !118 104807 104837 !158 = (!152 !153 !157) -!159 = span !118 90738 90743 +!159 = span !118 104922 104927 !160 = (!152 !153 !159) -!161 = span !118 90767 90768 -!162 = span !118 90785 90790 -!163 = fn_call_path_span !118 90787 90788 +!161 = span !118 104951 104952 +!162 = span !118 104969 104974 +!163 = fn_call_path_span !118 104971 104972 !164 = (!152 !153 !162 !163) -!165 = span !118 90865 90885 -!166 = fn_call_path_span !118 90872 90878 +!165 = span !118 105049 105069 +!166 = fn_call_path_span !118 105056 105062 !167 = span !118 3959 3978 !168 = fn_call_path_span !118 3959 3972 -!169 = span !118 73537 73556 -!170 = fn_call_path_span !118 73544 73548 +!169 = span !118 83731 83750 +!170 = fn_call_path_span !118 83738 83742 !171 = span !118 625 637 !172 = (!152 !153 !165 !166 !167 !168 !169 !170 !171) !173 = (!152 !153 !165 !166 !167 !168 !169 !170) @@ -610,11 +611,11 @@ script { !179 = (!152 !153 !165 !166 !167 !168 !169 !170) !180 = span !118 3747 3786 !181 = (!152 !153 !165 !166 !167 !168 !169 !170 !180) -!182 = span !118 90857 90885 +!182 = span !118 105041 105069 !183 = (!152 !153 !182) -!184 = span !118 90904 90905 -!185 = span !118 90899 90905 -!186 = fn_call_path_span !118 90901 90903 +!184 = span !118 105088 105089 +!185 = span !118 105083 105089 +!186 = fn_call_path_span !118 105085 105087 !187 = (!152 !153 !185 !186) !188 = "test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-assert/src/logging.sw" !189 = span !188 591 596 @@ -622,13 +623,13 @@ script { !191 = fn_name_span !188 584 587 !192 = (!190 !191) !193 = span !188 642 647 -!194 = span !118 71080 71084 +!194 = span !118 80896 80900 !195 = (!193 !194) -!196 = span !118 71058 71173 +!196 = span !118 80874 80989 !197 = (!193 !196) -!198 = span !118 71100 71109 -!199 = span !118 71123 71138 -!200 = span !118 71190 71201 +!198 = span !118 80916 80925 +!199 = span !118 80939 80954 +!200 = span !118 81006 81017 !201 = (!193 !200) !202 = (!193 !200) !203 = (!193 !200) diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/stdout.snap index 6a8b52d8204..29d9528c869 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/stdout.snap @@ -1,5 +1,6 @@ --- source: test/src/snapshot/mod.rs +snapshot_kind: text --- > forc build --path test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode --release --ir final --asm final exit status: 0 @@ -81,26 +82,26 @@ script { !1 = span !0 177 182 !2 = span !0 136 143 !3 = "sway-lib-std/src/codec.sw" -!4 = span !3 71969 71972 -!5 = span !3 71983 71986 -!6 = span !3 71993 71999 -!7 = span !3 71939 72272 -!8 = fn_name_span !3 71946 71965 +!4 = span !3 81785 81788 +!5 = span !3 81799 81802 +!6 = span !3 81809 81815 +!7 = span !3 81755 82088 +!8 = fn_name_span !3 81762 81781 !9 = inline "never" !10 = (!7 !8 !9) -!11 = span !3 72057 72091 -!12 = fn_call_path_span !3 72057 72081 +!11 = span !3 81873 81907 +!12 = fn_call_path_span !3 81873 81897 !13 = span !3 735 755 !14 = (!11 !12 !13) !15 = (!11 !12) !16 = (!11 !12 !13) -!17 = span !3 72122 72128 -!18 = span !3 72108 72129 -!19 = fn_call_path_span !3 72108 72121 -!20 = span !3 116142 116163 -!21 = fn_call_path_span !3 116142 116155 -!22 = span !3 72721 72749 -!23 = fn_call_path_span !3 72728 72740 +!17 = span !3 81938 81944 +!18 = span !3 81924 81945 +!19 = fn_call_path_span !3 81924 81937 +!20 = span !3 134145 134166 +!21 = fn_call_path_span !3 134145 134158 +!22 = span !3 82744 82772 +!23 = fn_call_path_span !3 82751 82763 !24 = span !3 625 637 !25 = (!18 !19 !20 !21 !22 !23 !24) !26 = (!18 !19 !20 !21 !22 !23) @@ -112,14 +113,14 @@ script { !32 = (!18 !19 !20 !21 !22 !23) !33 = span !3 2857 2896 !34 = (!18 !19 !20 !21 !22 !23 !33) -!35 = span !3 116141 116166 +!35 = span !3 134144 134169 !36 = (!18 !19 !35) !37 = (!18 !19 !35) !38 = (!18 !19 !35) -!39 = span !3 72188 72192 -!40 = span !3 72178 72193 -!41 = span !3 72135 72270 -!42 = span !3 72243 72263 +!39 = span !3 82004 82008 +!40 = span !3 81994 82009 +!41 = span !3 81951 82086 +!42 = span !3 82059 82079 !43 = "test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/src/main..sw" !44 = span !43 0 130 !45 = fn_name_span !43 7 14 @@ -130,9 +131,9 @@ script { !50 = span !43 83 116 !51 = fn_call_path_span !43 83 100 !52 = (!50 !51) -!53 = span !3 71584 71588 +!53 = span !3 81400 81404 !54 = (!50 !51 !53) -!55 = span !3 71568 71595 +!55 = span !3 81384 81411 !56 = (!50 !51 !55) !57 = span !0 202 246 !58 = fn_name_span !0 205 209 diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/logging/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/logging/stdout.snap index 3e5f4ad0298..8ca875afa65 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/logging/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/logging/stdout.snap @@ -1,5 +1,6 @@ --- source: test/src/snapshot/mod.rs +snapshot_kind: text --- > forc build --path test/src/e2e_vm_tests/test_programs/should_pass/language/logging --release --ir final exit status: 0 @@ -1085,20 +1086,20 @@ script { !8 = fn_call_path_span !0 83 100 !9 = (!7 !8) !10 = "test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-vec/src/codec.sw" -!11 = span !10 71584 71588 +!11 = span !10 81400 81404 !12 = (!7 !8 !11) -!13 = span !10 71568 71595 +!13 = span !10 81384 81411 !14 = (!7 !8 !13) !15 = "test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw" -!16 = span !15 549 954 -!17 = fn_name_span !15 552 556 +!16 = span !15 594 999 +!17 = fn_name_span !15 597 601 !18 = (!16 !17) -!19 = span !15 582 586 -!20 = span !15 572 587 -!21 = fn_call_path_span !15 572 581 +!19 = span !15 627 631 +!20 = span !15 617 632 +!21 = fn_call_path_span !15 617 626 !22 = (!20 !21) -!23 = span !15 606 616 -!24 = fn_call_path_span !15 606 614 +!23 = span !15 651 661 +!24 = fn_call_path_span !15 651 659 !25 = "test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-vec/src/vec.sw" !26 = span !25 4111 4124 !27 = fn_call_path_span !25 4111 4122 @@ -1124,59 +1125,59 @@ script { !47 = (!23 !24) !48 = span !25 4143 4144 !49 = (!23 !24 !45) -!50 = span !15 622 623 -!51 = span !15 629 630 -!52 = span !15 622 631 -!53 = fn_call_path_span !15 624 628 +!50 = span !15 667 668 +!51 = span !15 674 675 +!52 = span !15 667 676 +!53 = fn_call_path_span !15 669 673 !54 = (!52 !53) -!55 = span !15 637 638 -!56 = span !15 644 645 -!57 = span !15 637 646 -!58 = fn_call_path_span !15 639 643 +!55 = span !15 682 683 +!56 = span !15 689 690 +!57 = span !15 682 691 +!58 = fn_call_path_span !15 684 688 !59 = (!57 !58) -!60 = span !15 652 653 -!61 = span !15 659 660 -!62 = span !15 652 661 -!63 = fn_call_path_span !15 654 658 +!60 = span !15 697 698 +!61 = span !15 704 705 +!62 = span !15 697 706 +!63 = fn_call_path_span !15 699 703 !64 = (!62 !63) -!65 = span !15 745 746 -!66 = span !15 759 765 -!67 = span !15 678 795 -!68 = span !15 692 693 -!69 = span !15 706 707 -!70 = span !15 720 721 -!71 = span !15 734 735 -!72 = span !15 812 838 -!73 = span !15 828 832 +!65 = span !15 790 791 +!66 = span !15 804 810 +!67 = span !15 723 840 +!68 = span !15 737 738 +!69 = span !15 751 752 +!70 = span !15 765 766 +!71 = span !15 779 780 +!72 = span !15 857 883 +!73 = span !15 873 877 !74 = span !15 203 239 -!75 = span !15 860 886 -!76 = span !15 876 880 -!77 = span !15 951 952 -!78 = span !15 499 503 -!79 = span !15 483 547 -!80 = fn_name_span !15 486 495 +!75 = span !15 905 931 +!76 = span !15 921 925 +!77 = span !15 996 997 +!78 = span !15 544 548 +!79 = span !15 528 592 +!80 = fn_name_span !15 531 540 !81 = inline "never" !82 = (!79 !80 !81) -!83 = span !15 539 543 -!84 = span !10 71080 71084 +!83 = span !15 584 588 +!84 = span !10 80896 80900 !85 = (!83 !84) -!86 = span !10 71058 71173 +!86 = span !10 80874 80989 !87 = (!83 !86) -!88 = span !10 71100 71109 -!89 = span !10 71123 71138 -!90 = span !10 71190 71201 +!88 = span !10 80916 80925 +!89 = span !10 80939 80954 +!90 = span !10 81006 81017 !91 = (!83 !90) !92 = (!83 !90) !93 = (!83 !90) !94 = (!83 !90) !95 = (!83 !90) -!96 = span !10 4732 4736 -!97 = span !10 4718 4863 -!98 = fn_name_span !10 4721 4731 +!96 = span !10 5200 5204 +!97 = span !10 5186 5331 +!98 = fn_name_span !10 5189 5199 !99 = (!97 !98) -!100 = span !10 4826 4832 +!100 = span !10 5294 5300 !101 = span !10 87 114 -!102 = span !10 4774 4857 +!102 = span !10 5242 5325 !103 = span !10 160 260 !104 = fn_name_span !10 167 170 !105 = (!103 !104) @@ -1253,31 +1254,31 @@ script { !176 = fn_call_path_span !25 6194 6196 !177 = (!175 !176) !178 = (!79 !80 !81) -!179 = span !10 71274 71278 +!179 = span !10 81090 81094 !180 = (!83 !179) -!181 = span !10 71274 71304 -!182 = fn_call_path_span !10 71279 71289 +!181 = span !10 81090 81120 +!182 = fn_call_path_span !10 81095 81105 !183 = (!83 !181 !182) !184 = (!83 !181 !182) -!185 = span !0 204 208 +!185 = span !0 309 313 !186 = (!83 !181 !182 !185) !187 = span !15 116 122 !188 = (!83 !181 !182 !187) !189 = (!83 !181 !182) -!190 = span !0 222 228 +!190 = span !0 327 333 !191 = (!83 !181 !182 !190) -!192 = span !0 191 230 +!192 = span !0 296 335 !193 = (!83 !181 !182 !192) -!194 = span !0 244 248 +!194 = span !0 349 353 !195 = (!83 !181 !182 !194) !196 = span !15 128 134 !197 = (!83 !181 !182 !196) -!198 = span !0 262 268 +!198 = span !0 367 373 !199 = (!83 !181 !182 !198) -!200 = span !0 244 269 -!201 = fn_call_path_span !0 251 261 +!200 = span !0 349 374 +!201 = fn_call_path_span !0 356 366 !202 = (!83 !181 !182 !200 !201) -!203 = span !10 5004 5010 +!203 = span !10 5529 5535 !204 = (!83 !181 !182 !200 !201 !203) !205 = (!83 !181 !182 !200 !201 !101) !206 = (!83 !181 !182 !200 !201) @@ -1303,21 +1304,21 @@ script { !226 = (!83 !181 !182 !200 !201) !227 = (!83 !181 !182 !200 !201) !228 = (!83 !181 !182 !200 !201) -!229 = span !10 4952 5035 +!229 = span !10 5477 5560 !230 = (!83 !181 !182 !200 !201 !229) !231 = (!83 !181 !182 !200 !201) -!232 = span !0 231 270 +!232 = span !0 336 375 !233 = (!83 !181 !182 !232) -!234 = span !0 284 288 +!234 = span !0 389 393 !235 = (!83 !181 !182 !234) !236 = span !15 140 146 !237 = (!83 !181 !182 !236) -!238 = span !0 302 308 +!238 = span !0 407 413 !239 = (!83 !181 !182 !238) -!240 = span !0 284 309 -!241 = fn_call_path_span !0 291 301 +!240 = span !0 389 414 +!241 = fn_call_path_span !0 396 406 !242 = (!83 !181 !182 !240 !241) -!243 = span !10 5182 5188 +!243 = span !10 5764 5770 !244 = (!83 !181 !182 !240 !241 !243) !245 = (!83 !181 !182 !240 !241 !101) !246 = (!83 !181 !182 !240 !241) @@ -1347,22 +1348,22 @@ script { !270 = (!83 !181 !182 !240 !241) !271 = (!83 !181 !182 !240 !241) !272 = (!83 !181 !182 !240 !241) -!273 = span !10 5130 5213 +!273 = span !10 5712 5795 !274 = (!83 !181 !182 !240 !241 !273) !275 = (!83 !181 !182 !240 !241) -!276 = span !0 271 310 +!276 = span !0 376 415 !277 = (!83 !181 !182 !276) -!278 = span !0 324 328 +!278 = span !0 429 433 !279 = (!83 !181 !182 !278) !280 = span !15 152 157 !281 = (!83 !181 !182 !280) !282 = (!83 !181 !182) -!283 = span !0 342 348 +!283 = span !0 447 453 !284 = (!83 !181 !182 !283) -!285 = span !0 324 349 -!286 = fn_call_path_span !0 331 341 +!285 = span !0 429 454 +!286 = fn_call_path_span !0 436 446 !287 = (!83 !181 !182 !285 !286) -!288 = span !10 5359 5365 +!288 = span !10 5998 6004 !289 = (!83 !181 !182 !285 !286 !288) !290 = (!83 !181 !182 !285 !286 !101) !291 = (!83 !181 !182 !285 !286) @@ -1389,43 +1390,43 @@ script { !312 = (!83 !181 !182 !285 !286) !313 = (!83 !181 !182 !285 !286) !314 = (!83 !181 !182 !285 !286) -!315 = span !10 5307 5390 +!315 = span !10 5946 6029 !316 = (!83 !181 !182 !285 !286 !315) !317 = (!83 !181 !182 !285 !286) -!318 = span !0 311 350 +!318 = span !0 416 455 !319 = (!83 !181 !182 !318) -!320 = span !0 364 368 +!320 = span !0 469 473 !321 = (!83 !181 !182 !320) !322 = span !15 163 174 !323 = (!83 !181 !182 !322) -!324 = span !0 382 388 +!324 = span !0 487 493 !325 = (!83 !181 !182 !324) -!326 = span !0 364 389 -!327 = fn_call_path_span !0 371 381 +!326 = span !0 469 494 +!327 = fn_call_path_span !0 476 486 !328 = (!83 !181 !182 !326 !327) !329 = (!83 !181 !182 !326 !327) -!330 = span !25 21296 21300 +!330 = span !25 21353 21357 !331 = (!83 !181 !182 !326 !327 !330) !332 = (!83 !181 !182 !326 !327 !116) !333 = (!83 !181 !182 !326 !327) -!334 = span !25 21346 21352 +!334 = span !25 21403 21409 !335 = (!83 !181 !182 !326 !327 !334) -!336 = span !25 21314 21354 +!336 = span !25 21371 21411 !337 = (!83 !181 !182 !326 !327 !336) -!338 = span !25 21376 21377 +!338 = span !25 21433 21434 !339 = (!83 !181 !182 !326 !327) !340 = (!83 !181 !182 !285 !286) !341 = (!83 !181 !182 !285 !286) !342 = (!83 !181 !182 !285 !286) !343 = (!83 !181 !182 !285 !286) -!344 = span !25 21393 21400 -!345 = fn_call_path_span !25 21395 21396 +!344 = span !25 21450 21457 +!345 = fn_call_path_span !25 21452 21453 !346 = (!83 !181 !182 !326 !327 !344 !345) !347 = (!83 !181 !182 !326 !327) -!348 = span !25 21426 21430 +!348 = span !25 21483 21487 !349 = (!83 !181 !182 !326 !327 !348) -!350 = span !25 21426 21447 -!351 = fn_call_path_span !25 21431 21444 +!350 = span !25 21483 21504 +!351 = fn_call_path_span !25 21488 21501 !352 = (!83 !181 !182 !326 !327 !350 !351) !353 = span !25 8256 8260 !354 = (!83 !181 !182 !326 !327 !350 !351 !353) @@ -1441,30 +1442,30 @@ script { !364 = span !154 2650 2739 !365 = (!83 !181 !182 !326 !327 !350 !351 !362 !363 !364) !366 = span !154 2688 2701 -!367 = span !25 21486 21492 +!367 = span !25 21543 21549 !368 = (!83 !181 !182 !326 !327 !367) -!369 = span !25 21461 21493 +!369 = span !25 21518 21550 !370 = (!83 !181 !182 !326 !327 !369) -!371 = span !25 21512 21513 -!372 = span !25 21507 21513 -!373 = fn_call_path_span !25 21509 21511 +!371 = span !25 21569 21570 +!372 = span !25 21564 21570 +!373 = fn_call_path_span !25 21566 21568 !374 = (!83 !181 !182 !326 !327 !372 !373) !375 = (!83 !181 !182 !326 !327) -!376 = span !25 21534 21540 +!376 = span !25 21591 21597 !377 = (!83 !181 !182 !326 !327 !376) -!378 = span !0 351 390 +!378 = span !0 456 495 !379 = (!83 !181 !182 !378) -!380 = span !0 404 408 +!380 = span !0 509 513 !381 = (!83 !181 !182 !380) !382 = span !15 180 186 !383 = (!83 !181 !182 !382) -!384 = span !0 422 428 +!384 = span !0 527 533 !385 = (!83 !181 !182 !384) -!386 = span !0 404 429 -!387 = fn_call_path_span !0 411 421 +!386 = span !0 509 534 +!387 = fn_call_path_span !0 516 526 !388 = (!83 !181 !182 !386 !387) !389 = (!83 !181 !182 !386 !387) -!390 = span !10 5573 5579 +!390 = span !10 6269 6275 !391 = (!83 !181 !182 !386 !387 !390) !392 = (!83 !181 !182 !386 !387 !101) !393 = (!83 !181 !182 !386 !387) @@ -1474,7 +1475,7 @@ script { !397 = (!83 !181 !182 !386 !387) !398 = (!83 !181 !182 !386 !387) !399 = (!83 !181 !182 !386 !387) -!400 = span !10 5588 5592 +!400 = span !10 6284 6288 !401 = (!83 !181 !182 !386 !387 !400) !402 = (!83 !181 !182 !386 !387) !403 = (!83 !181 !182 !386 !387) @@ -1494,22 +1495,22 @@ script { !417 = (!83 !181 !182 !386 !387) !418 = (!83 !181 !182 !386 !387) !419 = (!83 !181 !182 !386 !387) -!420 = span !10 5521 5604 +!420 = span !10 6217 6300 !421 = (!83 !181 !182 !386 !387 !420) !422 = (!83 !181 !182 !386 !387) -!423 = span !0 391 430 +!423 = span !0 496 535 !424 = (!83 !181 !182 !423) -!425 = span !0 444 448 +!425 = span !0 549 553 !426 = (!83 !181 !182 !425) !427 = span !15 192 199 !428 = (!83 !181 !182 !427) -!429 = span !0 462 468 +!429 = span !0 567 573 !430 = (!83 !181 !182 !429) -!431 = span !0 444 469 -!432 = fn_call_path_span !0 451 461 +!431 = span !0 549 574 +!432 = fn_call_path_span !0 556 566 !433 = (!83 !181 !182 !431 !432) !434 = (!83 !181 !182 !431 !432) -!435 = span !10 4648 4654 +!435 = span !10 5059 5065 !436 = (!83 !181 !182 !431 !432 !435) !437 = (!83 !181 !182 !431 !432 !101) !438 = (!83 !181 !182 !431 !432) @@ -1519,7 +1520,7 @@ script { !442 = (!83 !181 !182 !431 !432) !443 = (!83 !181 !182 !431 !432) !444 = (!83 !181 !182 !431 !432) -!445 = span !10 4663 4667 +!445 = span !10 5074 5078 !446 = (!83 !181 !182 !431 !432 !445) !447 = (!83 !181 !182 !431 !432) !448 = (!83 !181 !182 !431 !432) @@ -1539,16 +1540,16 @@ script { !462 = (!83 !181 !182 !431 !432) !463 = (!83 !181 !182 !431 !432) !464 = (!83 !181 !182 !431 !432) -!465 = span !10 4596 4679 +!465 = span !10 5007 5090 !466 = (!83 !181 !182 !431 !432 !465) !467 = (!83 !181 !182 !431 !432) -!468 = span !0 431 470 +!468 = span !0 536 575 !469 = (!83 !181 !182 !468) -!470 = span !0 492 498 +!470 = span !0 597 603 !471 = (!83 !181 !182 !470) -!472 = span !10 71261 71305 +!472 = span !10 81077 81121 !473 = (!83 !472) -!474 = span !10 71314 71320 +!474 = span !10 81130 81136 !475 = (!83 !474) !476 = (!83 !181 !182 !431 !432) !477 = (!83 !181 !182 !431 !432) @@ -1562,35 +1563,35 @@ script { !485 = (!83 !90) !486 = (!83 !90) !487 = (!83 !90) -!488 = span !0 152 306 -!489 = fn_name_span !0 155 165 +!488 = span !0 257 411 +!489 = fn_name_span !0 260 270 !490 = (!488 !489) !491 = span !15 92 97 !492 = (!79 !80 !81) -!493 = span !0 204 498 +!493 = span !0 309 603 !494 = (!83 !181 !182 !493) !495 = (!83 !181 !182) -!496 = span !0 210 214 -!497 = span !0 217 412 -!498 = fn_call_path_span !0 217 412 +!496 = span !0 315 319 +!497 = span !0 322 517 +!498 = fn_call_path_span !0 322 517 !499 = (!83 !181 !182 !497 !498) !500 = (!83 !181 !182 !497) !501 = (!83 !181 !182 !496) !502 = (!83 !181 !182) -!503 = span !0 287 293 +!503 = span !0 392 398 !504 = (!83 !181 !182 !503) -!505 = span !0 271 275 +!505 = span !0 376 380 !506 = (!83 !181 !182) !507 = (!83 !181 !182 !496) !508 = (!83 !181 !182 !496) !509 = (!83 !181 !182) -!510 = span !0 414 494 -!511 = fn_call_path_span !0 414 494 +!510 = span !0 519 599 +!511 = fn_call_path_span !0 519 599 !512 = (!83 !181 !182 !510 !511) !513 = (!83 !181 !182 !510) -!514 = span !0 464 470 +!514 = span !0 569 575 !515 = (!83 !181 !182 !514) -!516 = span !0 448 452 +!516 = span !0 553 557 !517 = (!83 !181 !182) !518 = (!83 !181 !182 !493) !519 = (!79 !80 !81) @@ -1627,45 +1628,57 @@ warning ____ warning - --> test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw:34:5 + --> test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw:35:5 | -32 | 33 | impl AbiEncode for CustomAbiEncode { -34 | fn abi_encode(self, buffer: Buffer) -> Buffer { +34 | fn is_encode_trivial() -> bool { false } +35 | fn abi_encode(self, buffer: Buffer) -> Buffer { | _____- -35 | | 77u64.abi_encode(buffer) -36 | | } +36 | | 77u64.abi_encode(buffer) +37 | | } | |_____- This method is never called. -37 | } -38 | +38 | } +39 | + | +____ + +warning + --> test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw:34:5 + | +32 | +33 | impl AbiEncode for CustomAbiEncode { +34 | fn is_encode_trivial() -> bool { false } + | ---------------------------------------- This method is never called. +35 | fn abi_encode(self, buffer: Buffer) -> Buffer { +36 | 77u64.abi_encode(buffer) | ____ warning - --> test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw:39:8 + --> test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw:40:8 | -37 | } -38 | -39 | struct NotAutoEncodable { +38 | } +39 | +40 | struct NotAutoEncodable { | ---------------- This struct is never used. -40 | p: raw_ptr -41 | } +41 | p: raw_ptr +42 | } | ____ warning - --> test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw:40:5 + --> test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw:41:5 | -38 | -39 | struct NotAutoEncodable { -40 | p: raw_ptr +39 | +40 | struct NotAutoEncodable { +41 | p: raw_ptr | - This struct field is never accessed. -41 | } -42 | +42 | } +43 | | ____ - Compiled script "logging" with 5 warnings. + Compiled script "logging" with 6 warnings. Finished release [optimized + fuel] target(s) [2.896 KB] in ??? > forc test --path test/src/e2e_vm_tests/test_programs/should_pass/language/logging --release @@ -1675,10 +1688,10 @@ output: Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-vec) Compiling script logging (test/src/e2e_vm_tests/test_programs/should_pass/language/logging) warning: Returned value is ignored - --> test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw:79:5 + --> test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw:80:5 | ... -79 | main(); +80 | main(); | ------ This returns a value which is not assigned to anything and is ignored. | ------ help: The returned value has type "u64". | @@ -1711,45 +1724,57 @@ warning ____ warning - --> test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw:34:5 + --> test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw:35:5 | -32 | 33 | impl AbiEncode for CustomAbiEncode { -34 | fn abi_encode(self, buffer: Buffer) -> Buffer { +34 | fn is_encode_trivial() -> bool { false } +35 | fn abi_encode(self, buffer: Buffer) -> Buffer { | _____- -35 | | 77u64.abi_encode(buffer) -36 | | } +36 | | 77u64.abi_encode(buffer) +37 | | } | |_____- This method is never called. -37 | } -38 | +38 | } +39 | + | +____ + +warning + --> test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw:34:5 + | +32 | +33 | impl AbiEncode for CustomAbiEncode { +34 | fn is_encode_trivial() -> bool { false } + | ---------------------------------------- This method is never called. +35 | fn abi_encode(self, buffer: Buffer) -> Buffer { +36 | 77u64.abi_encode(buffer) | ____ warning - --> test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw:39:8 + --> test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw:40:8 | -37 | } -38 | -39 | struct NotAutoEncodable { +38 | } +39 | +40 | struct NotAutoEncodable { | ---------------- This struct is never used. -40 | p: raw_ptr -41 | } +41 | p: raw_ptr +42 | } | ____ warning - --> test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw:40:5 + --> test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw:41:5 | -38 | -39 | struct NotAutoEncodable { -40 | p: raw_ptr +39 | +40 | struct NotAutoEncodable { +41 | p: raw_ptr | - This struct field is never accessed. -41 | } -42 | +42 | } +43 | | ____ - Compiled script "logging" with 6 warnings. + Compiled script "logging" with 7 warnings. Finished release [optimized + fuel] target(s) [2.912 KB] in ??? Running 1 test, filtered 0 tests diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/stdout.snap index 5d3374353f3..df8e13f7bfd 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/stdout.snap @@ -1,5 +1,6 @@ --- source: test/src/snapshot/mod.rs +snapshot_kind: text --- > forc build --path test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64 --release --ir final --asm final --bytecode exit status: 0 @@ -80,8 +81,8 @@ script { !5 = span !4 1599 1600 !6 = span !0 59 89 !7 = fn_call_path_span !0 59 77 -!8 = span !4 140379 140411 -!9 = fn_call_path_span !4 140379 140409 +!8 = span !4 159807 159839 +!9 = fn_call_path_span !4 159807 159837 !10 = span !4 1582 1606 !11 = (!6 !7 !8 !9 !10) !12 = (!6 !7 !8 !9 !10) @@ -89,14 +90,14 @@ script { !14 = (!6 !7 !8 !9 !13) !15 = (!6 !7 !8 !9) !16 = (!6 !7 !8 !9 !13) -!17 = span !4 140431 140437 +!17 = span !4 159859 159865 !18 = (!6 !7 !17) -!19 = span !4 140417 140438 -!20 = fn_call_path_span !4 140417 140430 -!21 = span !4 116142 116163 -!22 = fn_call_path_span !4 116142 116155 -!23 = span !4 72721 72749 -!24 = fn_call_path_span !4 72728 72740 +!19 = span !4 159845 159866 +!20 = fn_call_path_span !4 159845 159858 +!21 = span !4 134145 134166 +!22 = fn_call_path_span !4 134145 134158 +!23 = span !4 82744 82772 +!24 = fn_call_path_span !4 82751 82763 !25 = span !4 625 637 !26 = (!6 !7 !19 !20 !21 !22 !23 !24 !25) !27 = (!6 !7 !19 !20 !21 !22 !23 !24) @@ -108,7 +109,7 @@ script { !33 = (!6 !7 !19 !20 !21 !22 !23 !24) !34 = span !4 2857 2896 !35 = (!6 !7 !19 !20 !21 !22 !23 !24 !34) -!36 = span !4 116141 116166 +!36 = span !4 134144 134169 !37 = (!6 !7 !19 !20 !36) !38 = (!6 !7 !19 !20 !36) !39 = (!6 !7 !19 !20 !36) @@ -120,9 +121,9 @@ script { !45 = span !0 156 189 !46 = fn_call_path_span !0 156 173 !47 = (!45 !46) -!48 = span !4 71584 71588 +!48 = span !4 81400 81404 !49 = (!45 !46 !48) -!50 = span !4 71568 71595 +!50 = span !4 81384 81411 !51 = (!45 !46 !50) !52 = "test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/src/main.sw" !53 = span !52 17 21 diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/stdout.snap index dbecaaac712..dad5312c440 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/stdout.snap @@ -1,5 +1,6 @@ --- source: test/src/snapshot/mod.rs +snapshot_kind: text --- > forc build --path test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64 --release --ir final --asm final --bytecode exit status: 0 @@ -94,8 +95,8 @@ script { !5 = span !4 1599 1600 !6 = span !0 64 99 !7 = fn_call_path_span !0 64 82 -!8 = span !4 140379 140411 -!9 = fn_call_path_span !4 140379 140409 +!8 = span !4 159807 159839 +!9 = fn_call_path_span !4 159807 159837 !10 = span !4 1582 1606 !11 = (!6 !7 !8 !9 !10) !12 = (!6 !7 !8 !9 !10) @@ -103,14 +104,14 @@ script { !14 = (!6 !7 !8 !9 !13) !15 = (!6 !7 !8 !9) !16 = (!6 !7 !8 !9 !13) -!17 = span !4 140431 140437 +!17 = span !4 159859 159865 !18 = (!6 !7 !17) -!19 = span !4 140417 140438 -!20 = fn_call_path_span !4 140417 140430 -!21 = span !4 116318 116339 -!22 = fn_call_path_span !4 116318 116331 -!23 = span !4 72721 72749 -!24 = fn_call_path_span !4 72728 72740 +!19 = span !4 159845 159866 +!20 = fn_call_path_span !4 159845 159858 +!21 = span !4 134378 134399 +!22 = fn_call_path_span !4 134378 134391 +!23 = span !4 82744 82772 +!24 = fn_call_path_span !4 82751 82763 !25 = span !4 625 637 !26 = (!6 !7 !19 !20 !21 !22 !23 !24 !25) !27 = (!6 !7 !19 !20 !21 !22 !23 !24) @@ -122,15 +123,15 @@ script { !33 = (!6 !7 !19 !20 !21 !22 !23 !24) !34 = span !4 2857 2896 !35 = (!6 !7 !19 !20 !21 !22 !23 !24 !34) -!36 = span !4 116341 116362 -!37 = fn_call_path_span !4 116341 116354 +!36 = span !4 134401 134422 +!37 = fn_call_path_span !4 134401 134414 !38 = (!6 !7 !19 !20 !36 !37 !23 !24) !39 = (!6 !7 !19 !20 !36 !37 !23 !24 !28) !40 = (!6 !7 !19 !20 !36 !37 !23 !24) !41 = (!6 !7 !19 !20 !36 !37 !23 !24) !42 = (!6 !7 !19 !20 !36 !37 !23 !24) !43 = (!6 !7 !19 !20 !36 !37 !23 !24 !34) -!44 = span !4 116317 116363 +!44 = span !4 134377 134423 !45 = (!6 !7 !19 !20 !44) !46 = (!6 !7 !19 !20 !44) !47 = (!6 !7 !19 !20 !44) @@ -146,9 +147,9 @@ script { !57 = span !0 174 207 !58 = fn_call_path_span !0 174 191 !59 = (!57 !58) -!60 = span !4 71584 71588 +!60 = span !4 81400 81404 !61 = (!57 !58 !60) -!62 = span !4 71568 71595 +!62 = span !4 81384 81411 !63 = (!57 !58 !62) !64 = "test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/src/main.sw" !65 = span !64 17 21 diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/stdout.snap index fee4b5281fb..962af163e82 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/stdout.snap @@ -1,5 +1,6 @@ --- source: test/src/snapshot/mod.rs +snapshot_kind: text --- > forc build --path test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types --release --ir final --asm final --bytecode exit status: 0 @@ -828,8 +829,8 @@ script { !5 = span !4 1599 1600 !6 = span !0 80 131 !7 = fn_call_path_span !0 80 98 -!8 = span !4 140379 140411 -!9 = fn_call_path_span !4 140379 140409 +!8 = span !4 159807 159839 +!9 = fn_call_path_span !4 159807 159837 !10 = span !4 1582 1606 !11 = (!6 !7 !8 !9 !10) !12 = (!6 !7 !8 !9 !10) @@ -837,45 +838,45 @@ script { !14 = (!6 !7 !8 !9 !13) !15 = (!6 !7 !8 !9) !16 = (!6 !7 !8 !9 !13) -!17 = span !4 140431 140437 +!17 = span !4 159859 159865 !18 = (!6 !7 !17) -!19 = span !4 140417 140438 -!20 = fn_call_path_span !4 140417 140430 -!21 = span !4 116142 116163 -!22 = fn_call_path_span !4 116142 116155 -!23 = span !4 91755 91765 +!19 = span !4 159845 159866 +!20 = fn_call_path_span !4 159845 159858 +!21 = span !4 134145 134166 +!22 = fn_call_path_span !4 134145 134158 +!23 = span !4 106110 106120 !24 = (!6 !7 !19 !20 !21 !22 !23) -!25 = span !4 91756 91761 +!25 = span !4 106111 106116 !26 = (!6 !7 !19 !20 !21 !22 !25) !27 = (!6 !7 !19 !20 !21 !22) !28 = (!6 !7 !19 !20 !21 !22) -!29 = span !4 91787 91788 +!29 = span !4 106142 106143 !30 = (!6 !7 !19 !20 !21 !22) -!31 = span !4 91808 91809 -!32 = span !4 91804 91809 -!33 = fn_call_path_span !4 91806 91807 +!31 = span !4 106163 106164 +!32 = span !4 106159 106164 +!33 = fn_call_path_span !4 106161 106162 !34 = (!6 !7 !19 !20 !21 !22 !32 !33) !35 = (!6 !7 !19 !20 !21 !22) -!36 = span !4 91824 91855 +!36 = span !4 106179 106210 !37 = (!6 !7 !19 !20 !21 !22 !36) !38 = (!6 !7 !19 !20 !21 !22 !36) -!39 = span !4 91874 91875 -!40 = span !4 91869 91875 -!41 = fn_call_path_span !4 91871 91873 +!39 = span !4 106229 106230 +!40 = span !4 106224 106230 +!41 = fn_call_path_span !4 106226 106228 !42 = (!6 !7 !19 !20 !21 !22 !40 !41) !43 = (!6 !7 !19 !20 !21 !22) -!44 = span !4 91896 91901 +!44 = span !4 106251 106256 !45 = (!6 !7 !19 !20 !21 !22 !44) -!46 = span !4 116141 116166 +!46 = span !4 134144 134169 !47 = (!6 !7 !19 !20 !46) !48 = (!6 !7 !19 !20 !46) !49 = span !0 178 182 !50 = span !0 183 184 !51 = span !0 203 241 !52 = fn_call_path_span !0 203 220 -!53 = span !4 71584 71588 +!53 = span !4 81400 81404 !54 = (!51 !52 !53) -!55 = span !4 71568 71595 +!55 = span !4 81384 81411 !56 = (!51 !52 !55) !57 = span !4 3902 3906 !58 = span !4 3877 3984 @@ -883,19 +884,19 @@ script { !60 = (!58 !59) !61 = span !4 3959 3978 !62 = fn_call_path_span !4 3959 3972 -!63 = span !4 116318 116339 -!64 = fn_call_path_span !4 116318 116331 -!65 = span !0 214 239 -!66 = fn_call_path_span !0 221 227 -!67 = span !4 75296 75316 -!68 = fn_call_path_span !4 75303 75313 +!63 = span !4 134378 134399 +!64 = fn_call_path_span !4 134378 134391 +!65 = span !0 319 344 +!66 = fn_call_path_span !0 326 332 +!67 = span !4 85946 85966 +!68 = fn_call_path_span !4 85953 85963 !69 = span !4 625 637 !70 = (!61 !62 !63 !64 !65 !66 !61 !62 !67 !68 !69) !71 = span !4 3190 3207 !72 = (!61 !62 !63 !64 !65 !66 !61 !62 !67 !68 !71) !73 = (!61 !62 !63 !64 !65 !66 !61 !62 !67 !68 !71) !74 = (!61 !62 !63 !64 !65 !66 !61 !62 !67 !68 !71) -!75 = span !4 75314 75315 +!75 = span !4 85964 85965 !76 = (!61 !62 !63 !64 !65 !66 !61 !62 !67 !68 !71) !77 = span !4 3169 3248 !78 = (!61 !62 !63 !64 !65 !66 !61 !62 !67 !68 !77) @@ -906,12 +907,12 @@ script { !83 = (!61 !62 !63 !64 !65 !66 !61 !62 !67 !68 !82) !84 = span !4 3310 3315 !85 = (!61 !62 !63 !64 !65 !66 !61 !62 !67 !68 !84) -!86 = span !4 75285 75317 +!86 = span !4 85935 85967 !87 = (!61 !62 !63 !64 !65 !66 !61 !62 !86) -!88 = span !4 75333 75337 +!88 = span !4 85983 85987 !89 = (!61 !62 !63 !64 !65 !66 !61 !62 !88) -!90 = span !4 75333 75343 -!91 = fn_call_path_span !4 75338 75341 +!90 = span !4 85983 85993 +!91 = fn_call_path_span !4 85988 85991 !92 = (!61 !62 !63 !64 !65 !66 !61 !62 !90 !91) !93 = "sway-lib-std/src/raw_slice.sw" !94 = span !93 2922 2926 @@ -925,15 +926,15 @@ script { !102 = span !93 2928 2929 !103 = (!61 !62 !63 !64 !65 !66 !61 !62 !90 !91 !102) !104 = (!61 !62 !63 !64 !65 !66 !61 !62 !90 !91) -!105 = span !0 202 242 +!105 = span !0 307 347 !106 = (!61 !62 !63 !64 !105) !107 = (!61 !62 !63 !64) -!108 = span !4 116341 116362 -!109 = fn_call_path_span !4 116341 116354 -!110 = span !0 224 246 -!111 = fn_call_path_span !0 231 237 -!112 = span !4 72721 72749 -!113 = fn_call_path_span !4 72728 72740 +!108 = span !4 134401 134422 +!109 = fn_call_path_span !4 134401 134414 +!110 = span !0 329 351 +!111 = fn_call_path_span !0 336 342 +!112 = span !4 82744 82772 +!113 = fn_call_path_span !4 82751 82763 !114 = (!61 !62 !108 !109 !110 !111 !61 !62 !112 !113) !115 = span !4 2766 2847 !116 = (!61 !62 !108 !109 !110 !111 !61 !62 !112 !113 !115) @@ -943,9 +944,9 @@ script { !120 = (!61 !62 !108 !109 !110 !111 !61 !62 !112 !113) !121 = span !4 2857 2896 !122 = (!61 !62 !108 !109 !110 !111 !61 !62 !112 !113 !121) -!123 = span !0 264 265 -!124 = span !0 264 313 -!125 = fn_call_path_span !0 264 313 +!123 = span !0 369 370 +!124 = span !0 369 418 +!125 = fn_call_path_span !0 369 418 !126 = (!61 !62 !108 !109 !124 !125) !127 = (!61 !62 !108 !109 !124) !128 = "test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/src/main.sw" @@ -953,8 +954,8 @@ script { !130 = (!61 !62 !108 !109 !129) !131 = (!61 !62 !108 !109 !129) !132 = (!61 !62 !108 !109 !129) -!133 = span !0 289 311 -!134 = fn_call_path_span !0 296 302 +!133 = span !0 394 416 +!134 = fn_call_path_span !0 401 407 !135 = (!61 !62 !108 !109 !133 !134 !61 !62 !112 !113) !136 = (!61 !62 !108 !109 !133 !134 !61 !62 !112 !113 !115) !137 = (!61 !62 !108 !109 !133 !134 !61 !62 !112 !113) @@ -964,16 +965,16 @@ script { !141 = (!61 !62 !108 !109 !129) !142 = (!61 !62 !108 !109 !129) !143 = (!61 !62 !108 !109) -!144 = span !0 315 316 -!145 = span !0 315 364 -!146 = fn_call_path_span !0 315 364 +!144 = span !0 420 421 +!145 = span !0 420 469 +!146 = fn_call_path_span !0 420 469 !147 = (!61 !62 !108 !109 !145 !146) !148 = (!61 !62 !108 !109 !145) !149 = (!61 !62 !108 !109 !129) !150 = (!61 !62 !108 !109 !129) !151 = (!61 !62 !108 !109 !129) -!152 = span !0 340 362 -!153 = fn_call_path_span !0 347 353 +!152 = span !0 445 467 +!153 = fn_call_path_span !0 452 458 !154 = (!61 !62 !108 !109 !152 !153 !61 !62 !112 !113) !155 = (!61 !62 !108 !109 !152 !153 !61 !62 !112 !113 !115) !156 = (!61 !62 !108 !109 !152 !153 !61 !62 !112 !113) @@ -983,10 +984,10 @@ script { !160 = (!61 !62 !108 !109 !129) !161 = (!61 !62 !108 !109 !129) !162 = (!61 !62 !108 !109) -!163 = span !0 381 382 -!164 = span !0 372 383 +!163 = span !0 486 487 +!164 = span !0 477 488 !165 = (!61 !62 !108 !109 !164) -!166 = span !4 116317 116363 +!166 = span !4 134377 134423 !167 = (!61 !62 !166) !168 = (!61 !62 !166) !169 = (!61 !62 !166) @@ -994,54 +995,54 @@ script { !171 = fn_name_span !128 300 304 !172 = (!170 !171) !173 = span !128 360 363 -!174 = span !4 71274 71278 +!174 = span !4 81090 81094 !175 = (!173 !174) -!176 = span !4 71274 71304 -!177 = fn_call_path_span !4 71279 71289 +!176 = span !4 81090 81120 +!177 = fn_call_path_span !4 81095 81105 !178 = (!173 !176 !177) !179 = (!173 !176 !177) -!180 = span !4 21706 21712 +!180 = span !4 26449 26455 !181 = (!173 !176 !177 !180) -!182 = span !4 21689 21713 +!182 = span !4 26432 26456 !183 = (!173 !176 !177 !182) -!184 = span !4 21734 21735 +!184 = span !4 26477 26478 !185 = (!173 !176 !177) -!186 = span !4 21755 21756 -!187 = span !4 21751 21756 -!188 = fn_call_path_span !4 21753 21754 +!186 = span !4 26498 26499 +!187 = span !4 26494 26499 +!188 = fn_call_path_span !4 26496 26497 !189 = (!173 !176 !177 !187 !188) !190 = (!173 !176 !177) -!191 = span !4 21780 21784 +!191 = span !4 26523 26527 !192 = (!173 !176 !177 !191) -!193 = span !4 21780 21787 +!193 = span !4 26523 26530 !194 = (!173 !176 !177 !193) -!195 = span !4 21799 21805 +!195 = span !4 26542 26548 !196 = (!173 !176 !177 !195) -!197 = span !4 21780 21806 -!198 = fn_call_path_span !4 21788 21798 +!197 = span !4 26523 26549 +!198 = fn_call_path_span !4 26531 26541 !199 = (!173 !176 !177 !197 !198) !200 = (!173 !176 !177 !197 !198) -!201 = span !4 43044 43048 +!201 = span !4 51492 51496 !202 = (!173 !176 !177 !197 !198 !201) -!203 = span !4 43049 43050 +!203 = span !4 51497 51498 !204 = (!173 !176 !177 !197 !198 !203) -!205 = span !4 43062 43068 +!205 = span !4 51510 51516 !206 = (!173 !176 !177 !197 !198 !205) -!207 = span !4 43044 43069 -!208 = fn_call_path_span !4 43051 43061 +!207 = span !4 51492 51517 +!208 = fn_call_path_span !4 51499 51509 !209 = (!173 !176 !177 !197 !198 !207 !208) !210 = (!173 !176 !177 !197 !198 !207 !208) -!211 = span !0 209 213 +!211 = span !0 314 318 !212 = (!173 !176 !177 !197 !198 !207 !208 !211) !213 = span !128 282 293 !214 = (!173 !176 !177 !197 !198 !207 !208 !213) -!215 = span !0 229 235 +!215 = span !0 334 340 !216 = (!173 !176 !177 !197 !198 !207 !208 !215) -!217 = span !0 209 236 -!218 = fn_call_path_span !0 218 228 +!217 = span !0 314 341 +!218 = fn_call_path_span !0 323 333 !219 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) !220 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!221 = span !4 6657 6663 +!221 = span !4 7638 7644 !222 = (!173 !176 !177 !197 !198 !207 !208 !217 !218 !221) !223 = span !4 87 114 !224 = (!173 !176 !177 !197 !198 !207 !208 !217 !218 !223) @@ -1052,7 +1053,7 @@ script { !229 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) !230 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) !231 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!232 = span !4 6672 6676 +!232 = span !4 7653 7657 !233 = (!173 !176 !177 !197 !198 !207 !208 !217 !218 !232) !234 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) !235 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) @@ -1068,34 +1069,34 @@ script { !245 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) !246 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) !247 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!248 = span !4 6605 6688 +!248 = span !4 7586 7669 !249 = (!173 !176 !177 !197 !198 !207 !208 !217 !218 !248) !250 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!251 = span !0 196 237 +!251 = span !0 301 342 !252 = (!173 !176 !177 !197 !198 !207 !208 !251) -!253 = span !0 259 265 +!253 = span !0 364 370 !254 = (!173 !176 !177 !197 !198 !207 !208 !253) -!255 = span !4 43031 43070 +!255 = span !4 51479 51518 !256 = (!173 !176 !177 !197 !198 !255) -!257 = span !4 43092 43096 +!257 = span !4 51540 51544 !258 = (!173 !176 !177 !197 !198 !257) -!259 = span !4 43097 43098 +!259 = span !4 51545 51546 !260 = (!173 !176 !177 !197 !198 !259) -!261 = span !4 43110 43116 +!261 = span !4 51558 51564 !262 = (!173 !176 !177 !197 !198 !261) -!263 = span !4 43092 43117 -!264 = fn_call_path_span !4 43099 43109 +!263 = span !4 51540 51565 +!264 = fn_call_path_span !4 51547 51557 !265 = (!173 !176 !177 !197 !198 !263 !264) !266 = (!173 !176 !177 !197 !198 !263 !264) -!267 = span !0 218 222 +!267 = span !0 323 327 !268 = (!173 !176 !177 !197 !198 !263 !264 !267) -!269 = span !0 212 651 +!269 = span !0 317 756 !270 = (!173 !176 !177 !197 !198 !263 !264 !269) !271 = (!173 !176 !177 !197 !198 !263 !264 !267) !272 = (!173 !176 !177 !197 !198 !263 !264 !267) !273 = (!173 !176 !177 !197 !198 !263 !264) -!274 = span !0 225 435 -!275 = fn_call_path_span !0 225 435 +!274 = span !0 330 540 +!275 = fn_call_path_span !0 330 540 !276 = (!173 !176 !177 !197 !198 !263 !264 !274 !275) !277 = (!173 !176 !177 !197 !198 !263 !264 !274) !278 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) @@ -1105,64 +1106,64 @@ script { !282 = (!173 !176 !177 !197 !198 !263 !264 !267) !283 = (!173 !176 !177 !197 !198 !263 !264) !284 = (!173 !176 !177 !197 !198 !263 !264) -!285 = span !0 310 316 +!285 = span !0 415 421 !286 = (!173 !176 !177 !197 !198 !263 !264 !285) -!287 = span !0 294 298 -!288 = span !0 281 318 +!287 = span !0 399 403 +!288 = span !0 386 423 !289 = (!173 !176 !177 !197 !198 !263 !264 !288) -!290 = span !0 373 379 +!290 = span !0 478 484 !291 = (!173 !176 !177 !197 !198 !263 !264 !290) -!292 = span !0 343 381 +!292 = span !0 448 486 !293 = (!173 !176 !177 !197 !198 !263 !264 !292) -!294 = span !0 406 412 +!294 = span !0 511 517 !295 = (!173 !176 !177 !197 !198 !263 !264 !294) !296 = (!173 !176 !177 !197 !198 !263 !264) !297 = (!173 !176 !177 !197 !198 !263 !264 !267) !298 = (!173 !176 !177 !197 !198 !263 !264 !267) !299 = (!173 !176 !177 !197 !198 !263 !264) -!300 = span !0 437 647 -!301 = fn_call_path_span !0 437 647 +!300 = span !0 542 752 +!301 = fn_call_path_span !0 542 752 !302 = (!173 !176 !177 !197 !198 !263 !264 !300 !301) !303 = (!173 !176 !177 !197 !198 !263 !264 !300) !304 = (!173 !176 !177 !197 !198 !263 !264 !267) !305 = (!173 !176 !177 !197 !198 !263 !264) !306 = (!173 !176 !177 !197 !198 !263 !264) -!307 = span !0 522 528 +!307 = span !0 627 633 !308 = (!173 !176 !177 !197 !198 !263 !264 !307) -!309 = span !0 506 510 -!310 = span !0 493 530 +!309 = span !0 611 615 +!310 = span !0 598 635 !311 = (!173 !176 !177 !197 !198 !263 !264 !310) -!312 = span !0 585 591 +!312 = span !0 690 696 !313 = (!173 !176 !177 !197 !198 !263 !264 !312) -!314 = span !0 555 593 +!314 = span !0 660 698 !315 = (!173 !176 !177 !197 !198 !263 !264 !314) -!316 = span !0 618 624 +!316 = span !0 723 729 !317 = (!173 !176 !177 !197 !198 !263 !264 !316) !318 = (!173 !176 !177 !197 !198 !263 !264) !319 = (!173 !176 !177 !197 !198 !263 !264 !269) -!320 = span !0 199 652 +!320 = span !0 304 757 !321 = (!173 !176 !177 !197 !198 !263 !264 !320) -!322 = span !0 673 679 +!322 = span !0 778 784 !323 = (!173 !176 !177 !197 !198 !263 !264 !322) -!324 = span !4 43079 43118 +!324 = span !4 51527 51566 !325 = (!173 !176 !177 !197 !198 !324) -!326 = span !4 43127 43133 +!326 = span !4 51575 51581 !327 = (!173 !176 !177 !197 !198 !326) -!328 = span !4 21771 21806 +!328 = span !4 26514 26549 !329 = (!173 !176 !177 !328) -!330 = span !4 21825 21826 -!331 = span !4 21820 21826 -!332 = fn_call_path_span !4 21822 21824 +!330 = span !4 26568 26569 +!331 = span !4 26563 26569 +!332 = fn_call_path_span !4 26565 26567 !333 = (!173 !176 !177 !331 !332) !334 = (!173 !176 !177) -!335 = span !4 21847 21853 +!335 = span !4 26590 26596 !336 = (!173 !176 !177 !335) -!337 = span !4 71261 71305 +!337 = span !4 81077 81121 !338 = (!173 !337) -!339 = span !4 71314 71320 +!339 = span !4 81130 81136 !340 = (!173 !339) -!341 = span !4 71314 71335 -!342 = fn_call_path_span !4 71321 71333 +!341 = span !4 81130 81151 +!342 = fn_call_path_span !4 81137 81149 !343 = (!173 !341 !342) !344 = span !4 573 577 !345 = (!173 !341 !342 !344) @@ -1248,12 +1249,12 @@ script { !425 = span !128 636 645 !426 = fn_call_path_span !128 636 642 !427 = (!425 !426 !370) -!428 = span !4 4732 4736 -!429 = span !4 4718 4863 -!430 = fn_name_span !4 4721 4731 +!428 = span !4 5200 5204 +!429 = span !4 5186 5331 +!430 = fn_name_span !4 5189 5199 !431 = (!429 !430) -!432 = span !4 4826 4832 -!433 = span !4 4774 4857 +!432 = span !4 5294 5300 +!433 = span !4 5242 5325 !434 = span !4 160 260 !435 = fn_name_span !4 167 170 !436 = (!434 !435) diff --git a/test/src/in_language_tests/test_programs/storage_vec_iter_tests/src/impls.sw b/test/src/in_language_tests/test_programs/storage_vec_iter_tests/src/impls.sw index f1c0481f15e..0e99e16e7f0 100644 --- a/test/src/in_language_tests/test_programs/storage_vec_iter_tests/src/impls.sw +++ b/test/src/in_language_tests/test_programs/storage_vec_iter_tests/src/impls.sw @@ -308,6 +308,7 @@ impl TestInstance for RawPtrNewtype { } impl AbiEncode for RawPtrNewtype { + fn is_encode_trivial() -> bool { false } fn abi_encode(self, buffer: Buffer) -> Buffer { let ptr_as_u64 = asm(p: self.ptr) { p: u64 diff --git a/test/src/sdk-harness/test_projects/result_option_expect/src/main.sw b/test/src/sdk-harness/test_projects/result_option_expect/src/main.sw index cb671e4e03b..10b38d6c9d9 100644 --- a/test/src/sdk-harness/test_projects/result_option_expect/src/main.sw +++ b/test/src/sdk-harness/test_projects/result_option_expect/src/main.sw @@ -12,6 +12,7 @@ enum Error { } impl AbiEncode for Error { + fn is_encode_trivial() -> bool { false } fn abi_encode(self, buffer: Buffer) -> Buffer { buffer } } From fbc446b6657b3c34246aacd78e4e71696f4073ee Mon Sep 17 00:00:00 2001 From: Daniel Frederico Lins Leite Date: Thu, 20 Nov 2025 11:16:01 -0300 Subject: [PATCH 03/27] using new fns --- sway-lib-std/src/codec.sw | 147 +++++++++++++++++++++----------------- 1 file changed, 83 insertions(+), 64 deletions(-) diff --git a/sway-lib-std/src/codec.sw b/sway-lib-std/src/codec.sw index 7f79709b85b..f66ce967c04 100644 --- a/sway-lib-std/src/codec.sw +++ b/sway-lib-std/src/codec.sw @@ -42,7 +42,8 @@ impl BufferReader { BufferReader { ptr } } - pub fn from_first_parameter() -> BufferReader { + #[inline(always)] + pub fn from_first_parameter() -> raw_ptr { const FIRST_PARAMETER_OFFSET: u64 = 73; let ptr = asm() { @@ -51,14 +52,13 @@ impl BufferReader { let ptr = ptr.add::(FIRST_PARAMETER_OFFSET); let ptr = ptr.read::(); - BufferReader { - ptr: asm(ptr: ptr) { - ptr: raw_ptr - }, + asm(ptr: ptr) { + ptr: raw_ptr } } - pub fn from_second_parameter() -> BufferReader { + #[inline(always)] + pub fn from_second_parameter() -> raw_ptr { const SECOND_PARAMETER_OFFSET: u64 = 74; let ptr = asm() { @@ -67,20 +67,21 @@ impl BufferReader { let ptr = ptr.add::(SECOND_PARAMETER_OFFSET); let ptr = ptr.read::(); - BufferReader { - ptr: asm(ptr: ptr) { - ptr: raw_ptr - }, + asm(ptr: ptr) { + ptr: raw_ptr } } - pub fn from_script_data() -> BufferReader { - let ptr = __gtf::(0, 0xA); // SCRIPT_DATA - let _len = __gtf::(0, 0x4); // SCRIPT_DATA_LEN - BufferReader { ptr } + #[inline(always)] + pub fn from_script_data() -> raw_ptr { + // let ptr = __gtf::(0, 0xA); // SCRIPT_DATA + // let _len = __gtf::(0, 0x4); // SCRIPT_DATA_LEN + // BufferReader { ptr } + __gtf::(0, 0xA) } - pub fn from_predicate_data() -> BufferReader { + #[inline(always)] + pub fn from_predicate_data() -> raw_ptr { let predicate_index = asm(r1) { gm r1 i3; // GET_VERIFYING_PREDICATE r1: u64 @@ -88,17 +89,20 @@ impl BufferReader { Self::from_predicate_data_by_index(predicate_index) } - pub fn from_predicate_data_by_index(predicate_index: u64) -> BufferReader { + #[inline(always)] + pub fn from_predicate_data_by_index(predicate_index: u64) -> raw_ptr { match __gtf::(predicate_index, 0x200) { // GTF_INPUT_TYPE 0u8 => { - let ptr = __gtf::(predicate_index, 0x20C); // INPUT_COIN_PREDICATE_DATA - let _len = __gtf::(predicate_index, 0x20A); // INPUT_COIN_PREDICATE_DATA_LENGTH - BufferReader { ptr } + // let ptr = __gtf::(predicate_index, 0x20C); // INPUT_COIN_PREDICATE_DATA + // let _len = __gtf::(predicate_index, 0x20A); // INPUT_COIN_PREDICATE_DATA_LENGTH + // BufferReader { ptr } + __gtf::(predicate_index, 0x20C) }, 2u8 => { - let ptr = __gtf::(predicate_index, 0x24A); // INPUT_MESSAGE_PREDICATE_DATA - let _len = __gtf::(predicate_index, 0x247); // INPUT_MESSAGE_PREDICATE_DATA_LENGTH - BufferReader { ptr } + // let ptr = __gtf::(predicate_index, 0x24A); // INPUT_MESSAGE_PREDICATE_DATA + // let _len = __gtf::(predicate_index, 0x247); // INPUT_MESSAGE_PREDICATE_DATA_LENGTH + // BufferReader { ptr } + __gtf::(predicate_index, 0x24A) }, _ => __revert(0), } @@ -187,7 +191,7 @@ pub trait AbiEncode { impl AbiEncode for bool { fn is_encode_trivial() -> bool { - false + true } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { @@ -200,7 +204,7 @@ impl AbiEncode for bool { impl AbiEncode for b256 { fn is_encode_trivial() -> bool { - false + true } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { @@ -211,7 +215,7 @@ impl AbiEncode for b256 { impl AbiEncode for u256 { fn is_encode_trivial() -> bool { - false + true } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { @@ -222,7 +226,7 @@ impl AbiEncode for u256 { impl AbiEncode for u64 { fn is_encode_trivial() -> bool { - false + true } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { @@ -255,7 +259,7 @@ impl AbiEncode for u16 { impl AbiEncode for u8 { fn is_encode_trivial() -> bool { - false + true } fn abi_encode(self, buffer: Buffer) -> Buffer { Buffer { @@ -1025,7 +1029,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -3188,10 +3192,7 @@ pub fn encode(item: T) -> raw_slice where T: AbiEncode, { - let RMI: u64 = __runtime_mem_id::(); - let EMI: u64 = __encoding_mem_id::(); - - if RMI == EMI { + if is_encode_trivial::() { let size = __size_of::(); let ptr = asm(size: size, src: &item) { aloc size; @@ -3211,10 +3212,7 @@ pub fn encode_and_return(item: T) -> ! where T: AbiEncode, { - let RMI: u64 = __runtime_mem_id::(); - let EMI: u64 = __encoding_mem_id::(); - - if RMI == EMI { + if is_encode_trivial::() { let size = __size_of::(); __contract_ret(&item, size); } else { @@ -3228,8 +3226,13 @@ pub fn abi_decode(data: raw_slice) -> T where T: AbiDecode, { - let mut buffer = BufferReader::from_parts(data.ptr(), data.len::()); - T::abi_decode(buffer) + if is_decode_trivial::() { + let ptr: &T = __transmute::(data.ptr()); + *ptr + } else { + let mut buffer = BufferReader::from_parts(data.ptr(), data.len::()); + T::abi_decode(buffer) + } } #[inline(never)] @@ -3237,14 +3240,20 @@ pub fn abi_decode_in_place(ptr: raw_ptr, len: u64, target: raw_ptr) where T: AbiDecode, { - let mut buffer = BufferReader::from_parts(ptr, len); - let temp = T::abi_decode(buffer); - asm( - target: target, - temp: __addr_of(temp), - size: __size_of::(), - ) { - mcp target temp size; + if is_decode_trivial::() { + asm(ptr: ptr, target: target, len: len) { + mcp target ptr len; + } + } else { + let mut buffer = BufferReader::from_parts(ptr, len); + let temp = T::abi_decode(buffer); + asm( + target: target, + temp: __addr_of(temp), + size: __size_of::(), + ) { + mcp target temp size; + } } } @@ -3257,7 +3266,7 @@ pub trait AbiDecode { impl AbiDecode for b256 { fn is_decode_trivial() -> bool { - false + true } fn abi_decode(ref mut buffer: BufferReader) -> b256 { buffer.read_32_bytes::() @@ -3266,7 +3275,7 @@ impl AbiDecode for b256 { impl AbiDecode for u256 { fn is_decode_trivial() -> bool { - false + true } fn abi_decode(ref mut buffer: BufferReader) -> u256 { buffer.read_32_bytes::() @@ -3275,7 +3284,7 @@ impl AbiDecode for u256 { impl AbiDecode for u64 { fn is_decode_trivial() -> bool { - false + true } fn abi_decode(ref mut buffer: BufferReader) -> u64 { buffer.read_8_bytes::() @@ -3320,7 +3329,7 @@ impl AbiDecode for u16 { impl AbiDecode for u8 { fn is_decode_trivial() -> bool { - false + true } fn abi_decode(ref mut buffer: BufferReader) -> u8 { buffer.read::() @@ -4163,7 +4172,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; N] { const LENGTH: u64 = __size_of::() * N; @@ -6437,53 +6446,63 @@ where retl: u64 }; - let mut buffer = BufferReader::from_parts(ptr, len); - T::abi_decode(buffer) + if is_decode_trivial::() { + let ptr: &T = __transmute::(ptr); + *ptr + } else { + let mut buffer = BufferReader::from_parts(ptr, len); + T::abi_decode(buffer) + } +} + +#[inline(always)] +fn decode_from_raw_ptr(ptr: raw_ptr) -> T where T: AbiDecode { + if is_decode_trivial::() { + let ptr: &T = __transmute::(ptr); + *ptr + } else { + let mut buffer = BufferReader { ptr }; + T::abi_decode(buffer) + } } pub fn decode_script_data() -> T where T: AbiDecode, { - let mut buffer = BufferReader::from_script_data(); - T::abi_decode(buffer) + decode_from_raw_ptr::(BufferReader::from_script_data()) } pub fn decode_predicate_data() -> T where T: AbiDecode, { - let mut buffer = BufferReader::from_predicate_data(); - T::abi_decode(buffer) + decode_from_raw_ptr::(BufferReader::from_predicate_data()) } pub fn decode_predicate_data_by_index(index: u64) -> T where T: AbiDecode, { - let mut buffer = BufferReader::from_predicate_data_by_index(index); - T::abi_decode(buffer) + decode_from_raw_ptr::( BufferReader::from_predicate_data_by_index(index)) } pub fn decode_first_param() -> T where T: AbiDecode, { - let mut buffer = BufferReader::from_first_parameter(); - T::abi_decode(buffer) + decode_from_raw_ptr::(BufferReader::from_first_parameter()) } pub fn decode_second_param() -> T where T: AbiDecode, { - let mut buffer = BufferReader::from_second_parameter(); - T::abi_decode(buffer) + decode_from_raw_ptr::(BufferReader::from_second_parameter()) } // Tests - fn assert_encoding(value: T, expected: SLICE) where T: AbiEncode, From eb382f50a8ee0b3dca8082341974059e0de578a7 Mon Sep 17 00:00:00 2001 From: Daniel Frederico Lins Leite Date: Thu, 20 Nov 2025 11:18:21 -0300 Subject: [PATCH 04/27] std formatting --- sway-lib-std/src/codec.sw | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sway-lib-std/src/codec.sw b/sway-lib-std/src/codec.sw index f66ce967c04..35f72e72438 100644 --- a/sway-lib-std/src/codec.sw +++ b/sway-lib-std/src/codec.sw @@ -6456,7 +6456,10 @@ where } #[inline(always)] -fn decode_from_raw_ptr(ptr: raw_ptr) -> T where T: AbiDecode { +fn decode_from_raw_ptr(ptr: raw_ptr) -> T +where + T: AbiDecode, +{ if is_decode_trivial::() { let ptr: &T = __transmute::(ptr); *ptr @@ -6484,7 +6487,7 @@ pub fn decode_predicate_data_by_index(index: u64) -> T where T: AbiDecode, { - decode_from_raw_ptr::( BufferReader::from_predicate_data_by_index(index)) + decode_from_raw_ptr::(BufferReader::from_predicate_data_by_index(index)) } pub fn decode_first_param() -> T From 6b7d59a8c9d2f256dc704f58a254b0c9a876db91 Mon Sep 17 00:00:00 2001 From: Daniel Frederico Lins Leite Date: Thu, 20 Nov 2025 12:25:48 -0300 Subject: [PATCH 05/27] fix entry generation --- .../declaration/auto_impl/abi_encoding.rs | 17 +++++++++-------- .../ast_node/declaration/auto_impl/mod.rs | 6 +++--- .../to_parsed_lang/convert_parse_tree.rs | 2 +- sway-lib-std/src/codec.sw | 17 +++++++++++++---- 4 files changed, 26 insertions(+), 16 deletions(-) diff --git a/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs b/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs index ca2d48876a0..f3ac3d94d3c 100644 --- a/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs +++ b/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs @@ -413,7 +413,7 @@ where )); } else { code.push_str(&format!( - "let args: {args_types} = _buffer.decode::<{args_types}>(); + "let args: {args_types} = decode_from_raw_ptr::<{args_types}>(_buffer_ptr); let _result: {return_type} = __contract_entry_{method_name}({expanded_args});\n" )); } @@ -422,8 +422,7 @@ where code.push_str("__contract_ret(asm() { zero: raw_ptr }, 0);"); } else { code.push_str(&format!( - "let _result: raw_slice = encode::<{return_type}>(_result); - __contract_ret(_result.ptr(), _result.len::());" + "encode_and_return::<{return_type}>(&_result);" )); } @@ -483,12 +482,14 @@ where let code = format!( "{att} pub fn __entry() {{ let _method_names = \"{method_names}\"; - let mut _buffer = BufferReader::from_second_parameter(); + let _method_names_ptr = _method_names.as_ptr(); + + let mut _buffer_ptr = BufferReader::from_second_parameter(); + let mut _first_param_buffer = BufferReader {{ ptr: _buffer_ptr }}; - let mut _first_param_buffer = BufferReader::from_first_parameter(); + let _method_name_ptr = BufferReader::from_first_parameter(); let _method_len = _first_param_buffer.read::(); - let _method_name_ptr = _first_param_buffer.ptr(); - let _method_names_ptr = _method_names.as_ptr(); + {code} {fallback} }}" @@ -649,7 +650,7 @@ where let return_encode = if return_type == "()" { "__contract_ret(0, 0)".to_string() } else { - format!("encode_and_return::<{return_type}>(_result)") + format!("encode_and_return::<{return_type}>(&_result)") }; let code = if args_types == "()" { diff --git a/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/mod.rs b/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/mod.rs index 34f7888375b..9e0f04cb4bb 100644 --- a/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/mod.rs +++ b/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/mod.rs @@ -53,7 +53,7 @@ where T: Parse, { // Uncomment this to see what is being generated - // println!("{}", src); + println!("{}", src); let handler = <_>::default(); let autogenerated_source_id = original_source_id.as_ref().and_then(|source_id| { @@ -211,7 +211,7 @@ where }); // Uncomment this to understand why an entry function was not generated - // println!("{}, {:#?}", r.is_ok(), handler); + println!("{}, {:#?}", r.is_ok(), handler); let decl = r.map_err(|_| handler.clone())?; @@ -274,7 +274,7 @@ where }); // Uncomment this to understand why auto impl failed for a type. - // println!("{:#?}", handler); + println!("{:#?}", handler); let decl = r.map_err(|_| handler.clone())?; diff --git a/sway-core/src/transform/to_parsed_lang/convert_parse_tree.rs b/sway-core/src/transform/to_parsed_lang/convert_parse_tree.rs index 2d3f13e1aee..5f8b214eed9 100644 --- a/sway-core/src/transform/to_parsed_lang/convert_parse_tree.rs +++ b/sway-core/src/transform/to_parsed_lang/convert_parse_tree.rs @@ -3265,7 +3265,7 @@ fn configurable_field_to_configurable_declaration( call_path_binding: TypeBinding { inner: CallPath { prefixes: vec![], - suffix: Ident::new_with_override("encode".into(), span.clone()), + suffix: Ident::new_with_override("encode_configurable".into(), span.clone()), callpath_type: CallPathType::Ambiguous, }, type_arguments: TypeArgs::Regular(vec![GenericArgument::Type( diff --git a/sway-lib-std/src/codec.sw b/sway-lib-std/src/codec.sw index 35f72e72438..bd307dc9177 100644 --- a/sway-lib-std/src/codec.sw +++ b/sway-lib-std/src/codec.sw @@ -34,7 +34,7 @@ impl AsRawSlice for Buffer { } pub struct BufferReader { - ptr: raw_ptr, + pub ptr: raw_ptr, } impl BufferReader { @@ -3208,19 +3208,28 @@ where } } -pub fn encode_and_return(item: T) -> ! +pub fn encode_and_return(item: &T) -> ! where T: AbiEncode, { if is_encode_trivial::() { let size = __size_of::(); - __contract_ret(&item, size); + __contract_ret(item, size); } else { + let item = *item; let buffer = item.abi_encode(Buffer::new()); __contract_ret(buffer.buffer.0, buffer.buffer.2); } } +pub fn encode_configurable(item: T) -> raw_slice +where + T: AbiEncode, +{ + let buffer = item.abi_encode(Buffer::new()); + buffer.as_raw_slice() +} + #[inline(never)] pub fn abi_decode(data: raw_slice) -> T where @@ -6456,7 +6465,7 @@ where } #[inline(always)] -fn decode_from_raw_ptr(ptr: raw_ptr) -> T +pub fn decode_from_raw_ptr(ptr: raw_ptr) -> T where T: AbiDecode, { From 9685684f0fdb7545e669d7b955fca2b8d1f1c428 Mon Sep 17 00:00:00 2001 From: Daniel Frederico Lins Leite Date: Thu, 20 Nov 2025 12:29:16 -0300 Subject: [PATCH 06/27] fmt and clippy issues --- .../ast_node/declaration/auto_impl/abi_encoding.rs | 4 +--- .../semantic_analysis/ast_node/declaration/auto_impl/mod.rs | 6 +++--- .../src/transform/to_parsed_lang/convert_parse_tree.rs | 5 ++++- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs b/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs index f3ac3d94d3c..7722b38d80e 100644 --- a/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs +++ b/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs @@ -421,9 +421,7 @@ where if return_type == "()" { code.push_str("__contract_ret(asm() { zero: raw_ptr }, 0);"); } else { - code.push_str(&format!( - "encode_and_return::<{return_type}>(&_result);" - )); + code.push_str(&format!("encode_and_return::<{return_type}>(&_result);")); } code.push_str("\n}\n"); diff --git a/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/mod.rs b/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/mod.rs index 9e0f04cb4bb..34f7888375b 100644 --- a/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/mod.rs +++ b/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/mod.rs @@ -53,7 +53,7 @@ where T: Parse, { // Uncomment this to see what is being generated - println!("{}", src); + // println!("{}", src); let handler = <_>::default(); let autogenerated_source_id = original_source_id.as_ref().and_then(|source_id| { @@ -211,7 +211,7 @@ where }); // Uncomment this to understand why an entry function was not generated - println!("{}, {:#?}", r.is_ok(), handler); + // println!("{}, {:#?}", r.is_ok(), handler); let decl = r.map_err(|_| handler.clone())?; @@ -274,7 +274,7 @@ where }); // Uncomment this to understand why auto impl failed for a type. - println!("{:#?}", handler); + // println!("{:#?}", handler); let decl = r.map_err(|_| handler.clone())?; diff --git a/sway-core/src/transform/to_parsed_lang/convert_parse_tree.rs b/sway-core/src/transform/to_parsed_lang/convert_parse_tree.rs index 5f8b214eed9..fcce7b1bd97 100644 --- a/sway-core/src/transform/to_parsed_lang/convert_parse_tree.rs +++ b/sway-core/src/transform/to_parsed_lang/convert_parse_tree.rs @@ -3265,7 +3265,10 @@ fn configurable_field_to_configurable_declaration( call_path_binding: TypeBinding { inner: CallPath { prefixes: vec![], - suffix: Ident::new_with_override("encode_configurable".into(), span.clone()), + suffix: Ident::new_with_override( + "encode_configurable".into(), + span.clone(), + ), callpath_type: CallPathType::Ambiguous, }, type_arguments: TypeArgs::Regular(vec![GenericArgument::Type( From 8449c9c9335a9773bbda02b8b3dbe600aa3604cf Mon Sep 17 00:00:00 2001 From: Daniel Frederico Lins Leite Date: Thu, 20 Nov 2025 13:43:42 -0300 Subject: [PATCH 07/27] fix entry generation --- .../declaration/auto_impl/abi_encoding.rs | 7 +++--- sway-lib-std/src/codec.sw | 24 ++++++++----------- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs b/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs index 7722b38d80e..f05478a627f 100644 --- a/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs +++ b/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs @@ -483,10 +483,11 @@ where let _method_names_ptr = _method_names.as_ptr(); let mut _buffer_ptr = BufferReader::from_second_parameter(); - let mut _first_param_buffer = BufferReader {{ ptr: _buffer_ptr }}; - + let _method_name_ptr = BufferReader::from_first_parameter(); - let _method_len = _first_param_buffer.read::(); + let mut _method_name = BufferReader {{ ptr: _method_name_ptr }}; + let _method_len = _method_name.read::(); + let _method_name_ptr = _method_name.ptr(); {code} {fallback} diff --git a/sway-lib-std/src/codec.sw b/sway-lib-std/src/codec.sw index bd307dc9177..2be19dbd255 100644 --- a/sway-lib-std/src/codec.sw +++ b/sway-lib-std/src/codec.sw @@ -3236,8 +3236,13 @@ where T: AbiDecode, { if is_decode_trivial::() { - let ptr: &T = __transmute::(data.ptr()); - *ptr + let size = __size_of::(); + let item: &T = asm(size: size, src: data.ptr()) { + aloc size; + mcp hp src size; + hp: &T + }; + *item } else { let mut buffer = BufferReader::from_parts(data.ptr(), data.len::()); T::abi_decode(buffer) @@ -3250,8 +3255,8 @@ where T: AbiDecode, { if is_decode_trivial::() { - asm(ptr: ptr, target: target, len: len) { - mcp target ptr len; + asm(src: ptr, target: target, len: len) { + mcp target src len; } } else { let mut buffer = BufferReader::from_parts(ptr, len); @@ -6451,17 +6456,8 @@ where let ptr = asm() { ret: raw_ptr }; - let len = asm() { - retl: u64 - }; - if is_decode_trivial::() { - let ptr: &T = __transmute::(ptr); - *ptr - } else { - let mut buffer = BufferReader::from_parts(ptr, len); - T::abi_decode(buffer) - } + decode_from_raw_ptr::(ptr) } #[inline(always)] From 2b4c2d140ad3f075428c1ad56140ca7cef011c3d Mon Sep 17 00:00:00 2001 From: Daniel Frederico Lins Leite Date: Thu, 20 Nov 2025 18:46:02 -0300 Subject: [PATCH 08/27] update snapshot tests --- .../language/array/array_repeat/stdout.snap | 494 +-- .../attributes_deprecated/stdout.snap | 12 +- .../configurable_dedup_decode/stdout.snap | 183 +- .../language/intrinsics/dbg/stdout.snap | 3 +- .../should_pass/language/logging/stdout.snap | 1971 ++++++------ .../main_args/main_args_one_u64/stdout.snap | 218 +- .../main_args/main_args_two_u64/stdout.snap | 286 +- .../main_args_various_types/stdout.snap | 2653 +++++++++-------- .../panic_handling_in_unit_tests/stdout.snap | 61 +- .../panicking_contract/stdout.snap | 53 +- .../panicking_lib/stdout.snap | 45 +- .../panicking_script/stdout.snap | 31 +- .../stdout.snap | 35 +- .../const_of_contract_call/stdout.snap | 201 +- 14 files changed, 3041 insertions(+), 3205 deletions(-) diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/array/array_repeat/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/array/array_repeat/stdout.snap index fba408be37d..1dbd21ee5e4 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/array/array_repeat/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/array/array_repeat/stdout.snap @@ -99,15 +99,15 @@ script { v42 = cmp eq v40 v41, !29 v43 = const bool false, !30 v44 = cmp eq v42 v43, !33 - cbr v44, assert_eq_38_block0(), assert_eq_38_block1(), !34 + cbr v44, assert_eq_42_block0(), assert_eq_42_block1(), !34 - assert_eq_38_block0(): - v45 = call log_42(v40), !37 - v46 = call log_42(v41), !40 + assert_eq_42_block0(): + v45 = call log_46(v40), !37 + v46 = call log_46(v41), !40 v47 = const u64 18446744073709486083 revert v47, !45 - assert_eq_38_block1(): + assert_eq_42_block1(): v48 = const unit () ret () v48 } @@ -301,121 +301,68 @@ script { } pub fn abi_decode_24(data: __ptr slice, __ret_value: __ptr [u8; 1]) -> (), !121 { - local mut { ptr, u64 } __aggr_memcpy_0 - local mut { ptr, u64 } __aggr_memcpy_00 - local { ptr, u64 } __anon_0 - local { ptr, u64 } __anon_00 - local { ptr } __anon_01 - local [u8; 1] __anon_02 - local mut [u8; 1] array - local mut { ptr } buffer - local slice data_ - local slice self_ - local slice self_0 - local slice slice_ + local { ptr, u64 } __anon_02 local slice slice_0 entry(data: __ptr slice, __ret_value: __ptr [u8; 1]): - v0 = get_local __ptr slice, data_ + v0 = get_local __ptr slice, slice_0, !126 mem_copy_val v0, data - v1 = get_local __ptr slice, data_, !122 - v2 = get_local __ptr slice, self_, !125 - mem_copy_val v2, v1 - v3 = get_local __ptr slice, self_, !127 - v4 = get_local __ptr slice, slice_, !130 - mem_copy_val v4, v3 - v5 = get_local __ptr slice, slice_, !132 - v6 = asm(ptr: v5) -> __ptr { ptr, u64 } ptr { - } - v7 = get_local __ptr { ptr, u64 }, __aggr_memcpy_0 - mem_copy_val v7, v6 - v8 = get_local __ptr { ptr, u64 }, __anon_0, !125 - mem_copy_val v8, v7 - v9 = const u64 0 - v10 = get_elem_ptr v8, __ptr ptr, v9, !134 - v11 = get_local __ptr slice, data_, !135 - v12 = get_local __ptr slice, self_0, !138 - mem_copy_val v12, v11 - v13 = get_local __ptr slice, self_0, !140 - v14 = get_local __ptr slice, slice_0, !143 - mem_copy_val v14, v13 - v15 = get_local __ptr slice, slice_0, !144 - v16 = asm(ptr: v15) -> __ptr { ptr, u64 } ptr { - } - v17 = get_local __ptr { ptr, u64 }, __aggr_memcpy_00 - mem_copy_val v17, v16 - v18 = get_local __ptr { ptr, u64 }, __anon_00, !138 - mem_copy_val v18, v17 - v19 = get_local __ptr { ptr }, __anon_01, !148 - v20 = const u64 0 - v21 = get_elem_ptr v19, __ptr ptr, v20, !149 - mem_copy_val v21, v10 - v22 = get_local __ptr { ptr }, buffer, !150 - mem_copy_val v22, v19 - v23 = get_local __ptr { ptr }, buffer, !151 - v24 = get_local __ptr [u8; 1], __anon_02, !155 - mem_clear_val v24, !156 - v25 = get_local __ptr [u8; 1], array, !158 - mem_copy_val v25, v24 - v26 = get_local __ptr [u8; 1], array, !160 - v27 = cast_ptr v26 to __ptr [u8; 1], !156 - v28 = const u64 0, !161 - br abi_decode_30_while(v28), !156 - - abi_decode_30_while(v29: u64): - v30 = const u64 1 - v31 = cmp lt v29 v30, !164 - cbr v31, abi_decode_30_while_body(), abi_decode_30_end_while(), !156 - - abi_decode_30_while_body(): - v32 = const u64 1 - v33 = asm(idx: v29, elem_ir_type_size: v32, ptr: v27, offset_temp, ptr_out) -> __ptr u8 ptr_out, !156 { - mul offset_temp idx elem_ir_type_size - add ptr_out ptr offset_temp + v1 = get_local __ptr slice, slice_0, !128 + v2 = asm(ptr: v1) -> __ptr { ptr, u64 } ptr { } - v34 = const u64 0 - v35 = get_elem_ptr v23, __ptr ptr, v34, !172 - v36 = load v35, !173 - v37 = asm(ptr: v36, val) -> u8 val, !175 { - lb val ptr i0, !176 + v3 = const u64 0 + v4 = get_elem_ptr v2, __ptr ptr, v3 + v5 = load v4 + v6 = const u64 1 + v7 = get_elem_ptr v2, __ptr u64, v6 + v8 = load v7 + v9 = get_local __ptr { ptr, u64 }, __anon_02, !129 + v10 = const u64 0 + v11 = get_elem_ptr v9, __ptr ptr, v10 + store v5 to v11 + v12 = const u64 1 + v13 = get_elem_ptr v9, __ptr u64, v12 + store v8 to v13 + v14 = const u64 0 + v15 = get_elem_ptr v9, __ptr ptr, v14, !131 + v16 = load v15, !129 + v17 = const u64 1 + v18 = asm(size: v17, src: v16) -> __ptr [u8; 1] hp, !132 { + aloc size, !133 + mcp hp src size, !134 } - v38 = load v35, !177 - v39 = const u64 1, !178 - v40 = add v38, v39, !179 - store v40 to v35, !181 - store v37 to v33, !183 - v41 = const u64 1, !184 - v42 = add v29, v41, !187 - br abi_decode_30_while(v42), !156 - - abi_decode_30_end_while(): - mem_copy_val __ret_value, v27 - v43 = const unit () - ret () v43 + v19 = const u64 0 + v20 = get_elem_ptr v18, __ptr u8, v19 + v21 = load v20 + v22 = const u64 0 + v23 = get_elem_ptr __ret_value, __ptr u8, v22 + store v21 to v23 + v24 = const unit () + ret () v24 } - pub fn log_42(value !189: u8) -> (), !192 { + pub fn log_46(value !136: u8) -> (), !139 { local mut slice __aggr_memcpy_0 local { ptr, u64 } __anon_0 local slice __log_arg local u8 item_ entry(value: u8): - v0 = get_local __ptr u8, item_, !193 - store value to v0, !193 - v1 = get_local __ptr u8, item_, !195 + v0 = get_local __ptr u8, item_, !140 + store value to v0, !140 + v1 = get_local __ptr u8, item_, !142 v2 = const u64 1 - v3 = asm(size: v2, src: v1) -> ptr hp, !197 { - aloc size, !198 - mcp hp src size, !199 + v3 = asm(size: v2, src: v1) -> ptr hp, !144 { + aloc size, !145 + mcp hp src size, !146 } - v4 = get_local __ptr { ptr, u64 }, __anon_0, !201 + v4 = get_local __ptr { ptr, u64 }, __anon_0, !148 v5 = const u64 0 - v6 = get_elem_ptr v4, __ptr ptr, v5, !202 - store v3 to v6, !203 + v6 = get_elem_ptr v4, __ptr ptr, v5, !149 + store v3 to v6, !150 v7 = const u64 1 - v8 = get_elem_ptr v4, __ptr u64, v7, !204 - store v2 to v8, !205 + v8 = get_elem_ptr v4, __ptr u64, v7, !151 + store v2 to v8, !152 v9 = asm(s: v4) -> __ptr slice s { } v10 = get_local __ptr slice, __aggr_memcpy_0 @@ -548,93 +495,40 @@ script { !116 = span !109 1257 1262 !117 = (!107 !108 !110 !111 !116) !118 = "test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-assert/src/codec.sw" -!119 = span !118 81563 81736 -!120 = fn_name_span !118 81570 81580 +!119 = span !118 81768 82193 +!120 = fn_name_span !118 81775 81785 !121 = (!119 !120 !48) -!122 = span !118 81678 81682 -!123 = span !118 81678 81688 -!124 = fn_call_path_span !118 81683 81686 -!125 = (!123 !124) -!126 = span !109 2922 2926 -!127 = (!123 !124 !126) -!128 = span !109 2911 2927 -!129 = fn_call_path_span !109 2911 2921 -!130 = (!123 !124 !128 !129) -!131 = span !109 1633 1638 -!132 = (!123 !124 !128 !129 !131) -!133 = span !109 2928 2929 -!134 = (!123 !124 !133) -!135 = span !118 81690 81694 -!136 = span !118 81690 81706 -!137 = fn_call_path_span !118 81695 81698 -!138 = (!136 !137) -!139 = span !109 3420 3424 -!140 = (!136 !137 !139) -!141 = span !109 3409 3425 -!142 = fn_call_path_span !109 3409 3419 -!143 = (!136 !137 !141 !142) -!144 = (!136 !137 !141 !142 !131) -!145 = span !118 81653 81707 -!146 = fn_call_path_span !118 81653 81677 -!147 = span !118 735 755 -!148 = (!145 !146 !147) -!149 = (!145 !146) -!150 = span !118 81636 81708 -!151 = span !118 81727 81733 -!152 = span !118 81713 81734 -!153 = fn_call_path_span !118 81713 81726 -!154 = span !118 104823 104836 -!155 = (!152 !153 !154) -!156 = (!152 !153) -!157 = span !118 104807 104837 -!158 = (!152 !153 !157) -!159 = span !118 104922 104927 -!160 = (!152 !153 !159) -!161 = span !118 104951 104952 -!162 = span !118 104969 104974 -!163 = fn_call_path_span !118 104971 104972 -!164 = (!152 !153 !162 !163) -!165 = span !118 105049 105069 -!166 = fn_call_path_span !118 105056 105062 -!167 = span !118 3959 3978 -!168 = fn_call_path_span !118 3959 3972 -!169 = span !118 83731 83750 -!170 = fn_call_path_span !118 83738 83742 -!171 = span !118 625 637 -!172 = (!152 !153 !165 !166 !167 !168 !169 !170 !171) -!173 = (!152 !153 !165 !166 !167 !168 !169 !170) -!174 = span !118 3640 3733 -!175 = (!152 !153 !165 !166 !167 !168 !169 !170 !174) -!176 = span !118 3682 3695 -!177 = (!152 !153 !165 !166 !167 !168 !169 !170) -!178 = (!152 !153 !165 !166 !167 !168 !169 !170) -!179 = (!152 !153 !165 !166 !167 !168 !169 !170) -!180 = span !118 3747 3786 -!181 = (!152 !153 !165 !166 !167 !168 !169 !170 !180) -!182 = span !118 105041 105069 -!183 = (!152 !153 !182) -!184 = span !118 105088 105089 -!185 = span !118 105083 105089 -!186 = fn_call_path_span !118 105085 105087 -!187 = (!152 !153 !185 !186) -!188 = "test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-assert/src/logging.sw" -!189 = span !188 591 596 -!190 = span !188 577 651 -!191 = fn_name_span !188 584 587 -!192 = (!190 !191) -!193 = span !188 642 647 -!194 = span !118 80896 80900 -!195 = (!193 !194) -!196 = span !118 80874 80989 -!197 = (!193 !196) -!198 = span !118 80916 80925 -!199 = span !118 80939 80954 -!200 = span !118 81006 81017 -!201 = (!193 !200) -!202 = (!193 !200) -!203 = (!193 !200) -!204 = (!193 !200) -!205 = (!193 !200) +!122 = span !118 81952 81962 +!123 = fn_call_path_span !118 81957 81960 +!124 = span !109 2911 2927 +!125 = fn_call_path_span !109 2911 2921 +!126 = (!122 !123 !124 !125) +!127 = span !109 1633 1638 +!128 = (!122 !123 !124 !125 !127) +!129 = (!122 !123) +!130 = span !109 2928 2929 +!131 = (!122 !123 !130) +!132 = span !118 81931 82046 +!133 = span !118 81978 81987 +!134 = span !118 82001 82016 +!135 = "test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-assert/src/logging.sw" +!136 = span !135 591 596 +!137 = span !135 577 651 +!138 = fn_name_span !135 584 587 +!139 = (!137 !138) +!140 = span !135 642 647 +!141 = span !118 80995 80999 +!142 = (!140 !141) +!143 = span !118 80973 81088 +!144 = (!140 !143) +!145 = span !118 81015 81024 +!146 = span !118 81038 81053 +!147 = span !118 81105 81116 +!148 = (!140 !147) +!149 = (!140 !147) +!150 = (!140 !147) +!151 = (!140 !147) +!152 = (!140 !147) ;; ASM: Final program ;; Program kind: Script @@ -740,10 +634,10 @@ eq $r2 $r2 $zero jnzf $r2 $zero i1 jmpf $zero i7 move $$arg0 $r0 ; [call]: pass argument 0 -jal $$reta $pc i276 ; [call]: call log_42 +jal $$reta $pc i244 ; [call]: call log_46 movi $r0 i255 ; initialize constant into register move $$arg0 $r0 ; [call]: pass argument 0 -jal $$reta $pc i273 ; [call]: call log_42 +jal $$reta $pc i241 ; [call]: call log_46 load $r0 data_NonConfigurable_0; load constant from data section rvrt $r0 cfsi i264920 ; free 264920 bytes for locals and 0 slots for extra call arguments @@ -957,68 +851,36 @@ move $$reta $r1 ; restore return address poph i524288 ; restore registers 40..64 popl i7 ; restore registers 16..40 jal $zero $$reta i0 ; return from call -pshl i255 ; save registers 16..40 +pshl i15 ; save registers 16..40 pshh i524288 ; save registers 40..64 move $$locbase $sp ; save locals base register for function abi_decode_24 -cfei i176 ; allocate 176 bytes for locals and 0 slots for call arguments +cfei i32 ; allocate 32 bytes for locals and 0 slots for call arguments move $r0 $$arg1 ; save argument 1 (__ret_value) move $r1 $$reta ; save return address -addi $r2 $$locbase i96 ; get offset to local __ptr slice +addi $r2 $$locbase i16 ; get offset to local __ptr slice mcpi $r2 $$arg0 i16 ; copy memory -addi $r2 $$locbase i96 ; get offset to local __ptr slice -addi $r3 $$locbase i112 ; get offset to local __ptr slice -mcpi $r3 $r2 i16 ; copy memory -addi $r2 $$locbase i112 ; get offset to local __ptr slice -addi $r3 $$locbase i144 ; get offset to local __ptr slice -mcpi $r3 $r2 i16 ; copy memory -addi $r2 $$locbase i144 ; get offset to local __ptr slice -mcpi $$locbase $r2 i16 ; copy memory -addi $r2 $$locbase i32 ; get offset to local __ptr { ptr, u64 } -mcpi $r2 $$locbase i16 ; copy memory -addi $r3 $$locbase i96 ; get offset to local __ptr slice -addi $r4 $$locbase i128 ; get offset to local __ptr slice -mcpi $r4 $r3 i16 ; copy memory -addi $r3 $$locbase i128 ; get offset to local __ptr slice -addi $r4 $$locbase i160 ; get offset to local __ptr slice -mcpi $r4 $r3 i16 ; copy memory -addi $r3 $$locbase i160 ; get offset to local __ptr slice -addi $r4 $$locbase i16 ; get offset to local __ptr { ptr, u64 } -mcpi $r4 $r3 i16 ; copy memory -addi $r3 $$locbase i48 ; get offset to local __ptr { ptr, u64 } -mcpi $r3 $r4 i16 ; copy memory -addi $r3 $$locbase i64 ; get offset to local __ptr { ptr } -mcpi $r3 $r2 i8 ; copy memory -addi $r2 $$locbase i88 ; get offset to local __ptr { ptr } -mcpi $r2 $r3 i8 ; copy memory -addi $r2 $$locbase i88 ; get offset to local __ptr { ptr } -addi $r3 $$locbase i72 ; get offset to local __ptr [u8; 1] -mcli $r3 i1 ; clear memory [u8; 1], 1 bytes -addi $r4 $$locbase i80 ; get offset to local __ptr [u8; 1] -mcpi $r4 $r3 i1 ; copy memory -addi $r3 $$locbase i80 ; get offset to local __ptr [u8; 1] -move $r7 $zero ; move parameter from branch to block argument -lt $r4 $r7 $one -jnzf $r4 $zero i2 -mcpi $r0 $r3 i1 ; copy memory -jmpf $zero i10 -mul $r4 $r7 $one -add $r4 $r3 $r4 -lw $r5 $r2 i0 ; load word -lb $r5 $r5 i0 ; lb val ptr i0 -lw $r6 $r2 i0 ; load word -add $r6 $r6 $one -sw $r2 $r6 i0 ; store word -sb $r4 $r5 i0 ; store byte -add $r7 $r7 $one -jmpb $zero i12 -cfsi i176 ; free 176 bytes for locals and 0 slots for extra call arguments +lw $r2 $$locbase i2 ; load word +lw $r3 $$locbase i3 ; load word +sw $$locbase $r2 i0 ; store word +sw $$locbase $r3 i1 ; store word +lw $r2 $$locbase i0 ; load word +move $r3 $one ; copy ASM block argument's constant initial value to register +aloc $one ; aloc size +mcp $hp $r2 $r3 ; mcp hp src size +mul $r2 $zero $one ; get offset to array element +add $r2 $hp $r2 ; add array element offset to array base +lb $r2 $r2 i0 ; load byte +mul $r3 $zero $one ; get offset to array element +add $r3 $r0 $r3 ; add array element offset to array base +sb $r3 $r2 i0 ; store byte +cfsi i32 ; free 32 bytes for locals and 0 slots for extra call arguments move $$reta $r1 ; restore return address poph i524288 ; restore registers 40..64 -popl i255 ; restore registers 16..40 +popl i15 ; restore registers 16..40 jal $zero $$reta i0 ; return from call pshl i15 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function log_42 +move $$locbase $sp ; save locals base register for function log_46 cfei i56 ; allocate 56 bytes for locals and 0 slots for call arguments move $r0 $$reta ; save return address addi $r1 $$locbase i48 ; get offset to local __ptr u8 @@ -1052,7 +914,7 @@ data_NonConfigurable_2 .word 14454674236531057292 0x00000000 MOVE R60 $pc ;; [26, 240, 48, 0] 0x00000004 JMPF $zero 0x4 ;; [116, 0, 0, 4] -0x00000008 ;; [0, 0, 0, 0, 0, 0, 6, 72] +0x00000008 ;; [0, 0, 0, 0, 0, 0, 5, 200] 0x00000010 ;; [0, 0, 0, 0, 0, 0, 0, 0] 0x00000018 LW R63 R60 0x1 ;; [93, 255, 192, 1] 0x0000001c ADD R63 R63 R60 ;; [16, 255, 255, 0] @@ -1148,10 +1010,10 @@ data_NonConfigurable_2 .word 14454674236531057292 0x00000184 JNZF R18 $zero 0x1 ;; [118, 72, 0, 1] 0x00000188 JMPF $zero 0x7 ;; [116, 0, 0, 7] 0x0000018c MOVE R58 $writable ;; [26, 233, 0, 0] -0x00000190 JAL R62 $pc 0x114 ;; [153, 248, 49, 20] +0x00000190 JAL R62 $pc 0xf4 ;; [153, 248, 48, 244] 0x00000194 MOVI $writable 0xff ;; [114, 64, 0, 255] 0x00000198 MOVE R58 $writable ;; [26, 233, 0, 0] -0x0000019c JAL R62 $pc 0x111 ;; [153, 248, 49, 17] +0x0000019c JAL R62 $pc 0xf1 ;; [153, 248, 48, 241] 0x000001a0 LW $writable R63 0x0 ;; [93, 67, 240, 0] 0x000001a4 RVRT $writable ;; [54, 64, 0, 0] 0x000001a8 CFSI 0x40ad8 ;; [146, 4, 10, 216] @@ -1365,95 +1227,63 @@ data_NonConfigurable_2 .word 14454674236531057292 0x000004e8 POPH 0x80000 ;; [152, 8, 0, 0] 0x000004ec POPL 0x7 ;; [151, 0, 0, 7] 0x000004f0 JAL $zero R62 0x0 ;; [153, 3, 224, 0] -0x000004f4 PSHL 0xff ;; [149, 0, 0, 255] +0x000004f4 PSHL 0xf ;; [149, 0, 0, 15] 0x000004f8 PSHH 0x80000 ;; [150, 8, 0, 0] 0x000004fc MOVE R59 $sp ;; [26, 236, 80, 0] -0x00000500 CFEI 0xb0 ;; [145, 0, 0, 176] +0x00000500 CFEI 0x20 ;; [145, 0, 0, 32] 0x00000504 MOVE $writable R57 ;; [26, 67, 144, 0] 0x00000508 MOVE R17 R62 ;; [26, 71, 224, 0] -0x0000050c ADDI R18 R59 0x60 ;; [80, 75, 176, 96] +0x0000050c ADDI R18 R59 0x10 ;; [80, 75, 176, 16] 0x00000510 MCPI R18 R58 0x10 ;; [96, 75, 160, 16] -0x00000514 ADDI R18 R59 0x60 ;; [80, 75, 176, 96] -0x00000518 ADDI R19 R59 0x70 ;; [80, 79, 176, 112] -0x0000051c MCPI R19 R18 0x10 ;; [96, 77, 32, 16] -0x00000520 ADDI R18 R59 0x70 ;; [80, 75, 176, 112] -0x00000524 ADDI R19 R59 0x90 ;; [80, 79, 176, 144] -0x00000528 MCPI R19 R18 0x10 ;; [96, 77, 32, 16] -0x0000052c ADDI R18 R59 0x90 ;; [80, 75, 176, 144] -0x00000530 MCPI R59 R18 0x10 ;; [96, 237, 32, 16] -0x00000534 ADDI R18 R59 0x20 ;; [80, 75, 176, 32] -0x00000538 MCPI R18 R59 0x10 ;; [96, 75, 176, 16] -0x0000053c ADDI R19 R59 0x60 ;; [80, 79, 176, 96] -0x00000540 ADDI R20 R59 0x80 ;; [80, 83, 176, 128] -0x00000544 MCPI R20 R19 0x10 ;; [96, 81, 48, 16] -0x00000548 ADDI R19 R59 0x80 ;; [80, 79, 176, 128] -0x0000054c ADDI R20 R59 0xa0 ;; [80, 83, 176, 160] -0x00000550 MCPI R20 R19 0x10 ;; [96, 81, 48, 16] -0x00000554 ADDI R19 R59 0xa0 ;; [80, 79, 176, 160] -0x00000558 ADDI R20 R59 0x10 ;; [80, 83, 176, 16] -0x0000055c MCPI R20 R19 0x10 ;; [96, 81, 48, 16] -0x00000560 ADDI R19 R59 0x30 ;; [80, 79, 176, 48] -0x00000564 MCPI R19 R20 0x10 ;; [96, 77, 64, 16] -0x00000568 ADDI R19 R59 0x40 ;; [80, 79, 176, 64] -0x0000056c MCPI R19 R18 0x8 ;; [96, 77, 32, 8] -0x00000570 ADDI R18 R59 0x58 ;; [80, 75, 176, 88] -0x00000574 MCPI R18 R19 0x8 ;; [96, 73, 48, 8] -0x00000578 ADDI R18 R59 0x58 ;; [80, 75, 176, 88] -0x0000057c ADDI R19 R59 0x48 ;; [80, 79, 176, 72] -0x00000580 MCLI R19 0x1 ;; [112, 76, 0, 1] -0x00000584 ADDI R20 R59 0x50 ;; [80, 83, 176, 80] -0x00000588 MCPI R20 R19 0x1 ;; [96, 81, 48, 1] -0x0000058c ADDI R19 R59 0x50 ;; [80, 79, 176, 80] -0x00000590 MOVE R23 $zero ;; [26, 92, 0, 0] -0x00000594 LT R20 R23 $one ;; [22, 81, 112, 64] -0x00000598 JNZF R20 $zero 0x2 ;; [118, 80, 0, 2] -0x0000059c MCPI $writable R19 0x1 ;; [96, 65, 48, 1] -0x000005a0 JMPF $zero 0xa ;; [116, 0, 0, 10] -0x000005a4 MUL R20 R23 $one ;; [27, 81, 112, 64] -0x000005a8 ADD R20 R19 R20 ;; [16, 81, 53, 0] -0x000005ac LW R21 R18 0x0 ;; [93, 85, 32, 0] -0x000005b0 LB R21 R21 0x0 ;; [92, 85, 80, 0] -0x000005b4 LW R22 R18 0x0 ;; [93, 89, 32, 0] -0x000005b8 ADD R22 R22 $one ;; [16, 89, 96, 64] -0x000005bc SW R18 R22 0x0 ;; [95, 73, 96, 0] -0x000005c0 SB R20 R21 0x0 ;; [94, 81, 80, 0] -0x000005c4 ADD R23 R23 $one ;; [16, 93, 112, 64] -0x000005c8 JMPB $zero 0xc ;; [117, 0, 0, 12] -0x000005cc CFSI 0xb0 ;; [146, 0, 0, 176] -0x000005d0 MOVE R62 R17 ;; [26, 249, 16, 0] -0x000005d4 POPH 0x80000 ;; [152, 8, 0, 0] -0x000005d8 POPL 0xff ;; [151, 0, 0, 255] -0x000005dc JAL $zero R62 0x0 ;; [153, 3, 224, 0] -0x000005e0 PSHL 0xf ;; [149, 0, 0, 15] -0x000005e4 PSHH 0x80000 ;; [150, 8, 0, 0] -0x000005e8 MOVE R59 $sp ;; [26, 236, 80, 0] -0x000005ec CFEI 0x38 ;; [145, 0, 0, 56] -0x000005f0 MOVE $writable R62 ;; [26, 67, 224, 0] -0x000005f4 ADDI R17 R59 0x30 ;; [80, 71, 176, 48] -0x000005f8 SB R17 R58 0x0 ;; [94, 71, 160, 0] -0x000005fc ADDI R17 R59 0x30 ;; [80, 71, 176, 48] -0x00000600 MOVE R18 $one ;; [26, 72, 16, 0] -0x00000604 ALOC $one ;; [38, 4, 0, 0] -0x00000608 MCP $hp R17 R18 ;; [40, 29, 20, 128] -0x0000060c ADDI R17 R59 0x10 ;; [80, 71, 176, 16] -0x00000610 SW R59 $hp 0x2 ;; [95, 236, 112, 2] -0x00000614 SW R59 $one 0x3 ;; [95, 236, 16, 3] -0x00000618 MCPI R59 R17 0x10 ;; [96, 237, 16, 16] -0x0000061c ADDI R17 R59 0x20 ;; [80, 71, 176, 32] -0x00000620 MCPI R17 R59 0x10 ;; [96, 71, 176, 16] -0x00000624 LW R17 R63 0x2 ;; [93, 71, 240, 2] -0x00000628 LW R18 R59 0x4 ;; [93, 75, 176, 4] -0x0000062c LW R19 R59 0x5 ;; [93, 79, 176, 5] -0x00000630 LOGD $zero R17 R18 R19 ;; [52, 1, 20, 147] -0x00000634 CFSI 0x38 ;; [146, 0, 0, 56] -0x00000638 MOVE R62 $writable ;; [26, 249, 0, 0] -0x0000063c POPH 0x80000 ;; [152, 8, 0, 0] -0x00000640 POPL 0xf ;; [151, 0, 0, 15] -0x00000644 JAL $zero R62 0x0 ;; [153, 3, 224, 0] +0x00000514 LW R18 R59 0x2 ;; [93, 75, 176, 2] +0x00000518 LW R19 R59 0x3 ;; [93, 79, 176, 3] +0x0000051c SW R59 R18 0x0 ;; [95, 237, 32, 0] +0x00000520 SW R59 R19 0x1 ;; [95, 237, 48, 1] +0x00000524 LW R18 R59 0x0 ;; [93, 75, 176, 0] +0x00000528 MOVE R19 $one ;; [26, 76, 16, 0] +0x0000052c ALOC $one ;; [38, 4, 0, 0] +0x00000530 MCP $hp R18 R19 ;; [40, 29, 36, 192] +0x00000534 MUL R18 $zero $one ;; [27, 72, 0, 64] +0x00000538 ADD R18 $hp R18 ;; [16, 72, 116, 128] +0x0000053c LB R18 R18 0x0 ;; [92, 73, 32, 0] +0x00000540 MUL R19 $zero $one ;; [27, 76, 0, 64] +0x00000544 ADD R19 $writable R19 ;; [16, 77, 4, 192] +0x00000548 SB R19 R18 0x0 ;; [94, 77, 32, 0] +0x0000054c CFSI 0x20 ;; [146, 0, 0, 32] +0x00000550 MOVE R62 R17 ;; [26, 249, 16, 0] +0x00000554 POPH 0x80000 ;; [152, 8, 0, 0] +0x00000558 POPL 0xf ;; [151, 0, 0, 15] +0x0000055c JAL $zero R62 0x0 ;; [153, 3, 224, 0] +0x00000560 PSHL 0xf ;; [149, 0, 0, 15] +0x00000564 PSHH 0x80000 ;; [150, 8, 0, 0] +0x00000568 MOVE R59 $sp ;; [26, 236, 80, 0] +0x0000056c CFEI 0x38 ;; [145, 0, 0, 56] +0x00000570 MOVE $writable R62 ;; [26, 67, 224, 0] +0x00000574 ADDI R17 R59 0x30 ;; [80, 71, 176, 48] +0x00000578 SB R17 R58 0x0 ;; [94, 71, 160, 0] +0x0000057c ADDI R17 R59 0x30 ;; [80, 71, 176, 48] +0x00000580 MOVE R18 $one ;; [26, 72, 16, 0] +0x00000584 ALOC $one ;; [38, 4, 0, 0] +0x00000588 MCP $hp R17 R18 ;; [40, 29, 20, 128] +0x0000058c ADDI R17 R59 0x10 ;; [80, 71, 176, 16] +0x00000590 SW R59 $hp 0x2 ;; [95, 236, 112, 2] +0x00000594 SW R59 $one 0x3 ;; [95, 236, 16, 3] +0x00000598 MCPI R59 R17 0x10 ;; [96, 237, 16, 16] +0x0000059c ADDI R17 R59 0x20 ;; [80, 71, 176, 32] +0x000005a0 MCPI R17 R59 0x10 ;; [96, 71, 176, 16] +0x000005a4 LW R17 R63 0x2 ;; [93, 71, 240, 2] +0x000005a8 LW R18 R59 0x4 ;; [93, 75, 176, 4] +0x000005ac LW R19 R59 0x5 ;; [93, 79, 176, 5] +0x000005b0 LOGD $zero R17 R18 R19 ;; [52, 1, 20, 147] +0x000005b4 CFSI 0x38 ;; [146, 0, 0, 56] +0x000005b8 MOVE R62 $writable ;; [26, 249, 0, 0] +0x000005bc POPH 0x80000 ;; [152, 8, 0, 0] +0x000005c0 POPL 0xf ;; [151, 0, 0, 15] +0x000005c4 JAL $zero R62 0x0 ;; [153, 3, 224, 0] .data_section: -0x00000648 .word i18446744073709486083, as hex be bytes ([FF, FF, FF, FF, FF, FF, 00, 03]) -0x00000650 .word i262145, as hex be bytes ([00, 00, 00, 00, 00, 04, 00, 01]) -0x00000658 .word i14454674236531057292, as hex be bytes ([C8, 99, 51, A2, 4C, 6C, A2, 8C]) +0x000005c8 .word i18446744073709486083, as hex be bytes ([FF, FF, FF, FF, FF, FF, 00, 03]) +0x000005d0 .word i262145, as hex be bytes ([00, 00, 00, 00, 00, 04, 00, 01]) +0x000005d8 .word i14454674236531057292, as hex be bytes ([C8, 99, 51, A2, 4C, 6C, A2, 8C]) ;; --- END OF TARGET BYTECODE --- warning @@ -1553,7 +1383,7 @@ warning ____ Compiled script "array_repeat" with 8 warnings. - Finished release [optimized + fuel] target(s) [1.632 KB] in ??? + Finished release [optimized + fuel] target(s) [1.504 KB] in ??? > forc test --path test/src/e2e_vm_tests/test_programs/should_pass/language/array/array_repeat --experimental const_generics --verbose --release exit status: 0 @@ -1561,10 +1391,10 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/language/array/array_repeat Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-assert) Compiling script array_repeat (test/src/e2e_vm_tests/test_programs/should_pass/language/array/array_repeat) - Finished release [optimized + fuel] target(s) [2.864 KB] in ??? + Finished release [optimized + fuel] target(s) [2.736 KB] in ??? script array_repeat - Bytecode size: 2864 bytes (2.864 KB) - Bytecode hash: 0xdc2e29e1f37d24b165bc4b534388fc87ecb1148464b75c6268eb8499f2c9f6df + Bytecode size: 2736 bytes (2.736 KB) + Bytecode hash: 0x9d78b08bc9581aab7480d88e7a54cee359062875d2a0370b6216723c9c5650a0 Running 1 test, filtered 0 tests tested -- array_repeat diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/attributes_deprecated/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/attributes_deprecated/stdout.snap index 0686973ffb8..9f0b3cfff53 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/attributes_deprecated/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/attributes_deprecated/stdout.snap @@ -1,6 +1,6 @@ --- source: test/src/snapshot/mod.rs -assertion_line: 101 +snapshot_kind: text --- > forc build --path test/src/e2e_vm_tests/test_programs/should_pass/language/attributes_deprecated --release exit status: 0 @@ -165,22 +165,22 @@ warning: Struct field is deprecated ____ warning: Function is deprecated - --> test/src/e2e_vm_tests/test_programs/should_pass/language/attributes_deprecated/src/main..sw:12:15 + --> test/src/e2e_vm_tests/test_programs/should_pass/language/attributes_deprecated/src/main..sw:15:15 | ... -12 | let _result = __contract_entry_deprecated_to_be_abi_method(); +15 | let _result = __contract_entry_deprecated_to_be_abi_method(); | -------------------------------------------- Function "deprecated_to_be_abi_method" is deprecated. | ____ warning: Function is deprecated - --> test/src/e2e_vm_tests/test_programs/should_pass/language/attributes_deprecated/src/main..sw:18:15 + --> test/src/e2e_vm_tests/test_programs/should_pass/language/attributes_deprecated/src/main..sw:21:15 | ... -18 | let _result = __contract_entry_deprecated_abi_provided_method(); +21 | let _result = __contract_entry_deprecated_abi_provided_method(); | ----------------------------------------------- Function "deprecated_abi_provided_method" is deprecated. | ____ Compiled contract "attributes_deprecated" with 19 warnings. - Finished release [optimized + fuel] target(s) [472 B] in ??? + Finished release [optimized + fuel] target(s) [400 B] in ??? diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/stdout.snap index 29d9528c869..080060543ba 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/stdout.snap @@ -14,10 +14,10 @@ library { Compiling script configurable_dedup_decode (test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode) // IR: Final script { - TUPLE = config { u64 }, abi_decode_in_place_0, 0x0000000000000002, !1 - WRAPPED = config { u64 }, abi_decode_in_place_0, 0x0000000000000001, !2 + TUPLE = config { u64 }, abi_decode_in_place_7, 0x0000000000000002, !1 + WRAPPED = config { u64 }, abi_decode_in_place_7, 0x0000000000000001, !2 - pub fn abi_decode_in_place_0(ptr !4: ptr, len !5: u64, target !6: ptr) -> (), !10 { + pub fn abi_decode_in_place_7(ptr !4: ptr, len !5: u64, target !6: ptr) -> (), !10 { local mut { ptr } buffer local { u64 } temp @@ -28,52 +28,52 @@ script { store ptr to v2, !16 v3 = get_local __ptr { ptr }, buffer, !17 v4 = const u64 0 - v5 = get_elem_ptr v3, __ptr ptr, v4, !25 - v6 = load v5, !26 - v7 = asm(ptr: v6, val) -> u64 val, !28 { - lw val ptr i0, !29 + v5 = get_elem_ptr v3, __ptr ptr, v4, !28 + v6 = load v5, !29 + v7 = asm(ptr: v6, val) -> u64 val, !31 { + lw val ptr i0, !32 } - v8 = load v5, !30 - v9 = const u64 8, !31 - v10 = add v8, v9, !32 - store v10 to v5, !34 - v11 = get_local __ptr { u64 }, temp, !36 + v8 = load v5, !33 + v9 = const u64 8, !34 + v10 = add v8, v9, !35 + store v10 to v5, !37 + v11 = get_local __ptr { u64 }, temp, !39 v12 = const u64 0 - v13 = get_elem_ptr v11, __ptr u64, v12, !37 - store v7 to v13, !38 - v14 = get_local __ptr { u64 }, temp, !39 - v15 = cast_ptr v14 to ptr, !40 + v13 = get_elem_ptr v11, __ptr u64, v12, !40 + store v7 to v13, !41 + v14 = get_local __ptr { u64 }, temp, !42 + v15 = cast_ptr v14 to ptr, !43 v16 = const u64 8 - v17 = asm(target: target, temp: v15, size: v16) -> (), !41 { - mcp target temp size, !42 + v17 = asm(target: target, temp: v15, size: v16) -> (), !44 { + mcp target temp size, !45 } v18 = const unit () ret () v18 } - pub entry fn __entry() -> __ptr never, !46 { - local u64 item_ + pub entry fn __entry() -> __ptr never, !48 { + local u64 _result entry(): - v0 = call main_8(), !49 - v1 = get_local __ptr u64, item_, !52 + v0 = call main_12(), !51 + v1 = get_local __ptr u64, _result, !52 store v0 to v1, !52 - v2 = get_local __ptr u64, item_, !54 + v2 = get_local __ptr u64, _result, !53 v3 = const u64 8 - retd v2 v3, !56 + retd v2 v3, !57 } - entry_orig fn main_8() -> u64, !59 { + entry_orig fn main_12() -> u64, !60 { entry(): - v0 = get_config __ptr { u64 }, WRAPPED, !60 + v0 = get_config __ptr { u64 }, WRAPPED, !61 v1 = const u64 0 - v2 = get_elem_ptr v0, __ptr u64, v1, !61 + v2 = get_elem_ptr v0, __ptr u64, v1, !62 v3 = load v2 - v4 = get_config __ptr { u64 }, TUPLE, !62 + v4 = get_config __ptr { u64 }, TUPLE, !63 v5 = const u64 0 - v6 = get_elem_ptr v4, __ptr u64, v5, !63 + v6 = get_elem_ptr v4, __ptr u64, v5, !64 v7 = load v6 - v8 = add v3, v7, !66 + v8 = add v3, v7, !67 ret u64 v8 } } @@ -82,69 +82,70 @@ script { !1 = span !0 177 182 !2 = span !0 136 143 !3 = "sway-lib-std/src/codec.sw" -!4 = span !3 81785 81788 -!5 = span !3 81799 81802 -!6 = span !3 81809 81815 -!7 = span !3 81755 82088 -!8 = fn_name_span !3 81762 81781 +!4 = span !3 82242 82245 +!5 = span !3 82256 82259 +!6 = span !3 82266 82272 +!7 = span !3 82212 82726 +!8 = fn_name_span !3 82219 82238 !9 = inline "never" !10 = (!7 !8 !9) -!11 = span !3 81873 81907 -!12 = fn_call_path_span !3 81873 81897 -!13 = span !3 735 755 +!11 = span !3 82473 82507 +!12 = fn_call_path_span !3 82473 82497 +!13 = span !3 739 759 !14 = (!11 !12 !13) !15 = (!11 !12) !16 = (!11 !12 !13) -!17 = span !3 81938 81944 -!18 = span !3 81924 81945 -!19 = fn_call_path_span !3 81924 81937 -!20 = span !3 134145 134166 -!21 = fn_call_path_span !3 134145 134158 -!22 = span !3 82744 82772 -!23 = fn_call_path_span !3 82751 82763 -!24 = span !3 625 637 -!25 = (!18 !19 !20 !21 !22 !23 !24) -!26 = (!18 !19 !20 !21 !22 !23) -!27 = span !3 2766 2847 -!28 = (!18 !19 !20 !21 !22 !23 !27) -!29 = span !3 2804 2817 -!30 = (!18 !19 !20 !21 !22 !23) -!31 = (!18 !19 !20 !21 !22 !23) -!32 = (!18 !19 !20 !21 !22 !23) -!33 = span !3 2857 2896 -!34 = (!18 !19 !20 !21 !22 !23 !33) -!35 = span !3 134144 134169 -!36 = (!18 !19 !35) -!37 = (!18 !19 !35) -!38 = (!18 !19 !35) -!39 = span !3 82004 82008 -!40 = span !3 81994 82009 -!41 = span !3 81951 82086 -!42 = span !3 82059 82079 -!43 = "test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/src/main..sw" -!44 = span !43 0 130 -!45 = fn_name_span !43 7 14 -!46 = (!44 !45) -!47 = span !43 59 65 -!48 = fn_call_path_span !43 59 63 -!49 = (!47 !48) -!50 = span !43 83 116 -!51 = fn_call_path_span !43 83 100 -!52 = (!50 !51) -!53 = span !3 81400 81404 -!54 = (!50 !51 !53) -!55 = span !3 81384 81411 -!56 = (!50 !51 !55) -!57 = span !0 202 246 -!58 = fn_name_span !0 205 209 -!59 = (!57 !58) -!60 = span !0 225 232 -!61 = span !0 30 36 -!62 = span !0 237 242 -!63 = span !0 243 244 -!64 = span !0 225 244 -!65 = fn_call_path_span !0 235 236 -!66 = (!64 !65) +!17 = span !3 82542 82548 +!18 = span !3 82528 82549 +!19 = fn_call_path_span !3 82528 82541 +!20 = "test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/src/main..sw" +!21 = span !20 318 340 +!22 = fn_call_path_span !20 325 331 +!23 = span !3 4120 4139 +!24 = fn_call_path_span !3 4120 4133 +!25 = span !3 83379 83407 +!26 = fn_call_path_span !3 83386 83398 +!27 = span !3 625 641 +!28 = (!18 !19 !21 !22 !23 !24 !25 !26 !27) +!29 = (!18 !19 !21 !22 !23 !24 !25 !26) +!30 = span !3 2927 3008 +!31 = (!18 !19 !21 !22 !23 !24 !25 !26 !30) +!32 = span !3 2965 2978 +!33 = (!18 !19 !21 !22 !23 !24 !25 !26) +!34 = (!18 !19 !21 !22 !23 !24 !25 !26) +!35 = (!18 !19 !21 !22 !23 !24 !25 !26) +!36 = span !3 3018 3057 +!37 = (!18 !19 !21 !22 !23 !24 !25 !26 !36) +!38 = span !20 308 343 +!39 = (!18 !19 !38) +!40 = (!18 !19) +!41 = (!18 !19 !38) +!42 = span !3 82620 82624 +!43 = span !3 82610 82625 +!44 = span !3 82559 82718 +!45 = span !3 82687 82707 +!46 = span !20 0 131 +!47 = fn_name_span !20 7 14 +!48 = (!46 !47) +!49 = span !20 59 65 +!50 = fn_call_path_span !20 59 63 +!51 = (!49 !50) +!52 = span !20 40 66 +!53 = span !20 109 116 +!54 = span !20 83 117 +!55 = fn_call_path_span !20 83 100 +!56 = span !3 81408 81434 +!57 = (!54 !55 !56) +!58 = span !0 202 246 +!59 = fn_name_span !0 205 209 +!60 = (!58 !59) +!61 = span !0 225 232 +!62 = span !0 30 36 +!63 = span !0 237 242 +!64 = span !0 243 244 +!65 = span !0 225 244 +!66 = fn_call_path_span !0 235 236 +!67 = (!65 !66) ;; ASM: Final program ;; Program kind: Script @@ -168,13 +169,13 @@ addi $$arg2 $ssp i8 ; get pointer to configurable WRAPPED stack addres jal $$reta $pc i7 ; decode configurable WRAPPED move $$locbase $sp ; save locals base register for function __entry cfei i8 ; allocate 8 bytes for locals and 0 slots for call arguments -jal $$reta $pc i26 ; [call]: call main_8 +jal $$reta $pc i26 ; [call]: call main_12 sw $$locbase $$retv i0 ; store word movi $r0 i8 ; initialize constant into register retd $$locbase $r0 pshl i31 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function abi_decode_in_place_0 +move $$locbase $sp ; save locals base register for function abi_decode_in_place_7 cfei i16 ; allocate 16 bytes for locals and 0 slots for call arguments move $r2 $$arg2 ; save argument 2 (target) move $r3 $$reta ; save return address @@ -196,7 +197,7 @@ popl i31 ; restore registers 16..40 jal $zero $$reta i0 ; return from call pshl i3 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function main_8 +move $$locbase $sp ; save locals base register for function main_12 lw $r0 $ssp i1 ; load word lw $r1 $ssp i0 ; load word add $r0 $r0 $r1 diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/intrinsics/dbg/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/intrinsics/dbg/stdout.snap index 7d1f9c4b68a..b94db3cc3b0 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/intrinsics/dbg/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/intrinsics/dbg/stdout.snap @@ -1,5 +1,6 @@ --- source: test/src/snapshot/mod.rs +snapshot_kind: text --- > forc build --path test/src/e2e_vm_tests/test_programs/should_pass/language/intrinsics/dbg --asm final | sub ecal ecal $r1 $r0 $zero $zero ; ecal id fd zero zero @@ -71,7 +72,7 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/language/intrinsics/dbg Compiling library std (sway-lib-std) Compiling script dbg (test/src/e2e_vm_tests/test_programs/should_pass/language/intrinsics/dbg) - Finished debug [unoptimized + fuel] target(s) [37.856 KB] in ??? + Finished debug [unoptimized + fuel] target(s) [37.56 KB] in ??? Running 1 test, filtered 0 tests tested -- dbg diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/logging/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/logging/stdout.snap index 8ca875afa65..2ebb1a1f450 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/logging/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/logging/stdout.snap @@ -17,18 +17,18 @@ script { global __const_global : string<4> = const string<4> "sway" pub entry fn __entry() -> __ptr never, !3 { - local u64 item_ + local u64 _result entry(): v0 = call main_0(), !6 - v1 = get_local __ptr u64, item_, !9 - store v0 to v1, !9 - v2 = get_local __ptr u64, item_, !12 + v1 = get_local __ptr u64, _result, !7 + store v0 to v1, !7 + v2 = get_local __ptr u64, _result, !8 v3 = const u64 8 - retd v2 v3, !14 + retd v2 v3, !13 } - entry_orig fn main_0() -> u64, !18 { + entry_orig fn main_0() -> u64, !17 { local { ptr, u64 } __anon_0 local { ptr, u64 } __anon_000 local slice __anon_1 @@ -43,68 +43,68 @@ script { entry(): v0 = get_local __ptr u256, __const - v1 = const u64 0, !19 - v2 = call local_log_1(v1), !22 - v3 = const u64 0, !33 - v4 = asm(size: v3, ptr) -> ptr ptr, !35 { - aloc size, !36 - move ptr hp, !37 + v1 = const u64 0, !18 + v2 = call local_log_1(v1), !21 + v3 = const u64 0, !32 + v4 = asm(size: v3, ptr) -> ptr ptr, !34 { + aloc size, !35 + move ptr hp, !36 } - v5 = get_local __ptr { ptr, u64 }, __anon_000, !39 + v5 = get_local __ptr { ptr, u64 }, __anon_000, !38 v6 = const u64 0 - v7 = get_elem_ptr v5, __ptr ptr, v6, !40 - store v4 to v7, !41 + v7 = get_elem_ptr v5, __ptr ptr, v6, !39 + store v4 to v7, !40 v8 = const u64 1 - v9 = get_elem_ptr v5, __ptr u64, v8, !42 - v10 = const u64 0, !43 - store v10 to v9, !44 - v11 = get_local __ptr { { ptr, u64 }, u64 }, e, !46 + v9 = get_elem_ptr v5, __ptr u64, v8, !41 + v10 = const u64 0, !42 + store v10 to v9, !43 + v11 = get_local __ptr { { ptr, u64 }, u64 }, e, !45 v12 = const u64 0 - v13 = get_elem_ptr v11, __ptr { ptr, u64 }, v12, !47 + v13 = get_elem_ptr v11, __ptr { ptr, u64 }, v12, !46 mem_copy_val v13, v5 v14 = const u64 1 - v15 = get_elem_ptr v11, __ptr u64, v14, !47 - v16 = const u64 0, !48 - store v16 to v15, !49 - v17 = get_local __ptr { { ptr, u64 }, u64 }, e, !50 - v18 = const u64 1, !51 - v19 = call push_11(v17, v18), !54 - v20 = get_local __ptr { { ptr, u64 }, u64 }, e, !55 - v21 = const u64 2, !56 - v22 = call push_11(v20, v21), !59 - v23 = get_local __ptr { { ptr, u64 }, u64 }, e, !60 - v24 = const u64 3, !61 - v25 = call push_11(v23, v24), !64 - v26 = get_local __ptr { { ptr, u64 }, u64 }, e, !65 + v15 = get_elem_ptr v11, __ptr u64, v14, !46 + v16 = const u64 0, !47 + store v16 to v15, !48 + v17 = get_local __ptr { { ptr, u64 }, u64 }, e, !49 + v18 = const u64 1, !50 + v19 = call push_12(v17, v18), !53 + v20 = get_local __ptr { { ptr, u64 }, u64 }, e, !54 + v21 = const u64 2, !55 + v22 = call push_12(v20, v21), !58 + v23 = get_local __ptr { { ptr, u64 }, u64 }, e, !59 + v24 = const u64 3, !60 + v25 = call push_12(v23, v24), !63 + v26 = get_local __ptr { { ptr, u64 }, u64 }, e, !64 v27 = get_global __ptr string<4>, __const_global - v28 = cast_ptr v27 to ptr, !66 - v29 = get_local __ptr { ptr, u64 }, __anon_0, !66 + v28 = cast_ptr v27 to ptr, !65 + v29 = get_local __ptr { ptr, u64 }, __anon_0, !65 v30 = const u64 0 v31 = get_elem_ptr v29, __ptr ptr, v30 - store v28 to v31, !66 + store v28 to v31, !65 v32 = const u64 1 v33 = get_elem_ptr v29, __ptr u64, v32 v34 = const u64 4 - store v34 to v33, !66 - v35 = get_local __ptr slice, __anon_1, !66 + store v34 to v33, !65 + v35 = get_local __ptr slice, __anon_1, !65 mem_copy_bytes v35, v29, 16 - v36 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, __tmp_arg, !67 + v36 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, __tmp_arg, !66 v37 = const u64 0 v38 = get_elem_ptr v36, __ptr u64, v37 - v39 = const u64 1, !68 - store v39 to v38, !67 + v39 = const u64 1, !67 + store v39 to v38, !66 v40 = const u64 1 v41 = get_elem_ptr v36, __ptr u64, v40 - v42 = const u64 2, !69 - store v42 to v41, !67 + v42 = const u64 2, !68 + store v42 to v41, !66 v43 = const u64 2 v44 = get_elem_ptr v36, __ptr u64, v43 - v45 = const u64 3, !70 - store v45 to v44, !67 + v45 = const u64 3, !69 + store v45 to v44, !66 v46 = const u64 3 v47 = get_elem_ptr v36, __ptr u8, v46 - v48 = const u8 4, !71 - store v48 to v47, !67 + v48 = const u8 4, !70 + store v48 to v47, !66 v49 = const u64 4 v50 = get_elem_ptr v36, __ptr { { ptr, u64 }, u64 }, v49 mem_copy_val v50, v26 @@ -115,65 +115,65 @@ script { v54 = get_elem_ptr v36, __ptr u256, v53 mem_copy_val v54, v0 v55 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, __tmp_arg - v56 = call local_log_19(v55) - v57 = get_local __ptr { u64 }, __tmp_arg0, !72 + v56 = call local_log_21(v55) + v57 = get_local __ptr { u64 }, __tmp_arg0, !71 v58 = const u64 0 v59 = get_elem_ptr v57, __ptr u64, v58 - v60 = const u64 1, !73 - store v60 to v59, !72 + v60 = const u64 1, !72 + store v60 to v59, !71 v61 = get_local __ptr { u64 }, __tmp_arg0 - v62 = call local_log_32(v61) - v63 = get_local __ptr { u64, ( { u64 } | () ) }, __tmp_arg1, !74 + v62 = call local_log_36(v61) + v63 = get_local __ptr { u64, ( { u64 } | () ) }, __tmp_arg1, !73 v64 = const u64 0 - v65 = get_elem_ptr v63, __ptr u64, v64, !74 - v66 = const u64 0, !74 - store v66 to v65, !74 - v67 = get_local __ptr { u64 }, __anon_5, !75 + v65 = get_elem_ptr v63, __ptr u64, v64, !73 + v66 = const u64 0, !73 + store v66 to v65, !73 + v67 = get_local __ptr { u64 }, __anon_5, !74 v68 = const u64 0 v69 = get_elem_ptr v67, __ptr u64, v68 - v70 = const u64 1, !76 - store v70 to v69, !75 + v70 = const u64 1, !75 + store v70 to v69, !74 v71 = const u64 1 v72 = const u64 0 - v73 = get_elem_ptr v63, __ptr { u64 }, v71, v72, !74 + v73 = get_elem_ptr v63, __ptr { u64 }, v71, v72, !73 mem_copy_val v73, v67 v74 = get_local __ptr { u64, ( { u64 } | () ) }, __tmp_arg1 - v75 = call local_log_35(v74) - v76 = get_local __ptr { u64, ( { u64 } | () ) }, __tmp_arg2, !74 + v75 = call local_log_41(v74) + v76 = get_local __ptr { u64, ( { u64 } | () ) }, __tmp_arg2, !73 v77 = const u64 0 - v78 = get_elem_ptr v76, __ptr u64, v77, !74 - v79 = const u64 1, !74 - store v79 to v78, !74 + v78 = get_elem_ptr v76, __ptr u64, v77, !73 + v79 = const u64 1, !73 + store v79 to v78, !73 v80 = get_local __ptr { u64, ( { u64 } | () ) }, __tmp_arg2 - v81 = call local_log_35(v80) + v81 = call local_log_41(v80) v82 = get_local __ptr { }, __tmp_arg3 - v83 = call local_log_38(v82) - v84 = const u64 1, !77 + v83 = call local_log_45(v82) + v84 = const u64 1, !76 ret u64 v84 } - fn local_log_1(item !78: u64) -> (), !82 { + fn local_log_1(item !77: u64) -> (), !81 { local mut slice __aggr_memcpy_0 local { ptr, u64 } __anon_0 local slice __log_arg local u64 item_0 entry(item: u64): - v0 = get_local __ptr u64, item_0, !83 - store item to v0, !83 - v1 = get_local __ptr u64, item_0, !85 + v0 = get_local __ptr u64, item_0, !82 + store item to v0, !82 + v1 = get_local __ptr u64, item_0, !84 v2 = const u64 8 - v3 = asm(size: v2, src: v1) -> ptr hp, !87 { - aloc size, !88 - mcp hp src size, !89 + v3 = asm(size: v2, src: v1) -> ptr hp, !86 { + aloc size, !87 + mcp hp src size, !88 } - v4 = get_local __ptr { ptr, u64 }, __anon_0, !91 + v4 = get_local __ptr { ptr, u64 }, __anon_0, !90 v5 = const u64 0 - v6 = get_elem_ptr v4, __ptr ptr, v5, !92 - store v3 to v6, !93 + v6 = get_elem_ptr v4, __ptr ptr, v5, !91 + store v3 to v6, !92 v7 = const u64 1 - v8 = get_elem_ptr v4, __ptr u64, v7, !94 - store v2 to v8, !95 + v8 = get_elem_ptr v4, __ptr u64, v7, !93 + store v2 to v8, !94 v9 = asm(s: v4) -> __ptr slice s { } v10 = get_local __ptr slice, __aggr_memcpy_0 @@ -186,7 +186,7 @@ script { ret () v13 } - pub fn abi_encode_4(self !96: u64, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }) -> (), !99 { + pub fn abi_encode_5(self !95: u64, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }) -> (), !98 { local mut { ptr, u64, u64 } __aggr_memcpy_0 local mut { ptr, u64, u64 } __aggr_memcpy_00 local { ptr, u64, u64 } __anon_0 @@ -197,9 +197,9 @@ script { entry(self: u64, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }): v0 = get_local __ptr { { ptr, u64, u64 } }, buffer_ mem_copy_val v0, buffer - v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !100 + v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !99 v2 = const u64 0 - v3 = get_elem_ptr v1, __ptr { ptr, u64, u64 }, v2, !101 + v3 = get_elem_ptr v1, __ptr { ptr, u64, u64 }, v2, !100 v4 = asm(buffer: v3) -> __ptr { ptr, u64, u64 } buffer { } v5 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 @@ -238,7 +238,7 @@ script { } v31 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_00 mem_copy_val v31, v30 - v32 = get_local __ptr { { ptr, u64, u64 } }, __anon_2, !102 + v32 = get_local __ptr { { ptr, u64, u64 } }, __anon_2, !101 v33 = const u64 0 v34 = get_elem_ptr v32, __ptr { ptr, u64, u64 }, v33 mem_copy_val v34, v31 @@ -257,7 +257,7 @@ script { br block0(v39, v38) } - pub fn new_5(__ret_value: __ptr { { ptr, u64, u64 } }) -> (), !105 { + pub fn new_6(__ret_value: __ptr { { ptr, u64, u64 } }) -> (), !104 { local mut { ptr, u64, u64 } __aggr_memcpy_0 local { ptr, u64, u64 } __anon_0 local { { ptr, u64, u64 } } __anon_1 @@ -282,7 +282,7 @@ script { } v11 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 mem_copy_val v11, v10 - v12 = get_local __ptr { { ptr, u64, u64 } }, __anon_1, !106 + v12 = get_local __ptr { { ptr, u64, u64 } }, __anon_1, !105 v13 = const u64 0 v14 = get_elem_ptr v12, __ptr { ptr, u64, u64 }, v13 mem_copy_val v14, v11 @@ -291,7 +291,7 @@ script { ret () v15 } - pub fn as_raw_slice_6(self: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr slice) -> (), !109 { + pub fn as_raw_slice_7(self: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr slice) -> (), !108 { local mut slice __aggr_memcpy_00 local { ptr, u64 } __anon_1 local { { ptr, u64, u64 } } self_ @@ -299,9 +299,9 @@ script { entry(self: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr slice): v0 = get_local __ptr { { ptr, u64, u64 } }, self_ mem_copy_val v0, self - v1 = get_local __ptr { { ptr, u64, u64 } }, self_, !110 + v1 = get_local __ptr { { ptr, u64, u64 } }, self_, !109 v2 = const u64 0 - v3 = get_elem_ptr v1, __ptr { ptr, u64, u64 }, v2, !101 + v3 = get_elem_ptr v1, __ptr { ptr, u64, u64 }, v2, !100 v4 = asm(buffer: v3) -> __ptr { ptr, u64, u64 } buffer { } v5 = const u64 0 @@ -326,84 +326,84 @@ script { ret () v18 } - pub fn push_11(self !111: __ptr { { ptr, u64 }, u64 }, value !112: u64) -> (), !115 { + pub fn push_12(self !110: __ptr { { ptr, u64 }, u64 }, value !111: u64) -> (), !114 { entry(self: __ptr { { ptr, u64 }, u64 }, value: u64): v0 = const u64 1 - v1 = get_elem_ptr self, __ptr u64, v0, !116 + v1 = get_elem_ptr self, __ptr u64, v0, !115 v2 = load v1 v3 = const u64 0 - v4 = get_elem_ptr self, __ptr { ptr, u64 }, v3, !117 + v4 = get_elem_ptr self, __ptr { ptr, u64 }, v3, !116 v5 = const u64 1 - v6 = get_elem_ptr v4, __ptr u64, v5, !118 + v6 = get_elem_ptr v4, __ptr u64, v5, !117 v7 = load v6 - v8 = cmp eq v2 v7, !121 - cbr v8, block0(), block2(), !119 + v8 = cmp eq v2 v7, !120 + cbr v8, block0(), block2(), !118 block0(): - v9 = load v6, !124 - v10 = const u64 0, !125 - v11 = cmp eq v9 v10, !128 - v12 = const u64 1, !129 - cbr v11, grow_12_block2(v12), grow_12_block1(), !130 - - grow_12_block1(): - v13 = load v6, !124 - v14 = const u64 2, !131 - v15 = mul v14, v13, !134 - br grow_12_block2(v15), !124 - - grow_12_block2(v16: u64): + v9 = load v6, !123 + v10 = const u64 0, !124 + v11 = cmp eq v9 v10, !127 + v12 = const u64 1, !128 + cbr v11, grow_14_block2(v12), grow_14_block1(), !129 + + grow_14_block1(): + v13 = load v6, !123 + v14 = const u64 2, !130 + v15 = mul v14, v13, !133 + br grow_14_block2(v15), !123 + + grow_14_block2(v16: u64): v17 = const u64 0 - v18 = get_elem_ptr v4, __ptr ptr, v17, !136 - v19 = load v18, !124 - v20 = load v6, !124 - v21 = cmp gt v16 v20, !141 - cbr v21, grow_12_realloc_13_block0(), grow_12_realloc_13_block5(v19), !142 + v18 = get_elem_ptr v4, __ptr ptr, v17, !135 + v19 = load v18, !123 + v20 = load v6, !123 + v21 = cmp gt v16 v20, !140 + cbr v21, grow_14_realloc_15_block0(), grow_14_realloc_15_block5(v19), !141 - grow_12_realloc_13_block0(): + grow_14_realloc_15_block0(): v22 = const u64 8 - v23 = mul v22, v16, !145 - v24 = asm(size: v23, ptr) -> ptr ptr, !146 { - aloc size, !36 - move ptr hp, !37 + v23 = mul v22, v16, !144 + v24 = asm(size: v23, ptr) -> ptr ptr, !145 { + aloc size, !35 + move ptr hp, !36 } - v25 = const u64 0, !147 - v26 = cmp gt v20 v25, !150 - cbr v26, grow_12_realloc_13_block1(), grow_12_realloc_13_block5(v24), !151 + v25 = const u64 0, !146 + v26 = cmp gt v20 v25, !149 + cbr v26, grow_14_realloc_15_block1(), grow_14_realloc_15_block5(v24), !150 - grow_12_realloc_13_block1(): + grow_14_realloc_15_block1(): v27 = const u64 8 - v28 = mul v20, v27, !157 - v29 = asm(dst: v24, src: v19, len: v28) -> (), !159 { - mcp dst src len, !160 + v28 = mul v20, v27, !156 + v29 = asm(dst: v24, src: v19, len: v28) -> (), !158 { + mcp dst src len, !159 } - br grow_12_realloc_13_block5(v24), !161 + br grow_14_realloc_15_block5(v24), !160 - grow_12_realloc_13_block5(v30: ptr): - store v30 to v18, !163 - store v16 to v6, !165 + grow_14_realloc_15_block5(v30: ptr): + store v30 to v18, !162 + store v16 to v6, !164 br block2() block2(): v31 = const u64 0 - v32 = get_elem_ptr v4, __ptr ptr, v31, !135 + v32 = get_elem_ptr v4, __ptr ptr, v31, !134 v33 = load v32 v34 = load v1 v35 = const u64 8 - v36 = mul v35, v34, !168 - v37 = add v33, v36, !168 - v38 = asm(ptr: v37, val: value) -> (), !172 { - sw ptr val i0, !173 + v36 = mul v35, v34, !167 + v37 = add v33, v36, !167 + v38 = asm(ptr: v37, val: value) -> (), !171 { + sw ptr val i0, !172 } v39 = load v1 - v40 = const u64 1, !174 - v41 = add v39, v40, !177 - store v41 to v1, !175 + v40 = const u64 1, !173 + v41 = add v39, v40, !176 + store v41 to v1, !174 v42 = const unit () ret () v42 } - fn local_log_19(item: __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }) -> (), !178 { + fn local_log_21(item: __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }) -> (), !177 { local mut { ptr, u64, u64 } __aggr_memcpy_0 local mut { ptr, u64, u64 } __aggr_memcpy_00 local mut { ptr, u64, u64 } __aggr_memcpy_01 @@ -464,7 +464,7 @@ script { local { { ptr, u64, u64 } } buffer________ local { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 } item_ local { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 } item_0 - local { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 } self_0 + local { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 } self_ local { { ptr, u64 }, u64 } self_10 local { { ptr, u64 }, u64 } self_3 local slice self_4 @@ -473,334 +473,334 @@ script { entry(item: __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }): v0 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, item_ mem_copy_val v0, item - v1 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, item_, !83 - v2 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, item_0, !83 + v1 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, item_, !82 + v2 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, item_0, !82 mem_copy_val v2, v1 - v3 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, item_0, !180 + v3 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, item_0, !179 v4 = get_local __ptr { { ptr, u64, u64 } }, __ret_val2 - v5 = call new_5(v4) - v6 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !183 + v5 = call new_6(v4) + v6 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_, !182 mem_copy_val v6, v3 - v7 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !184 + v7 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !183 mem_copy_val v7, v4 - v8 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !186 + v8 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_, !185 v9 = const u64 0 - v10 = get_elem_ptr v8, __ptr u64, v9, !188 - v11 = load v10, !189 - v12 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !191 + v10 = get_elem_ptr v8, __ptr u64, v9, !187 + v11 = load v10, !188 + v12 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !190 v13 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg mem_copy_val v13, v12 v14 = get_local __ptr { { ptr, u64, u64 } }, __ret_val - v15 = call abi_encode_4(v11, v13, v14) - v16 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !193 + v15 = call abi_encode_5(v11, v13, v14) + v16 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !192 mem_copy_val v16, v14 - v17 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !195 + v17 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_, !194 v18 = const u64 1 - v19 = get_elem_ptr v17, __ptr u64, v18, !197 - v20 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !199 - v21 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !202 + v19 = get_elem_ptr v17, __ptr u64, v18, !196 + v20 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !198 + v21 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !201 mem_copy_val v21, v20 - v22 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !204 + v22 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !203 v23 = const u64 0 - v24 = get_elem_ptr v22, __ptr { ptr, u64, u64 }, v23, !205 + v24 = get_elem_ptr v22, __ptr { ptr, u64, u64 }, v23, !204 v25 = asm(buffer: v24) -> __ptr { ptr, u64, u64 } buffer { } v26 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 mem_copy_val v26, v25 - v27 = get_local __ptr { ptr, u64, u64 }, __anon_00, !206 + v27 = get_local __ptr { ptr, u64, u64 }, __anon_00, !205 mem_copy_val v27, v26 v28 = const u64 0 - v29 = get_elem_ptr v27, __ptr ptr, v28, !207 - v30 = load v29, !208 + v29 = get_elem_ptr v27, __ptr ptr, v28, !206 + v30 = load v29, !207 v31 = const u64 1 - v32 = get_elem_ptr v27, __ptr u64, v31, !209 - v33 = load v32, !210 + v32 = get_elem_ptr v27, __ptr u64, v31, !208 + v33 = load v32, !209 v34 = const u64 2 - v35 = get_elem_ptr v27, __ptr u64, v34, !211 - v36 = load v35, !212 + v35 = get_elem_ptr v27, __ptr u64, v34, !210 + v36 = load v35, !211 v37 = const u64 4 - v38 = add v36, v37, !213 - v39 = cmp gt v38 v33, !214 - cbr v39, encode_20_abi_encode_21_abi_encode_22_block1(), encode_20_abi_encode_21_abi_encode_22_block0(v30, v33), !215 + v38 = add v36, v37, !212 + v39 = cmp gt v38 v33, !213 + cbr v39, encode_22_abi_encode_25_abi_encode_26_block1(), encode_22_abi_encode_25_abi_encode_26_block0(v30, v33), !214 - encode_20_abi_encode_21_abi_encode_22_block0(v40: ptr, v41: u64): - v42 = get_local __ptr u64, __anon_1, !216 + encode_22_abi_encode_25_abi_encode_26_block0(v40: ptr, v41: u64): + v42 = get_local __ptr u64, __anon_1, !215 mem_copy_val v42, v19 v43 = const u64 4 - v44 = add v42, v43, !217 - v45 = cast_ptr v44 to __ptr u8, !218 - v46 = add v40, v36, !219 - v47 = cast_ptr v46 to __ptr u8, !220 - mem_copy_bytes v47, v45, 4, !221 - v48 = get_local __ptr { ptr, u64, u64 }, __anon_2, !222 + v44 = add v42, v43, !216 + v45 = cast_ptr v44 to __ptr u8, !217 + v46 = add v40, v36, !218 + v47 = cast_ptr v46 to __ptr u8, !219 + mem_copy_bytes v47, v45, 4, !220 + v48 = get_local __ptr { ptr, u64, u64 }, __anon_2, !221 v49 = const u64 0 - v50 = get_elem_ptr v48, __ptr ptr, v49, !223 - store v40 to v50, !224 + v50 = get_elem_ptr v48, __ptr ptr, v49, !222 + store v40 to v50, !223 v51 = const u64 1 - v52 = get_elem_ptr v48, __ptr u64, v51, !225 - store v41 to v52, !226 + v52 = get_elem_ptr v48, __ptr u64, v51, !224 + store v41 to v52, !225 v53 = const u64 2 - v54 = get_elem_ptr v48, __ptr u64, v53, !227 - store v38 to v54, !228 + v54 = get_elem_ptr v48, __ptr u64, v53, !226 + store v38 to v54, !227 v55 = asm(buffer: v48) -> __ptr { ptr, u64, u64 } buffer { } v56 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_00 mem_copy_val v56, v55 - v57 = get_local __ptr { { ptr, u64, u64 } }, __anon_3, !230 + v57 = get_local __ptr { { ptr, u64, u64 } }, __anon_3, !229 v58 = const u64 0 - v59 = get_elem_ptr v57, __ptr { ptr, u64, u64 }, v58, !231 + v59 = get_elem_ptr v57, __ptr { ptr, u64, u64 }, v58, !230 mem_copy_val v59, v56 - v60 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !233 + v60 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !232 mem_copy_val v60, v57 - v61 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !235 + v61 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_, !234 v62 = const u64 2 - v63 = get_elem_ptr v61, __ptr u64, v62, !237 - v64 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !239 - v65 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !242 + v63 = get_elem_ptr v61, __ptr u64, v62, !236 + v64 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !238 + v65 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !241 mem_copy_val v65, v64 - v66 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !244 + v66 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !243 v67 = const u64 0 - v68 = get_elem_ptr v66, __ptr { ptr, u64, u64 }, v67, !245 + v68 = get_elem_ptr v66, __ptr { ptr, u64, u64 }, v67, !244 v69 = asm(buffer: v68) -> __ptr { ptr, u64, u64 } buffer { } v70 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_01 mem_copy_val v70, v69 - v71 = get_local __ptr { ptr, u64, u64 }, __anon_000, !246 + v71 = get_local __ptr { ptr, u64, u64 }, __anon_000, !245 mem_copy_val v71, v70 v72 = const u64 0 - v73 = get_elem_ptr v71, __ptr ptr, v72, !247 - v74 = load v73, !248 + v73 = get_elem_ptr v71, __ptr ptr, v72, !246 + v74 = load v73, !247 v75 = const u64 1 - v76 = get_elem_ptr v71, __ptr u64, v75, !249 - v77 = load v76, !250 + v76 = get_elem_ptr v71, __ptr u64, v75, !248 + v77 = load v76, !249 v78 = const u64 2 - v79 = get_elem_ptr v71, __ptr u64, v78, !251 - v80 = load v79, !252 + v79 = get_elem_ptr v71, __ptr u64, v78, !250 + v80 = load v79, !251 v81 = const u64 2 - v82 = add v80, v81, !253 - v83 = cmp gt v82 v77, !254 - cbr v83, encode_20_abi_encode_21_abi_encode_23_block1(), encode_20_abi_encode_21_abi_encode_23_block0(v74, v77), !255 + v82 = add v80, v81, !252 + v83 = cmp gt v82 v77, !253 + cbr v83, encode_22_abi_encode_25_abi_encode_27_block1(), encode_22_abi_encode_25_abi_encode_27_block0(v74, v77), !254 - encode_20_abi_encode_21_abi_encode_22_block1(): + encode_22_abi_encode_25_abi_encode_26_block1(): v84 = const u64 2 - v85 = mul v33, v84, !256 - v86 = add v85, v37, !257 - v87 = asm(new_cap: v86, old_ptr: v30, len: v36) -> __ptr u8 hp, !258 { + v85 = mul v33, v84, !255 + v86 = add v85, v37, !256 + v87 = asm(new_cap: v86, old_ptr: v30, len: v36) -> __ptr u8 hp, !257 { aloc new_cap mcp hp old_ptr len } - br encode_20_abi_encode_21_abi_encode_22_block0(v87, v86), !259 + br encode_22_abi_encode_25_abi_encode_26_block0(v87, v86), !258 - encode_20_abi_encode_21_abi_encode_23_block0(v88: ptr, v89: u64): - v90 = get_local __ptr u64, __anon_10, !260 + encode_22_abi_encode_25_abi_encode_27_block0(v88: ptr, v89: u64): + v90 = get_local __ptr u64, __anon_10, !259 mem_copy_val v90, v63 v91 = const u64 6 - v92 = add v90, v91, !261 - v93 = cast_ptr v92 to __ptr u8, !262 - v94 = add v88, v80, !263 - v95 = cast_ptr v94 to __ptr u8, !264 - mem_copy_bytes v95, v93, 2, !265 - v96 = get_local __ptr { ptr, u64, u64 }, __anon_20, !266 + v92 = add v90, v91, !260 + v93 = cast_ptr v92 to __ptr u8, !261 + v94 = add v88, v80, !262 + v95 = cast_ptr v94 to __ptr u8, !263 + mem_copy_bytes v95, v93, 2, !264 + v96 = get_local __ptr { ptr, u64, u64 }, __anon_20, !265 v97 = const u64 0 - v98 = get_elem_ptr v96, __ptr ptr, v97, !267 - store v88 to v98, !268 + v98 = get_elem_ptr v96, __ptr ptr, v97, !266 + store v88 to v98, !267 v99 = const u64 1 - v100 = get_elem_ptr v96, __ptr u64, v99, !269 - store v89 to v100, !270 + v100 = get_elem_ptr v96, __ptr u64, v99, !268 + store v89 to v100, !269 v101 = const u64 2 - v102 = get_elem_ptr v96, __ptr u64, v101, !271 - store v82 to v102, !272 + v102 = get_elem_ptr v96, __ptr u64, v101, !270 + store v82 to v102, !271 v103 = asm(buffer: v96) -> __ptr { ptr, u64, u64 } buffer { } v104 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_02 mem_copy_val v104, v103 - v105 = get_local __ptr { { ptr, u64, u64 } }, __anon_30, !274 + v105 = get_local __ptr { { ptr, u64, u64 } }, __anon_30, !273 v106 = const u64 0 - v107 = get_elem_ptr v105, __ptr { ptr, u64, u64 }, v106, !275 + v107 = get_elem_ptr v105, __ptr { ptr, u64, u64 }, v106, !274 mem_copy_val v107, v104 - v108 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !277 + v108 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !276 mem_copy_val v108, v105 - v109 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !279 + v109 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_, !278 v110 = const u64 3 - v111 = get_elem_ptr v109, __ptr u8, v110, !281 - v112 = load v111, !282 - v113 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !284 - v114 = get_local __ptr { { ptr, u64, u64 } }, buffer_2, !287 + v111 = get_elem_ptr v109, __ptr u8, v110, !280 + v112 = load v111, !281 + v113 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !283 + v114 = get_local __ptr { { ptr, u64, u64 } }, buffer_2, !286 mem_copy_val v114, v113 - v115 = get_local __ptr { { ptr, u64, u64 } }, buffer_2, !289 + v115 = get_local __ptr { { ptr, u64, u64 } }, buffer_2, !288 v116 = const u64 0 - v117 = get_elem_ptr v115, __ptr { ptr, u64, u64 }, v116, !290 + v117 = get_elem_ptr v115, __ptr { ptr, u64, u64 }, v116, !289 v118 = asm(buffer: v117) -> __ptr { ptr, u64, u64 } buffer { } v119 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_03 mem_copy_val v119, v118 - v120 = get_local __ptr { ptr, u64, u64 }, __anon_01, !291 + v120 = get_local __ptr { ptr, u64, u64 }, __anon_01, !290 mem_copy_val v120, v119 v121 = const u64 0 - v122 = get_elem_ptr v120, __ptr ptr, v121, !292 - v123 = load v122, !293 + v122 = get_elem_ptr v120, __ptr ptr, v121, !291 + v123 = load v122, !292 v124 = const u64 1 - v125 = get_elem_ptr v120, __ptr u64, v124, !294 - v126 = load v125, !295 + v125 = get_elem_ptr v120, __ptr u64, v124, !293 + v126 = load v125, !294 v127 = const u64 2 - v128 = get_elem_ptr v120, __ptr u64, v127, !296 - v129 = load v128, !297 + v128 = get_elem_ptr v120, __ptr u64, v127, !295 + v129 = load v128, !296 v130 = const u64 1 - v131 = add v129, v130, !298 - v132 = cmp gt v131 v126, !299 - cbr v132, encode_20_abi_encode_21_abi_encode_24_block1(), encode_20_abi_encode_21_abi_encode_24_block0(v123, v126), !300 + v131 = add v129, v130, !297 + v132 = cmp gt v131 v126, !298 + cbr v132, encode_22_abi_encode_25_abi_encode_28_block1(), encode_22_abi_encode_25_abi_encode_28_block0(v123, v126), !299 - encode_20_abi_encode_21_abi_encode_23_block1(): + encode_22_abi_encode_25_abi_encode_27_block1(): v133 = const u64 2 - v134 = mul v77, v133, !301 - v135 = add v134, v81, !302 - v136 = asm(new_cap: v135, old_ptr: v74, len: v80) -> __ptr u8 hp, !303 { + v134 = mul v77, v133, !300 + v135 = add v134, v81, !301 + v136 = asm(new_cap: v135, old_ptr: v74, len: v80) -> __ptr u8 hp, !302 { aloc new_cap mcp hp old_ptr len } - br encode_20_abi_encode_21_abi_encode_23_block0(v136, v135), !304 + br encode_22_abi_encode_25_abi_encode_27_block0(v136, v135), !303 - encode_20_abi_encode_21_abi_encode_24_block0(v137: ptr, v138: u64): - v139 = add v137, v129, !305 - v140 = cast_ptr v139 to __ptr u8, !306 - store v112 to v140, !307 - v141 = get_local __ptr { ptr, u64, u64 }, __anon_11, !308 + encode_22_abi_encode_25_abi_encode_28_block0(v137: ptr, v138: u64): + v139 = add v137, v129, !304 + v140 = cast_ptr v139 to __ptr u8, !305 + store v112 to v140, !306 + v141 = get_local __ptr { ptr, u64, u64 }, __anon_11, !307 v142 = const u64 0 - v143 = get_elem_ptr v141, __ptr ptr, v142, !309 - store v137 to v143, !310 + v143 = get_elem_ptr v141, __ptr ptr, v142, !308 + store v137 to v143, !309 v144 = const u64 1 - v145 = get_elem_ptr v141, __ptr u64, v144, !311 - store v138 to v145, !312 + v145 = get_elem_ptr v141, __ptr u64, v144, !310 + store v138 to v145, !311 v146 = const u64 2 - v147 = get_elem_ptr v141, __ptr u64, v146, !313 - store v131 to v147, !314 + v147 = get_elem_ptr v141, __ptr u64, v146, !312 + store v131 to v147, !313 v148 = asm(buffer: v141) -> __ptr { ptr, u64, u64 } buffer { } v149 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_04 mem_copy_val v149, v148 - v150 = get_local __ptr { { ptr, u64, u64 } }, __anon_21, !316 + v150 = get_local __ptr { { ptr, u64, u64 } }, __anon_21, !315 v151 = const u64 0 - v152 = get_elem_ptr v150, __ptr { ptr, u64, u64 }, v151, !317 + v152 = get_elem_ptr v150, __ptr { ptr, u64, u64 }, v151, !316 mem_copy_val v152, v149 - v153 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !319 + v153 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !318 mem_copy_val v153, v150 - v154 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !321 + v154 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_, !320 v155 = const u64 4 - v156 = get_elem_ptr v154, __ptr { { ptr, u64 }, u64 }, v155, !323 - v157 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !325 - v158 = get_local __ptr { { ptr, u64 }, u64 }, self_3, !328 + v156 = get_elem_ptr v154, __ptr { { ptr, u64 }, u64 }, v155, !322 + v157 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !324 + v158 = get_local __ptr { { ptr, u64 }, u64 }, self_3, !327 mem_copy_val v158, v156 - v159 = get_local __ptr { { ptr, u64, u64 } }, buffer_3, !329 + v159 = get_local __ptr { { ptr, u64, u64 } }, buffer_3, !328 mem_copy_val v159, v157 - v160 = get_local __ptr { { ptr, u64 }, u64 }, self_3, !331 + v160 = get_local __ptr { { ptr, u64 }, u64 }, self_3, !330 v161 = const u64 1 - v162 = get_elem_ptr v160, __ptr u64, v161, !332 - v163 = load v162, !333 - v164 = get_local __ptr { { ptr, u64, u64 } }, buffer_3, !335 + v162 = get_elem_ptr v160, __ptr u64, v161, !331 + v163 = load v162, !332 + v164 = get_local __ptr { { ptr, u64, u64 } }, buffer_3, !334 v165 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg0 mem_copy_val v165, v164 v166 = get_local __ptr { { ptr, u64, u64 } }, __ret_val0 - v167 = call abi_encode_4(v163, v165, v166) - v168 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !337 + v167 = call abi_encode_5(v163, v165, v166) + v168 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !336 mem_copy_val v168, v166 - v169 = const u64 0, !338 - br encode_20_abi_encode_21_abi_encode_25_while(v169), !339 + v169 = const u64 0, !337 + br encode_22_abi_encode_25_abi_encode_29_while(v169), !338 - encode_20_abi_encode_21_abi_encode_24_block1(): + encode_22_abi_encode_25_abi_encode_28_block1(): v170 = const u64 2 - v171 = mul v126, v170, !340 - v172 = add v171, v130, !341 - v173 = asm(new_cap: v172, old_ptr: v123, len: v129) -> __ptr u8 hp, !342 { + v171 = mul v126, v170, !339 + v172 = add v171, v130, !340 + v173 = asm(new_cap: v172, old_ptr: v123, len: v129) -> __ptr u8 hp, !341 { aloc new_cap mcp hp old_ptr len } - br encode_20_abi_encode_21_abi_encode_24_block0(v173, v172), !343 + br encode_22_abi_encode_25_abi_encode_28_block0(v173, v172), !342 - encode_20_abi_encode_21_abi_encode_25_while(v174: u64): - v175 = cmp lt v174 v163, !346 - cbr v175, encode_20_abi_encode_21_abi_encode_25_while_body(), encode_20_abi_encode_21_abi_encode_25_end_while(), !347 + encode_22_abi_encode_25_abi_encode_29_while(v174: u64): + v175 = cmp lt v174 v163, !345 + cbr v175, encode_22_abi_encode_25_abi_encode_29_while_body(), encode_22_abi_encode_25_abi_encode_29_end_while(), !346 - encode_20_abi_encode_21_abi_encode_25_while_body(): - v176 = get_local __ptr { { ptr, u64 }, u64 }, self_3, !349 - v177 = get_local __ptr { { ptr, u64 }, u64 }, self_10, !352 + encode_22_abi_encode_25_abi_encode_29_while_body(): + v176 = get_local __ptr { { ptr, u64 }, u64 }, self_3, !348 + v177 = get_local __ptr { { ptr, u64 }, u64 }, self_10, !351 mem_copy_val v177, v176 - v178 = get_local __ptr { { ptr, u64 }, u64 }, self_10, !354 + v178 = get_local __ptr { { ptr, u64 }, u64 }, self_10, !353 v179 = const u64 0 - v180 = get_elem_ptr v178, __ptr { ptr, u64 }, v179, !355 + v180 = get_elem_ptr v178, __ptr { ptr, u64 }, v179, !354 v181 = const u64 0 - v182 = get_elem_ptr v180, __ptr ptr, v181, !356 - v183 = load v182, !357 + v182 = get_elem_ptr v180, __ptr ptr, v181, !355 + v183 = load v182, !356 v184 = const u64 8 - v185 = mul v184, v174, !360 - v186 = add v183, v185, !361 - v187 = asm(ptr: v186, val) -> u64 val, !365 { - lw val ptr i0, !366 + v185 = mul v184, v174, !359 + v186 = add v183, v185, !360 + v187 = asm(ptr: v186, val) -> u64 val, !364 { + lw val ptr i0, !365 } - v188 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !368 + v188 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !367 v189 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg1 mem_copy_val v189, v188 v190 = get_local __ptr { { ptr, u64, u64 } }, __ret_val1 - v191 = call abi_encode_4(v187, v189, v190) - v192 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !370 + v191 = call abi_encode_5(v187, v189, v190) + v192 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !369 mem_copy_val v192, v190 - v193 = const u64 1, !371 - v194 = add v174, v193, !374 - br encode_20_abi_encode_21_abi_encode_25_while(v194), !375 + v193 = const u64 1, !370 + v194 = add v174, v193, !373 + br encode_22_abi_encode_25_abi_encode_29_while(v194), !374 - encode_20_abi_encode_21_abi_encode_25_end_while(): - v195 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !377 - v196 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !379 + encode_22_abi_encode_25_abi_encode_29_end_while(): + v195 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !376 + v196 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !378 mem_copy_val v196, v195 - v197 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !381 + v197 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_, !380 v198 = const u64 5 - v199 = get_elem_ptr v197, __ptr slice, v198, !383 - v200 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !385 - v201 = get_local __ptr slice, self_4, !388 + v199 = get_elem_ptr v197, __ptr slice, v198, !382 + v200 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !384 + v201 = get_local __ptr slice, self_4, !387 mem_copy_val v201, v199 - v202 = get_local __ptr { { ptr, u64, u64 } }, buffer_4, !389 + v202 = get_local __ptr { { ptr, u64, u64 } }, buffer_4, !388 mem_copy_val v202, v200 - v203 = get_local __ptr { { ptr, u64, u64 } }, buffer_4, !391 + v203 = get_local __ptr { { ptr, u64, u64 } }, buffer_4, !390 v204 = const u64 0 - v205 = get_elem_ptr v203, __ptr { ptr, u64, u64 }, v204, !392 + v205 = get_elem_ptr v203, __ptr { ptr, u64, u64 }, v204, !391 v206 = asm(buffer: v205) -> __ptr { ptr, u64, u64 } buffer { } v207 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_05 mem_copy_val v207, v206 - v208 = get_local __ptr { ptr, u64, u64 }, __anon_02, !393 + v208 = get_local __ptr { ptr, u64, u64 }, __anon_02, !392 mem_copy_val v208, v207 v209 = const u64 0 - v210 = get_elem_ptr v208, __ptr ptr, v209, !394 - v211 = load v210, !395 + v210 = get_elem_ptr v208, __ptr ptr, v209, !393 + v211 = load v210, !394 v212 = const u64 1 - v213 = get_elem_ptr v208, __ptr u64, v212, !396 - v214 = load v213, !397 + v213 = get_elem_ptr v208, __ptr u64, v212, !395 + v214 = load v213, !396 v215 = const u64 2 - v216 = get_elem_ptr v208, __ptr u64, v215, !398 - v217 = load v216, !399 - v218 = get_local __ptr slice, self_4, !401 + v216 = get_elem_ptr v208, __ptr u64, v215, !397 + v217 = load v216, !398 + v218 = get_local __ptr slice, self_4, !400 v219 = get_local __ptr slice, __aggr_memcpy_07 mem_copy_val v219, v218 v220 = asm(item: v218) -> __ptr { u64, u64 } item { } v221 = get_local __ptr { u64, u64 }, __aggr_memcpy_06 mem_copy_val v221, v220 - v222 = get_local __ptr { u64, u64 }, __anon_12, !402 + v222 = get_local __ptr { u64, u64 }, __anon_12, !401 mem_copy_val v222, v221 v223 = const u64 1 - v224 = get_elem_ptr v222, __ptr u64, v223, !403 - v225 = load v224, !404 + v224 = get_elem_ptr v222, __ptr u64, v223, !402 + v225 = load v224, !403 v226 = const u64 8 - v227 = add v225, v226, !405 - v228 = add v217, v227, !406 - v229 = cmp gt v228 v214, !407 - cbr v229, encode_20_abi_encode_21_abi_encode_29_block1(), encode_20_abi_encode_21_abi_encode_29_block0(v211, v214), !408 + v227 = add v225, v226, !404 + v228 = add v217, v227, !405 + v229 = cmp gt v228 v214, !406 + cbr v229, encode_22_abi_encode_25_abi_encode_33_block1(), encode_22_abi_encode_25_abi_encode_33_block0(v211, v214), !407 - encode_20_abi_encode_21_abi_encode_29_block0(v230: ptr, v231: u64): - v232 = get_local __ptr slice, __anon_22, !409 + encode_22_abi_encode_25_abi_encode_33_block0(v230: ptr, v231: u64): + v232 = get_local __ptr slice, __anon_22, !408 mem_copy_val v232, v219 - v233 = add v230, v217, !410 - v234 = cast_ptr v233 to __ptr u8, !411 - v235 = asm(item_ptr: v232, len: v217, addr: v234, data_ptr, item_len, new_len) -> u64 new_len, !412 { + v233 = add v230, v217, !409 + v234 = cast_ptr v233 to __ptr u8, !410 + v235 = asm(item_ptr: v232, len: v217, addr: v234, data_ptr, item_len, new_len) -> u64 new_len, !411 { lw item_len item_ptr i1 sw addr item_len i0 addi addr addr i8 @@ -809,102 +809,102 @@ script { addi new_len len i8 add new_len new_len item_len } - v236 = get_local __ptr { ptr, u64, u64 }, __anon_31, !413 + v236 = get_local __ptr { ptr, u64, u64 }, __anon_31, !412 v237 = const u64 0 - v238 = get_elem_ptr v236, __ptr ptr, v237, !414 - store v230 to v238, !415 + v238 = get_elem_ptr v236, __ptr ptr, v237, !413 + store v230 to v238, !414 v239 = const u64 1 - v240 = get_elem_ptr v236, __ptr u64, v239, !416 - store v231 to v240, !417 + v240 = get_elem_ptr v236, __ptr u64, v239, !415 + store v231 to v240, !416 v241 = const u64 2 - v242 = get_elem_ptr v236, __ptr u64, v241, !418 - store v235 to v242, !419 + v242 = get_elem_ptr v236, __ptr u64, v241, !417 + store v235 to v242, !418 v243 = asm(buffer: v236) -> __ptr { ptr, u64, u64 } buffer { } v244 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_08 mem_copy_val v244, v243 - v245 = get_local __ptr { { ptr, u64, u64 } }, __anon_4, !421 + v245 = get_local __ptr { { ptr, u64, u64 } }, __anon_4, !420 v246 = const u64 0 - v247 = get_elem_ptr v245, __ptr { ptr, u64, u64 }, v246, !422 + v247 = get_elem_ptr v245, __ptr { ptr, u64, u64 }, v246, !421 mem_copy_val v247, v244 - v248 = get_local __ptr { { ptr, u64, u64 } }, buffer_______, !424 + v248 = get_local __ptr { { ptr, u64, u64 } }, buffer_______, !423 mem_copy_val v248, v245 - v249 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !426 + v249 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_, !425 v250 = const u64 6 - v251 = get_elem_ptr v249, __ptr u256, v250, !428 - v252 = get_local __ptr { { ptr, u64, u64 } }, buffer_______, !430 - v253 = get_local __ptr u256, self_5, !433 + v251 = get_elem_ptr v249, __ptr u256, v250, !427 + v252 = get_local __ptr { { ptr, u64, u64 } }, buffer_______, !429 + v253 = get_local __ptr u256, self_5, !432 mem_copy_val v253, v251 - v254 = get_local __ptr { { ptr, u64, u64 } }, buffer_5, !434 + v254 = get_local __ptr { { ptr, u64, u64 } }, buffer_5, !433 mem_copy_val v254, v252 - v255 = get_local __ptr { { ptr, u64, u64 } }, buffer_5, !436 + v255 = get_local __ptr { { ptr, u64, u64 } }, buffer_5, !435 v256 = const u64 0 - v257 = get_elem_ptr v255, __ptr { ptr, u64, u64 }, v256, !437 + v257 = get_elem_ptr v255, __ptr { ptr, u64, u64 }, v256, !436 v258 = asm(buffer: v257) -> __ptr { ptr, u64, u64 } buffer { } v259 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_09 mem_copy_val v259, v258 - v260 = get_local __ptr { ptr, u64, u64 }, __anon_03, !438 + v260 = get_local __ptr { ptr, u64, u64 }, __anon_03, !437 mem_copy_val v260, v259 v261 = const u64 0 - v262 = get_elem_ptr v260, __ptr ptr, v261, !439 - v263 = load v262, !440 + v262 = get_elem_ptr v260, __ptr ptr, v261, !438 + v263 = load v262, !439 v264 = const u64 1 - v265 = get_elem_ptr v260, __ptr u64, v264, !441 - v266 = load v265, !442 + v265 = get_elem_ptr v260, __ptr u64, v264, !440 + v266 = load v265, !441 v267 = const u64 2 - v268 = get_elem_ptr v260, __ptr u64, v267, !443 - v269 = load v268, !444 - v270 = get_local __ptr u256, self_5, !446 + v268 = get_elem_ptr v260, __ptr u64, v267, !442 + v269 = load v268, !443 + v270 = get_local __ptr u256, self_5, !445 v271 = const u64 32 - v272 = add v269, v271, !447 - v273 = cmp gt v272 v266, !448 - cbr v273, encode_20_abi_encode_21_abi_encode_30_block1(), encode_20_abi_encode_21_abi_encode_30_block0(v263, v266), !449 + v272 = add v269, v271, !446 + v273 = cmp gt v272 v266, !447 + cbr v273, encode_22_abi_encode_25_abi_encode_34_block1(), encode_22_abi_encode_25_abi_encode_34_block0(v263, v266), !448 - encode_20_abi_encode_21_abi_encode_29_block1(): + encode_22_abi_encode_25_abi_encode_33_block1(): v274 = const u64 2 - v275 = mul v214, v274, !450 - v276 = add v275, v227, !451 - v277 = asm(new_cap: v276, old_ptr: v211, len: v217) -> __ptr u8 hp, !452 { + v275 = mul v214, v274, !449 + v276 = add v275, v227, !450 + v277 = asm(new_cap: v276, old_ptr: v211, len: v217) -> __ptr u8 hp, !451 { aloc new_cap mcp hp old_ptr len } - br encode_20_abi_encode_21_abi_encode_29_block0(v277, v276), !453 + br encode_22_abi_encode_25_abi_encode_33_block0(v277, v276), !452 - encode_20_abi_encode_21_abi_encode_30_block0(v278: ptr, v279: u64): - v280 = get_local __ptr u256, __anon_13, !454 + encode_22_abi_encode_25_abi_encode_34_block0(v278: ptr, v279: u64): + v280 = get_local __ptr u256, __anon_13, !453 mem_copy_val v280, v270 - v281 = add v278, v269, !455 - v282 = cast_ptr v281 to __ptr u8, !456 - mem_copy_bytes v282, v280, 32, !457 - v283 = get_local __ptr { ptr, u64, u64 }, __anon_23, !458 + v281 = add v278, v269, !454 + v282 = cast_ptr v281 to __ptr u8, !455 + mem_copy_bytes v282, v280, 32, !456 + v283 = get_local __ptr { ptr, u64, u64 }, __anon_23, !457 v284 = const u64 0 - v285 = get_elem_ptr v283, __ptr ptr, v284, !459 - store v278 to v285, !460 + v285 = get_elem_ptr v283, __ptr ptr, v284, !458 + store v278 to v285, !459 v286 = const u64 1 - v287 = get_elem_ptr v283, __ptr u64, v286, !461 - store v279 to v287, !462 + v287 = get_elem_ptr v283, __ptr u64, v286, !460 + store v279 to v287, !461 v288 = const u64 2 - v289 = get_elem_ptr v283, __ptr u64, v288, !463 - store v272 to v289, !464 + v289 = get_elem_ptr v283, __ptr u64, v288, !462 + store v272 to v289, !463 v290 = asm(buffer: v283) -> __ptr { ptr, u64, u64 } buffer { } v291 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_010 mem_copy_val v291, v290 - v292 = get_local __ptr { { ptr, u64, u64 } }, __anon_32, !466 + v292 = get_local __ptr { { ptr, u64, u64 } }, __anon_32, !465 v293 = const u64 0 - v294 = get_elem_ptr v292, __ptr { ptr, u64, u64 }, v293, !467 + v294 = get_elem_ptr v292, __ptr { ptr, u64, u64 }, v293, !466 mem_copy_val v294, v291 - v295 = get_local __ptr { { ptr, u64, u64 } }, buffer________, !469 + v295 = get_local __ptr { { ptr, u64, u64 } }, buffer________, !468 mem_copy_val v295, v292 - v296 = get_local __ptr { { ptr, u64, u64 } }, buffer________, !471 - v297 = get_local __ptr { { ptr, u64, u64 } }, buffer, !473 + v296 = get_local __ptr { { ptr, u64, u64 } }, buffer________, !470 + v297 = get_local __ptr { { ptr, u64, u64 } }, buffer, !472 mem_copy_val v297, v296 - v298 = get_local __ptr { { ptr, u64, u64 } }, buffer, !475 + v298 = get_local __ptr { { ptr, u64, u64 } }, buffer, !474 v299 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg2 mem_copy_val v299, v298 v300 = get_local __ptr slice, __ret_val3 - v301 = call as_raw_slice_6(v299, v300) + v301 = call as_raw_slice_7(v299, v300) v302 = get_local __ptr slice, __log_arg mem_copy_val v302, v300 v303 = const u64 4579537983717831593 @@ -912,66 +912,49 @@ script { v304 = const unit () ret () v304 - encode_20_abi_encode_21_abi_encode_30_block1(): + encode_22_abi_encode_25_abi_encode_34_block1(): v305 = const u64 2 - v306 = mul v266, v305, !476 - v307 = add v306, v271, !477 - v308 = asm(new_cap: v307, old_ptr: v263, len: v269) -> __ptr u8 hp, !478 { + v306 = mul v266, v305, !475 + v307 = add v306, v271, !476 + v308 = asm(new_cap: v307, old_ptr: v263, len: v269) -> __ptr u8 hp, !477 { aloc new_cap mcp hp old_ptr len } - br encode_20_abi_encode_21_abi_encode_30_block0(v308, v307), !479 + br encode_22_abi_encode_25_abi_encode_34_block0(v308, v307), !478 } - fn local_log_32(item: __ptr { u64 }) -> (), !480 { - local mut slice __aggr_memcpy_0 - local { ptr, u64 } __anon_0 + fn local_log_36(item: __ptr { u64 }) -> (), !479 { local slice __log_arg - local { u64 } item_ - local { u64 } item_0 + local { { ptr, u64, u64 } } __tmp_arg1 + local { { ptr, u64, u64 } } buffer entry(item: __ptr { u64 }): - v0 = get_local __ptr { u64 }, item_ - mem_copy_val v0, item - v1 = get_local __ptr { u64 }, item_, !83 - v2 = get_local __ptr { u64 }, item_0, !83 - mem_copy_val v2, v1 - v3 = get_local __ptr { u64 }, item_0, !481 - v4 = const u64 8 - v5 = asm(size: v4, src: v3) -> ptr hp, !482 { - aloc size, !88 - mcp hp src size, !89 - } - v6 = get_local __ptr { ptr, u64 }, __anon_0, !483 - v7 = const u64 0 - v8 = get_elem_ptr v6, __ptr ptr, v7, !484 - store v5 to v8, !485 - v9 = const u64 1 - v10 = get_elem_ptr v6, __ptr u64, v9, !486 - store v4 to v10, !487 - v11 = asm(s: v6) -> __ptr slice s { - } - v12 = get_local __ptr slice, __aggr_memcpy_0 - mem_copy_val v12, v11 - v13 = get_local __ptr slice, __log_arg - mem_copy_val v13, v12 - v14 = const u64 16566583104751091389 - log __ptr slice v13, v14 - v15 = const unit () - ret () v15 + v0 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg1 + v1 = call new_6(v0) + v2 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg1 + v3 = get_local __ptr { { ptr, u64, u64 } }, buffer + v4 = call abi_encode_40(item, v2, v3) + v5 = get_local __ptr { { ptr, u64, u64 } }, buffer + v6 = get_local __ptr slice, __log_arg + v7 = call as_raw_slice_7(v5, v6) + v8 = get_local __ptr slice, __log_arg + v9 = const u64 16566583104751091389 + log __ptr slice v8, v9 + v10 = const unit () + ret () v10 } - pub fn abi_encode_34(self: __ptr { u64 }, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }) -> (), !490 { + pub fn abi_encode_40(self: __ptr { u64 }, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }) -> (), !482 { entry(self: __ptr { u64 }, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }): v0 = const u64 0 - v1 = get_elem_ptr self, __ptr u64, v0, !491 + v1 = get_elem_ptr self, __ptr u64, v0, !483 v2 = load v1 - v3 = call abi_encode_4(v2, buffer, __ret_value) + v3 = call abi_encode_5(v2, buffer, __ret_value) v4 = const unit () ret () v4 } - fn local_log_35(item: __ptr { u64, ( { u64 } | () ) }) -> (), !492 { + fn local_log_41(item: __ptr { u64, ( { u64 } | () ) }) -> (), !484 { local slice __log_arg local { u64, ( { u64 } | () ) } __matched_value_1 local { { ptr, u64, u64 } } __tmp_block_arg @@ -980,55 +963,55 @@ script { entry(item: __ptr { u64, ( { u64 } | () ) }): v0 = get_local __ptr { { ptr, u64, u64 } }, buffer_ - v1 = call new_5(v0) - v2 = get_local __ptr { u64, ( { u64 } | () ) }, __matched_value_1, !494 + v1 = call new_6(v0) + v2 = get_local __ptr { u64, ( { u64 } | () ) }, __matched_value_1, !486 mem_copy_val v2, item v3 = const u64 0 v4 = get_elem_ptr item, __ptr u64, v3 - v5 = load v4, !495 - v6 = const u64 0, !496 - v7 = cmp eq v5 v6, !499 - cbr v7, encode_36_abi_encode_37_block0(), encode_36_abi_encode_37_block1(), !500 + v5 = load v4, !487 + v6 = const u64 0, !488 + v7 = cmp eq v5 v6, !491 + cbr v7, encode_42_abi_encode_44_block0(), encode_42_abi_encode_44_block1(), !492 - encode_36_abi_encode_37_block0(): - v8 = get_local __ptr { u64, ( { u64 } | () ) }, __matched_value_1, !501 + encode_42_abi_encode_44_block0(): + v8 = get_local __ptr { u64, ( { u64 } | () ) }, __matched_value_1, !493 v9 = const u64 1 v10 = const u64 0 - v11 = get_elem_ptr v8, __ptr { u64 }, v9, v10, !502 - v12 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !504 + v11 = get_elem_ptr v8, __ptr { u64 }, v9, v10, !494 + v12 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !496 v13 = get_local __ptr { { ptr, u64, u64 } }, buffer__ - v14 = const u64 0, !505 - v15 = call abi_encode_4(v14, v12, v13) + v14 = const u64 0, !497 + v15 = call abi_encode_5(v14, v12, v13) v16 = get_local __ptr { { ptr, u64, u64 } }, buffer__ v17 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg - v18 = call abi_encode_34(v11, v16, v17) + v18 = call abi_encode_40(v11, v16, v17) v19 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg - br encode_36_abi_encode_37_block5(v19), !506 + br encode_42_abi_encode_44_block5(v19), !498 - encode_36_abi_encode_37_block1(): - v20 = get_local __ptr { u64, ( { u64 } | () ) }, __matched_value_1, !507 + encode_42_abi_encode_44_block1(): + v20 = get_local __ptr { u64, ( { u64 } | () ) }, __matched_value_1, !499 v21 = const u64 0 - v22 = get_elem_ptr v20, __ptr u64, v21, !508 - v23 = load v22, !509 - v24 = const u64 1, !496 - v25 = cmp eq v23 v24, !512 - cbr v25, encode_36_abi_encode_37_block2(), encode_36_abi_encode_37_block3(), !513 - - encode_36_abi_encode_37_block2(): - v26 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !515 + v22 = get_elem_ptr v20, __ptr u64, v21, !500 + v23 = load v22, !501 + v24 = const u64 1, !488 + v25 = cmp eq v23 v24, !504 + cbr v25, encode_42_abi_encode_44_block2(), encode_42_abi_encode_44_block3(), !505 + + encode_42_abi_encode_44_block2(): + v26 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !507 v27 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg - v28 = const u64 1, !516 - v29 = call abi_encode_4(v28, v26, v27) + v28 = const u64 1, !508 + v29 = call abi_encode_5(v28, v26, v27) v30 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg - br encode_36_abi_encode_37_block5(v30), !517 + br encode_42_abi_encode_44_block5(v30), !509 - encode_36_abi_encode_37_block3(): - v31 = const u64 14757395258967588866, !493 - revert v31, !518 + encode_42_abi_encode_44_block3(): + v31 = const u64 14757395258967588866, !485 + revert v31, !510 - encode_36_abi_encode_37_block5(v32: __ptr { { ptr, u64, u64 } }): + encode_42_abi_encode_44_block5(v32: __ptr { { ptr, u64, u64 } }): v33 = get_local __ptr slice, __log_arg - v34 = call as_raw_slice_6(v32, v33) + v34 = call as_raw_slice_7(v32, v33) v35 = get_local __ptr slice, __log_arg v36 = const u64 5087777005172090899 log __ptr slice v35, v36 @@ -1036,572 +1019,542 @@ script { ret () v37 } - fn local_log_38(item: __ptr { }) -> (), !519 { - local mut slice __aggr_memcpy_0 - local { ptr, u64 } __anon_0 + fn local_log_45(item: __ptr { }) -> (), !511 { local slice __log_arg - local { } item_ - local { } item_0 + local { { ptr, u64, u64 } } buffer + local { { ptr, u64, u64 } } buffer_ entry(item: __ptr { }): - v0 = get_local __ptr { }, item_ - mem_copy_val v0, item - v1 = get_local __ptr { }, item_, !83 - v2 = get_local __ptr { }, item_0, !83 - mem_copy_val v2, v1 - v3 = get_local __ptr { }, item_0, !520 - v4 = const u64 0 - v5 = asm(size: v4, src: v3) -> ptr hp, !521 { - aloc size, !88 - mcp hp src size, !89 - } - v6 = get_local __ptr { ptr, u64 }, __anon_0, !522 - v7 = const u64 0 - v8 = get_elem_ptr v6, __ptr ptr, v7, !523 - store v5 to v8, !524 - v9 = const u64 1 - v10 = get_elem_ptr v6, __ptr u64, v9, !525 - store v4 to v10, !526 - v11 = asm(s: v6) -> __ptr slice s { - } - v12 = get_local __ptr slice, __aggr_memcpy_0 - mem_copy_val v12, v11 - v13 = get_local __ptr slice, __log_arg - mem_copy_val v13, v12 - v14 = const u64 5555909392781521367 - log __ptr slice v13, v14 - v15 = const unit () - ret () v15 + v0 = get_local __ptr { { ptr, u64, u64 } }, buffer_ + v1 = call new_6(v0) + v2 = get_local __ptr { { ptr, u64, u64 } }, buffer_ + v3 = get_local __ptr { { ptr, u64, u64 } }, buffer + v4 = const u64 77, !512 + v5 = call abi_encode_5(v4, v2, v3) + v6 = get_local __ptr { { ptr, u64, u64 } }, buffer + v7 = get_local __ptr slice, __log_arg + v8 = call as_raw_slice_7(v6, v7) + v9 = get_local __ptr slice, __log_arg + v10 = const u64 5555909392781521367 + log __ptr slice v9, v10 + v11 = const unit () + ret () v11 } } !0 = "test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main..sw" -!1 = span !0 0 130 +!1 = span !0 0 131 !2 = fn_name_span !0 7 14 !3 = (!1 !2) !4 = span !0 59 65 !5 = fn_call_path_span !0 59 63 !6 = (!4 !5) -!7 = span !0 83 116 -!8 = fn_call_path_span !0 83 100 -!9 = (!7 !8) -!10 = "test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-vec/src/codec.sw" -!11 = span !10 81400 81404 -!12 = (!7 !8 !11) -!13 = span !10 81384 81411 -!14 = (!7 !8 !13) -!15 = "test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw" -!16 = span !15 594 999 -!17 = fn_name_span !15 597 601 -!18 = (!16 !17) -!19 = span !15 627 631 -!20 = span !15 617 632 -!21 = fn_call_path_span !15 617 626 -!22 = (!20 !21) -!23 = span !15 651 661 -!24 = fn_call_path_span !15 651 659 -!25 = "test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-vec/src/vec.sw" -!26 = span !25 4111 4124 -!27 = fn_call_path_span !25 4111 4122 -!28 = span !25 774 787 -!29 = fn_call_path_span !25 774 779 -!30 = "test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-vec/src/alloc.sw" -!31 = span !30 1787 1811 -!32 = fn_call_path_span !30 1804 1805 -!33 = (!23 !24 !26 !27 !28 !29 !31 !32) -!34 = span !30 1777 1886 -!35 = (!23 !24 !26 !27 !28 !29 !34) -!36 = span !30 1828 1837 -!37 = span !30 1847 1858 -!38 = span !25 750 818 -!39 = (!23 !24 !26 !27 !38) -!40 = (!23 !24 !26 !27) -!41 = (!23 !24 !26 !27 !38) -!42 = (!23 !24 !26 !27) -!43 = span !25 806 807 -!44 = (!23 !24 !26 !27 !38) -!45 = span !25 4087 4155 -!46 = (!23 !24 !45) -!47 = (!23 !24) -!48 = span !25 4143 4144 -!49 = (!23 !24 !45) -!50 = span !15 667 668 -!51 = span !15 674 675 -!52 = span !15 667 676 -!53 = fn_call_path_span !15 669 673 -!54 = (!52 !53) -!55 = span !15 682 683 -!56 = span !15 689 690 -!57 = span !15 682 691 -!58 = fn_call_path_span !15 684 688 -!59 = (!57 !58) -!60 = span !15 697 698 -!61 = span !15 704 705 -!62 = span !15 697 706 -!63 = fn_call_path_span !15 699 703 -!64 = (!62 !63) -!65 = span !15 790 791 -!66 = span !15 804 810 -!67 = span !15 723 840 -!68 = span !15 737 738 -!69 = span !15 751 752 -!70 = span !15 765 766 -!71 = span !15 779 780 -!72 = span !15 857 883 -!73 = span !15 873 877 -!74 = span !15 203 239 -!75 = span !15 905 931 -!76 = span !15 921 925 -!77 = span !15 996 997 -!78 = span !15 544 548 -!79 = span !15 528 592 -!80 = fn_name_span !15 531 540 -!81 = inline "never" -!82 = (!79 !80 !81) -!83 = span !15 584 588 -!84 = span !10 80896 80900 -!85 = (!83 !84) -!86 = span !10 80874 80989 -!87 = (!83 !86) -!88 = span !10 80916 80925 -!89 = span !10 80939 80954 -!90 = span !10 81006 81017 -!91 = (!83 !90) -!92 = (!83 !90) -!93 = (!83 !90) -!94 = (!83 !90) -!95 = (!83 !90) -!96 = span !10 5200 5204 -!97 = span !10 5186 5331 -!98 = fn_name_span !10 5189 5199 -!99 = (!97 !98) -!100 = span !10 5294 5300 -!101 = span !10 87 114 -!102 = span !10 5242 5325 -!103 = span !10 160 260 -!104 = fn_name_span !10 167 170 -!105 = (!103 !104) -!106 = span !10 191 254 -!107 = span !10 499 591 -!108 = fn_name_span !10 502 514 -!109 = (!107 !108) -!110 = span !10 573 577 -!111 = span !25 5760 5764 -!112 = span !25 5766 5771 -!113 = span !25 5740 6205 -!114 = fn_name_span !25 5747 5751 -!115 = (!113 !114) -!116 = span !25 3543 3551 -!117 = span !25 3523 3537 -!118 = span !25 375 383 -!119 = span !25 5852 5876 -!120 = fn_call_path_span !25 5861 5863 -!121 = (!119 !120) -!122 = span !25 5891 5906 -!123 = fn_call_path_span !25 5900 5904 -!124 = (!122 !123) -!125 = span !25 2990 2991 -!126 = span !25 2978 2991 -!127 = fn_call_path_span !25 2987 2989 -!128 = (!122 !123 !126 !127) -!129 = span !25 2994 2995 -!130 = (!122 !123 !126) -!131 = span !25 3005 3006 -!132 = span !25 3005 3017 -!133 = fn_call_path_span !25 3007 3008 -!134 = (!122 !123 !132 !133) -!135 = span !25 357 369 -!136 = (!122 !123 !135) -!137 = span !25 3041 3082 -!138 = fn_call_path_span !25 3041 3048 -!139 = span !30 2668 2685 -!140 = fn_call_path_span !30 2678 2679 -!141 = (!122 !123 !137 !138 !139 !140) -!142 = (!122 !123 !137 !138 !139) -!143 = span !30 2710 2731 -!144 = fn_call_path_span !30 2710 2715 -!145 = (!122 !123 !137 !138 !143 !144 !31 !32) -!146 = (!122 !123 !137 !138 !143 !144 !34) -!147 = span !30 2752 2753 -!148 = span !30 2744 2753 -!149 = fn_call_path_span !30 2750 2751 -!150 = (!122 !123 !137 !138 !148 !149) -!151 = (!122 !123 !137 !138 !148) -!152 = span !30 2768 2800 -!153 = fn_call_path_span !30 2772 2779 -!154 = "test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-vec/src/raw_ptr.sw" -!155 = span !154 3413 3437 -!156 = fn_call_path_span !154 3419 3420 -!157 = (!122 !123 !137 !138 !152 !153 !155 !156) -!158 = span !154 3447 3522 -!159 = (!122 !123 !137 !138 !152 !153 !158) -!160 = span !154 3496 3511 -!161 = (!122 !123 !137 !138) -!162 = span !25 3030 3082 -!163 = (!122 !123 !162) -!164 = span !25 3092 3110 -!165 = (!122 !123 !164) -!166 = span !25 6040 6071 -!167 = fn_call_path_span !25 6053 6056 -!168 = (!166 !167) -!169 = span !25 6124 6145 -!170 = fn_call_path_span !25 6128 6133 -!171 = span !154 4228 4299 -!172 = (!169 !170 !171) -!173 = span !154 4271 4284 -!174 = span !25 6197 6198 -!175 = span !25 6185 6198 -!176 = fn_call_path_span !25 6194 6196 -!177 = (!175 !176) -!178 = (!79 !80 !81) -!179 = span !10 81090 81094 -!180 = (!83 !179) -!181 = span !10 81090 81120 -!182 = fn_call_path_span !10 81095 81105 -!183 = (!83 !181 !182) -!184 = (!83 !181 !182) -!185 = span !0 309 313 -!186 = (!83 !181 !182 !185) -!187 = span !15 116 122 -!188 = (!83 !181 !182 !187) -!189 = (!83 !181 !182) -!190 = span !0 327 333 -!191 = (!83 !181 !182 !190) -!192 = span !0 296 335 -!193 = (!83 !181 !182 !192) -!194 = span !0 349 353 -!195 = (!83 !181 !182 !194) -!196 = span !15 128 134 -!197 = (!83 !181 !182 !196) -!198 = span !0 367 373 -!199 = (!83 !181 !182 !198) -!200 = span !0 349 374 -!201 = fn_call_path_span !0 356 366 -!202 = (!83 !181 !182 !200 !201) -!203 = span !10 5529 5535 -!204 = (!83 !181 !182 !200 !201 !203) -!205 = (!83 !181 !182 !200 !201 !101) -!206 = (!83 !181 !182 !200 !201) -!207 = (!83 !181 !182 !200 !201) -!208 = (!83 !181 !182 !200 !201) -!209 = (!83 !181 !182 !200 !201) -!210 = (!83 !181 !182 !200 !201) -!211 = (!83 !181 !182 !200 !201) -!212 = (!83 !181 !182 !200 !201) -!213 = (!83 !181 !182 !200 !201) -!214 = (!83 !181 !182 !200 !201) -!215 = (!83 !181 !182 !200 !201) -!216 = (!83 !181 !182 !200 !201) -!217 = (!83 !181 !182 !200 !201) -!218 = (!83 !181 !182 !200 !201) -!219 = (!83 !181 !182 !200 !201) -!220 = (!83 !181 !182 !200 !201) -!221 = (!83 !181 !182 !200 !201) -!222 = (!83 !181 !182 !200 !201) -!223 = (!83 !181 !182 !200 !201) -!224 = (!83 !181 !182 !200 !201) -!225 = (!83 !181 !182 !200 !201) -!226 = (!83 !181 !182 !200 !201) -!227 = (!83 !181 !182 !200 !201) -!228 = (!83 !181 !182 !200 !201) -!229 = span !10 5477 5560 -!230 = (!83 !181 !182 !200 !201 !229) -!231 = (!83 !181 !182 !200 !201) -!232 = span !0 336 375 -!233 = (!83 !181 !182 !232) -!234 = span !0 389 393 -!235 = (!83 !181 !182 !234) -!236 = span !15 140 146 -!237 = (!83 !181 !182 !236) -!238 = span !0 407 413 -!239 = (!83 !181 !182 !238) -!240 = span !0 389 414 -!241 = fn_call_path_span !0 396 406 -!242 = (!83 !181 !182 !240 !241) -!243 = span !10 5764 5770 -!244 = (!83 !181 !182 !240 !241 !243) -!245 = (!83 !181 !182 !240 !241 !101) -!246 = (!83 !181 !182 !240 !241) -!247 = (!83 !181 !182 !240 !241) -!248 = (!83 !181 !182 !240 !241) -!249 = (!83 !181 !182 !240 !241) -!250 = (!83 !181 !182 !240 !241) -!251 = (!83 !181 !182 !240 !241) -!252 = (!83 !181 !182 !240 !241) -!253 = (!83 !181 !182 !240 !241) -!254 = (!83 !181 !182 !240 !241) -!255 = (!83 !181 !182 !240 !241) -!256 = (!83 !181 !182 !200 !201) -!257 = (!83 !181 !182 !200 !201) -!258 = (!83 !181 !182 !200 !201) -!259 = (!83 !181 !182 !200 !201) -!260 = (!83 !181 !182 !240 !241) -!261 = (!83 !181 !182 !240 !241) -!262 = (!83 !181 !182 !240 !241) -!263 = (!83 !181 !182 !240 !241) -!264 = (!83 !181 !182 !240 !241) -!265 = (!83 !181 !182 !240 !241) -!266 = (!83 !181 !182 !240 !241) -!267 = (!83 !181 !182 !240 !241) -!268 = (!83 !181 !182 !240 !241) -!269 = (!83 !181 !182 !240 !241) -!270 = (!83 !181 !182 !240 !241) -!271 = (!83 !181 !182 !240 !241) -!272 = (!83 !181 !182 !240 !241) -!273 = span !10 5712 5795 -!274 = (!83 !181 !182 !240 !241 !273) -!275 = (!83 !181 !182 !240 !241) -!276 = span !0 376 415 -!277 = (!83 !181 !182 !276) -!278 = span !0 429 433 -!279 = (!83 !181 !182 !278) -!280 = span !15 152 157 -!281 = (!83 !181 !182 !280) -!282 = (!83 !181 !182) -!283 = span !0 447 453 -!284 = (!83 !181 !182 !283) -!285 = span !0 429 454 -!286 = fn_call_path_span !0 436 446 -!287 = (!83 !181 !182 !285 !286) -!288 = span !10 5998 6004 -!289 = (!83 !181 !182 !285 !286 !288) -!290 = (!83 !181 !182 !285 !286 !101) -!291 = (!83 !181 !182 !285 !286) -!292 = (!83 !181 !182 !285 !286) -!293 = (!83 !181 !182 !285 !286) -!294 = (!83 !181 !182 !285 !286) -!295 = (!83 !181 !182 !285 !286) -!296 = (!83 !181 !182 !285 !286) -!297 = (!83 !181 !182 !285 !286) -!298 = (!83 !181 !182 !285 !286) -!299 = (!83 !181 !182 !285 !286) -!300 = (!83 !181 !182 !285 !286) -!301 = (!83 !181 !182 !240 !241) -!302 = (!83 !181 !182 !240 !241) -!303 = (!83 !181 !182 !240 !241) -!304 = (!83 !181 !182 !240 !241) -!305 = (!83 !181 !182 !285 !286) -!306 = (!83 !181 !182 !285 !286) -!307 = (!83 !181 !182 !285 !286) -!308 = (!83 !181 !182 !285 !286) -!309 = (!83 !181 !182 !285 !286) -!310 = (!83 !181 !182 !285 !286) -!311 = (!83 !181 !182 !285 !286) -!312 = (!83 !181 !182 !285 !286) -!313 = (!83 !181 !182 !285 !286) -!314 = (!83 !181 !182 !285 !286) -!315 = span !10 5946 6029 -!316 = (!83 !181 !182 !285 !286 !315) -!317 = (!83 !181 !182 !285 !286) -!318 = span !0 416 455 -!319 = (!83 !181 !182 !318) -!320 = span !0 469 473 -!321 = (!83 !181 !182 !320) -!322 = span !15 163 174 -!323 = (!83 !181 !182 !322) -!324 = span !0 487 493 -!325 = (!83 !181 !182 !324) -!326 = span !0 469 494 -!327 = fn_call_path_span !0 476 486 -!328 = (!83 !181 !182 !326 !327) -!329 = (!83 !181 !182 !326 !327) -!330 = span !25 21353 21357 -!331 = (!83 !181 !182 !326 !327 !330) -!332 = (!83 !181 !182 !326 !327 !116) -!333 = (!83 !181 !182 !326 !327) -!334 = span !25 21403 21409 -!335 = (!83 !181 !182 !326 !327 !334) -!336 = span !25 21371 21411 -!337 = (!83 !181 !182 !326 !327 !336) -!338 = span !25 21433 21434 -!339 = (!83 !181 !182 !326 !327) -!340 = (!83 !181 !182 !285 !286) -!341 = (!83 !181 !182 !285 !286) -!342 = (!83 !181 !182 !285 !286) -!343 = (!83 !181 !182 !285 !286) -!344 = span !25 21450 21457 -!345 = fn_call_path_span !25 21452 21453 -!346 = (!83 !181 !182 !326 !327 !344 !345) -!347 = (!83 !181 !182 !326 !327) -!348 = span !25 21483 21487 -!349 = (!83 !181 !182 !326 !327 !348) -!350 = span !25 21483 21504 -!351 = fn_call_path_span !25 21488 21501 -!352 = (!83 !181 !182 !326 !327 !350 !351) -!353 = span !25 8256 8260 -!354 = (!83 !181 !182 !326 !327 !350 !351 !353) -!355 = (!83 !181 !182 !326 !327 !350 !351 !117) -!356 = (!83 !181 !182 !326 !327 !350 !351 !135) -!357 = (!83 !181 !182 !326 !327 !350 !351) -!358 = span !25 8256 8284 -!359 = fn_call_path_span !25 8269 8272 -!360 = (!83 !181 !182 !326 !327 !350 !351 !358 !359) -!361 = (!83 !181 !182 !326 !327 !350 !351 !358 !359) -!362 = span !25 8256 8296 -!363 = fn_call_path_span !25 8285 8289 -!364 = span !154 2650 2739 -!365 = (!83 !181 !182 !326 !327 !350 !351 !362 !363 !364) -!366 = span !154 2688 2701 -!367 = span !25 21543 21549 -!368 = (!83 !181 !182 !326 !327 !367) -!369 = span !25 21518 21550 -!370 = (!83 !181 !182 !326 !327 !369) -!371 = span !25 21569 21570 -!372 = span !25 21564 21570 -!373 = fn_call_path_span !25 21566 21568 -!374 = (!83 !181 !182 !326 !327 !372 !373) -!375 = (!83 !181 !182 !326 !327) -!376 = span !25 21591 21597 -!377 = (!83 !181 !182 !326 !327 !376) -!378 = span !0 456 495 -!379 = (!83 !181 !182 !378) -!380 = span !0 509 513 -!381 = (!83 !181 !182 !380) -!382 = span !15 180 186 -!383 = (!83 !181 !182 !382) -!384 = span !0 527 533 -!385 = (!83 !181 !182 !384) -!386 = span !0 509 534 -!387 = fn_call_path_span !0 516 526 -!388 = (!83 !181 !182 !386 !387) -!389 = (!83 !181 !182 !386 !387) -!390 = span !10 6269 6275 -!391 = (!83 !181 !182 !386 !387 !390) -!392 = (!83 !181 !182 !386 !387 !101) -!393 = (!83 !181 !182 !386 !387) -!394 = (!83 !181 !182 !386 !387) -!395 = (!83 !181 !182 !386 !387) -!396 = (!83 !181 !182 !386 !387) -!397 = (!83 !181 !182 !386 !387) -!398 = (!83 !181 !182 !386 !387) -!399 = (!83 !181 !182 !386 !387) -!400 = span !10 6284 6288 -!401 = (!83 !181 !182 !386 !387 !400) -!402 = (!83 !181 !182 !386 !387) -!403 = (!83 !181 !182 !386 !387) -!404 = (!83 !181 !182 !386 !387) -!405 = (!83 !181 !182 !386 !387) -!406 = (!83 !181 !182 !386 !387) -!407 = (!83 !181 !182 !386 !387) -!408 = (!83 !181 !182 !386 !387) -!409 = (!83 !181 !182 !386 !387) -!410 = (!83 !181 !182 !386 !387) -!411 = (!83 !181 !182 !386 !387) -!412 = (!83 !181 !182 !386 !387) -!413 = (!83 !181 !182 !386 !387) -!414 = (!83 !181 !182 !386 !387) -!415 = (!83 !181 !182 !386 !387) -!416 = (!83 !181 !182 !386 !387) -!417 = (!83 !181 !182 !386 !387) -!418 = (!83 !181 !182 !386 !387) -!419 = (!83 !181 !182 !386 !387) -!420 = span !10 6217 6300 -!421 = (!83 !181 !182 !386 !387 !420) -!422 = (!83 !181 !182 !386 !387) -!423 = span !0 496 535 -!424 = (!83 !181 !182 !423) -!425 = span !0 549 553 -!426 = (!83 !181 !182 !425) -!427 = span !15 192 199 -!428 = (!83 !181 !182 !427) -!429 = span !0 567 573 -!430 = (!83 !181 !182 !429) -!431 = span !0 549 574 -!432 = fn_call_path_span !0 556 566 -!433 = (!83 !181 !182 !431 !432) -!434 = (!83 !181 !182 !431 !432) -!435 = span !10 5059 5065 -!436 = (!83 !181 !182 !431 !432 !435) -!437 = (!83 !181 !182 !431 !432 !101) -!438 = (!83 !181 !182 !431 !432) -!439 = (!83 !181 !182 !431 !432) -!440 = (!83 !181 !182 !431 !432) -!441 = (!83 !181 !182 !431 !432) -!442 = (!83 !181 !182 !431 !432) -!443 = (!83 !181 !182 !431 !432) -!444 = (!83 !181 !182 !431 !432) -!445 = span !10 5074 5078 -!446 = (!83 !181 !182 !431 !432 !445) -!447 = (!83 !181 !182 !431 !432) -!448 = (!83 !181 !182 !431 !432) -!449 = (!83 !181 !182 !431 !432) -!450 = (!83 !181 !182 !386 !387) -!451 = (!83 !181 !182 !386 !387) -!452 = (!83 !181 !182 !386 !387) -!453 = (!83 !181 !182 !386 !387) -!454 = (!83 !181 !182 !431 !432) -!455 = (!83 !181 !182 !431 !432) -!456 = (!83 !181 !182 !431 !432) -!457 = (!83 !181 !182 !431 !432) -!458 = (!83 !181 !182 !431 !432) -!459 = (!83 !181 !182 !431 !432) -!460 = (!83 !181 !182 !431 !432) -!461 = (!83 !181 !182 !431 !432) -!462 = (!83 !181 !182 !431 !432) -!463 = (!83 !181 !182 !431 !432) -!464 = (!83 !181 !182 !431 !432) -!465 = span !10 5007 5090 -!466 = (!83 !181 !182 !431 !432 !465) -!467 = (!83 !181 !182 !431 !432) -!468 = span !0 536 575 -!469 = (!83 !181 !182 !468) -!470 = span !0 597 603 -!471 = (!83 !181 !182 !470) -!472 = span !10 81077 81121 -!473 = (!83 !472) -!474 = span !10 81130 81136 -!475 = (!83 !474) -!476 = (!83 !181 !182 !431 !432) -!477 = (!83 !181 !182 !431 !432) -!478 = (!83 !181 !182 !431 !432) -!479 = (!83 !181 !182 !431 !432) -!480 = (!79 !80 !81) -!481 = (!83 !84) -!482 = (!83 !86) -!483 = (!83 !90) -!484 = (!83 !90) -!485 = (!83 !90) -!486 = (!83 !90) -!487 = (!83 !90) -!488 = span !0 257 411 -!489 = fn_name_span !0 260 270 -!490 = (!488 !489) -!491 = span !15 92 97 -!492 = (!79 !80 !81) -!493 = span !0 309 603 -!494 = (!83 !181 !182 !493) -!495 = (!83 !181 !182) -!496 = span !0 315 319 -!497 = span !0 322 517 -!498 = fn_call_path_span !0 322 517 -!499 = (!83 !181 !182 !497 !498) -!500 = (!83 !181 !182 !497) -!501 = (!83 !181 !182 !496) -!502 = (!83 !181 !182) -!503 = span !0 392 398 -!504 = (!83 !181 !182 !503) -!505 = span !0 376 380 -!506 = (!83 !181 !182) -!507 = (!83 !181 !182 !496) -!508 = (!83 !181 !182 !496) -!509 = (!83 !181 !182) -!510 = span !0 519 599 -!511 = fn_call_path_span !0 519 599 -!512 = (!83 !181 !182 !510 !511) -!513 = (!83 !181 !182 !510) -!514 = span !0 569 575 -!515 = (!83 !181 !182 !514) -!516 = span !0 553 557 -!517 = (!83 !181 !182) -!518 = (!83 !181 !182 !493) -!519 = (!79 !80 !81) -!520 = (!83 !84) -!521 = (!83 !86) -!522 = (!83 !90) -!523 = (!83 !90) -!524 = (!83 !90) -!525 = (!83 !90) -!526 = (!83 !90) +!7 = span !0 40 66 +!8 = span !0 109 116 +!9 = span !0 83 117 +!10 = fn_call_path_span !0 83 100 +!11 = "test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-vec/src/codec.sw" +!12 = span !11 81408 81434 +!13 = (!9 !10 !12) +!14 = "test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw" +!15 = span !14 594 999 +!16 = fn_name_span !14 597 601 +!17 = (!15 !16) +!18 = span !14 627 631 +!19 = span !14 617 632 +!20 = fn_call_path_span !14 617 626 +!21 = (!19 !20) +!22 = span !14 651 661 +!23 = fn_call_path_span !14 651 659 +!24 = "test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-vec/src/vec.sw" +!25 = span !24 4111 4124 +!26 = fn_call_path_span !24 4111 4122 +!27 = span !24 774 787 +!28 = fn_call_path_span !24 774 779 +!29 = "test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-vec/src/alloc.sw" +!30 = span !29 1787 1811 +!31 = fn_call_path_span !29 1804 1805 +!32 = (!22 !23 !25 !26 !27 !28 !30 !31) +!33 = span !29 1777 1886 +!34 = (!22 !23 !25 !26 !27 !28 !33) +!35 = span !29 1828 1837 +!36 = span !29 1847 1858 +!37 = span !24 750 818 +!38 = (!22 !23 !25 !26 !37) +!39 = (!22 !23 !25 !26) +!40 = (!22 !23 !25 !26 !37) +!41 = (!22 !23 !25 !26) +!42 = span !24 806 807 +!43 = (!22 !23 !25 !26 !37) +!44 = span !24 4087 4155 +!45 = (!22 !23 !44) +!46 = (!22 !23) +!47 = span !24 4143 4144 +!48 = (!22 !23 !44) +!49 = span !14 667 668 +!50 = span !14 674 675 +!51 = span !14 667 676 +!52 = fn_call_path_span !14 669 673 +!53 = (!51 !52) +!54 = span !14 682 683 +!55 = span !14 689 690 +!56 = span !14 682 691 +!57 = fn_call_path_span !14 684 688 +!58 = (!56 !57) +!59 = span !14 697 698 +!60 = span !14 704 705 +!61 = span !14 697 706 +!62 = fn_call_path_span !14 699 703 +!63 = (!61 !62) +!64 = span !14 790 791 +!65 = span !14 804 810 +!66 = span !14 723 840 +!67 = span !14 737 738 +!68 = span !14 751 752 +!69 = span !14 765 766 +!70 = span !14 779 780 +!71 = span !14 857 883 +!72 = span !14 873 877 +!73 = span !14 203 239 +!74 = span !14 905 931 +!75 = span !14 921 925 +!76 = span !14 996 997 +!77 = span !14 544 548 +!78 = span !14 528 592 +!79 = fn_name_span !14 531 540 +!80 = inline "never" +!81 = (!78 !79 !80) +!82 = span !14 584 588 +!83 = span !11 80995 80999 +!84 = (!82 !83) +!85 = span !11 80973 81088 +!86 = (!82 !85) +!87 = span !11 81015 81024 +!88 = span !11 81038 81053 +!89 = span !11 81105 81116 +!90 = (!82 !89) +!91 = (!82 !89) +!92 = (!82 !89) +!93 = (!82 !89) +!94 = (!82 !89) +!95 = span !11 5357 5361 +!96 = span !11 5343 5488 +!97 = fn_name_span !11 5346 5356 +!98 = (!96 !97) +!99 = span !11 5451 5457 +!100 = span !11 87 114 +!101 = span !11 5399 5482 +!102 = span !11 160 260 +!103 = fn_name_span !11 167 170 +!104 = (!102 !103) +!105 = span !11 191 254 +!106 = span !11 499 591 +!107 = fn_name_span !11 502 514 +!108 = (!106 !107) +!109 = span !11 573 577 +!110 = span !24 5760 5764 +!111 = span !24 5766 5771 +!112 = span !24 5740 6205 +!113 = fn_name_span !24 5747 5751 +!114 = (!112 !113) +!115 = span !24 3543 3551 +!116 = span !24 3523 3537 +!117 = span !24 375 383 +!118 = span !24 5852 5876 +!119 = fn_call_path_span !24 5861 5863 +!120 = (!118 !119) +!121 = span !24 5891 5906 +!122 = fn_call_path_span !24 5900 5904 +!123 = (!121 !122) +!124 = span !24 2990 2991 +!125 = span !24 2978 2991 +!126 = fn_call_path_span !24 2987 2989 +!127 = (!121 !122 !125 !126) +!128 = span !24 2994 2995 +!129 = (!121 !122 !125) +!130 = span !24 3005 3006 +!131 = span !24 3005 3017 +!132 = fn_call_path_span !24 3007 3008 +!133 = (!121 !122 !131 !132) +!134 = span !24 357 369 +!135 = (!121 !122 !134) +!136 = span !24 3041 3082 +!137 = fn_call_path_span !24 3041 3048 +!138 = span !29 2668 2685 +!139 = fn_call_path_span !29 2678 2679 +!140 = (!121 !122 !136 !137 !138 !139) +!141 = (!121 !122 !136 !137 !138) +!142 = span !29 2710 2731 +!143 = fn_call_path_span !29 2710 2715 +!144 = (!121 !122 !136 !137 !142 !143 !30 !31) +!145 = (!121 !122 !136 !137 !142 !143 !33) +!146 = span !29 2752 2753 +!147 = span !29 2744 2753 +!148 = fn_call_path_span !29 2750 2751 +!149 = (!121 !122 !136 !137 !147 !148) +!150 = (!121 !122 !136 !137 !147) +!151 = span !29 2768 2800 +!152 = fn_call_path_span !29 2772 2779 +!153 = "test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-vec/src/raw_ptr.sw" +!154 = span !153 3413 3437 +!155 = fn_call_path_span !153 3419 3420 +!156 = (!121 !122 !136 !137 !151 !152 !154 !155) +!157 = span !153 3447 3522 +!158 = (!121 !122 !136 !137 !151 !152 !157) +!159 = span !153 3496 3511 +!160 = (!121 !122 !136 !137) +!161 = span !24 3030 3082 +!162 = (!121 !122 !161) +!163 = span !24 3092 3110 +!164 = (!121 !122 !163) +!165 = span !24 6040 6071 +!166 = fn_call_path_span !24 6053 6056 +!167 = (!165 !166) +!168 = span !24 6124 6145 +!169 = fn_call_path_span !24 6128 6133 +!170 = span !153 4228 4299 +!171 = (!168 !169 !170) +!172 = span !153 4271 4284 +!173 = span !24 6197 6198 +!174 = span !24 6185 6198 +!175 = fn_call_path_span !24 6194 6196 +!176 = (!174 !175) +!177 = (!78 !79 !80) +!178 = span !11 81189 81193 +!179 = (!82 !178) +!180 = span !11 81189 81219 +!181 = fn_call_path_span !11 81194 81204 +!182 = (!82 !180 !181) +!183 = (!82 !180 !181) +!184 = span !0 309 313 +!185 = (!82 !180 !181 !184) +!186 = span !14 116 122 +!187 = (!82 !180 !181 !186) +!188 = (!82 !180 !181) +!189 = span !0 327 333 +!190 = (!82 !180 !181 !189) +!191 = span !0 296 335 +!192 = (!82 !180 !181 !191) +!193 = span !0 349 353 +!194 = (!82 !180 !181 !193) +!195 = span !14 128 134 +!196 = (!82 !180 !181 !195) +!197 = span !0 367 373 +!198 = (!82 !180 !181 !197) +!199 = span !0 349 374 +!200 = fn_call_path_span !0 356 366 +!201 = (!82 !180 !181 !199 !200) +!202 = span !11 5686 5692 +!203 = (!82 !180 !181 !199 !200 !202) +!204 = (!82 !180 !181 !199 !200 !100) +!205 = (!82 !180 !181 !199 !200) +!206 = (!82 !180 !181 !199 !200) +!207 = (!82 !180 !181 !199 !200) +!208 = (!82 !180 !181 !199 !200) +!209 = (!82 !180 !181 !199 !200) +!210 = (!82 !180 !181 !199 !200) +!211 = (!82 !180 !181 !199 !200) +!212 = (!82 !180 !181 !199 !200) +!213 = (!82 !180 !181 !199 !200) +!214 = (!82 !180 !181 !199 !200) +!215 = (!82 !180 !181 !199 !200) +!216 = (!82 !180 !181 !199 !200) +!217 = (!82 !180 !181 !199 !200) +!218 = (!82 !180 !181 !199 !200) +!219 = (!82 !180 !181 !199 !200) +!220 = (!82 !180 !181 !199 !200) +!221 = (!82 !180 !181 !199 !200) +!222 = (!82 !180 !181 !199 !200) +!223 = (!82 !180 !181 !199 !200) +!224 = (!82 !180 !181 !199 !200) +!225 = (!82 !180 !181 !199 !200) +!226 = (!82 !180 !181 !199 !200) +!227 = (!82 !180 !181 !199 !200) +!228 = span !11 5634 5717 +!229 = (!82 !180 !181 !199 !200 !228) +!230 = (!82 !180 !181 !199 !200) +!231 = span !0 336 375 +!232 = (!82 !180 !181 !231) +!233 = span !0 389 393 +!234 = (!82 !180 !181 !233) +!235 = span !14 140 146 +!236 = (!82 !180 !181 !235) +!237 = span !0 407 413 +!238 = (!82 !180 !181 !237) +!239 = span !0 389 414 +!240 = fn_call_path_span !0 396 406 +!241 = (!82 !180 !181 !239 !240) +!242 = span !11 5921 5927 +!243 = (!82 !180 !181 !239 !240 !242) +!244 = (!82 !180 !181 !239 !240 !100) +!245 = (!82 !180 !181 !239 !240) +!246 = (!82 !180 !181 !239 !240) +!247 = (!82 !180 !181 !239 !240) +!248 = (!82 !180 !181 !239 !240) +!249 = (!82 !180 !181 !239 !240) +!250 = (!82 !180 !181 !239 !240) +!251 = (!82 !180 !181 !239 !240) +!252 = (!82 !180 !181 !239 !240) +!253 = (!82 !180 !181 !239 !240) +!254 = (!82 !180 !181 !239 !240) +!255 = (!82 !180 !181 !199 !200) +!256 = (!82 !180 !181 !199 !200) +!257 = (!82 !180 !181 !199 !200) +!258 = (!82 !180 !181 !199 !200) +!259 = (!82 !180 !181 !239 !240) +!260 = (!82 !180 !181 !239 !240) +!261 = (!82 !180 !181 !239 !240) +!262 = (!82 !180 !181 !239 !240) +!263 = (!82 !180 !181 !239 !240) +!264 = (!82 !180 !181 !239 !240) +!265 = (!82 !180 !181 !239 !240) +!266 = (!82 !180 !181 !239 !240) +!267 = (!82 !180 !181 !239 !240) +!268 = (!82 !180 !181 !239 !240) +!269 = (!82 !180 !181 !239 !240) +!270 = (!82 !180 !181 !239 !240) +!271 = (!82 !180 !181 !239 !240) +!272 = span !11 5869 5952 +!273 = (!82 !180 !181 !239 !240 !272) +!274 = (!82 !180 !181 !239 !240) +!275 = span !0 376 415 +!276 = (!82 !180 !181 !275) +!277 = span !0 429 433 +!278 = (!82 !180 !181 !277) +!279 = span !14 152 157 +!280 = (!82 !180 !181 !279) +!281 = (!82 !180 !181) +!282 = span !0 447 453 +!283 = (!82 !180 !181 !282) +!284 = span !0 429 454 +!285 = fn_call_path_span !0 436 446 +!286 = (!82 !180 !181 !284 !285) +!287 = span !11 6154 6160 +!288 = (!82 !180 !181 !284 !285 !287) +!289 = (!82 !180 !181 !284 !285 !100) +!290 = (!82 !180 !181 !284 !285) +!291 = (!82 !180 !181 !284 !285) +!292 = (!82 !180 !181 !284 !285) +!293 = (!82 !180 !181 !284 !285) +!294 = (!82 !180 !181 !284 !285) +!295 = (!82 !180 !181 !284 !285) +!296 = (!82 !180 !181 !284 !285) +!297 = (!82 !180 !181 !284 !285) +!298 = (!82 !180 !181 !284 !285) +!299 = (!82 !180 !181 !284 !285) +!300 = (!82 !180 !181 !239 !240) +!301 = (!82 !180 !181 !239 !240) +!302 = (!82 !180 !181 !239 !240) +!303 = (!82 !180 !181 !239 !240) +!304 = (!82 !180 !181 !284 !285) +!305 = (!82 !180 !181 !284 !285) +!306 = (!82 !180 !181 !284 !285) +!307 = (!82 !180 !181 !284 !285) +!308 = (!82 !180 !181 !284 !285) +!309 = (!82 !180 !181 !284 !285) +!310 = (!82 !180 !181 !284 !285) +!311 = (!82 !180 !181 !284 !285) +!312 = (!82 !180 !181 !284 !285) +!313 = (!82 !180 !181 !284 !285) +!314 = span !11 6102 6185 +!315 = (!82 !180 !181 !284 !285 !314) +!316 = (!82 !180 !181 !284 !285) +!317 = span !0 416 455 +!318 = (!82 !180 !181 !317) +!319 = span !0 469 473 +!320 = (!82 !180 !181 !319) +!321 = span !14 163 174 +!322 = (!82 !180 !181 !321) +!323 = span !0 487 493 +!324 = (!82 !180 !181 !323) +!325 = span !0 469 494 +!326 = fn_call_path_span !0 476 486 +!327 = (!82 !180 !181 !325 !326) +!328 = (!82 !180 !181 !325 !326) +!329 = span !24 21353 21357 +!330 = (!82 !180 !181 !325 !326 !329) +!331 = (!82 !180 !181 !325 !326 !115) +!332 = (!82 !180 !181 !325 !326) +!333 = span !24 21403 21409 +!334 = (!82 !180 !181 !325 !326 !333) +!335 = span !24 21371 21411 +!336 = (!82 !180 !181 !325 !326 !335) +!337 = span !24 21433 21434 +!338 = (!82 !180 !181 !325 !326) +!339 = (!82 !180 !181 !284 !285) +!340 = (!82 !180 !181 !284 !285) +!341 = (!82 !180 !181 !284 !285) +!342 = (!82 !180 !181 !284 !285) +!343 = span !24 21450 21457 +!344 = fn_call_path_span !24 21452 21453 +!345 = (!82 !180 !181 !325 !326 !343 !344) +!346 = (!82 !180 !181 !325 !326) +!347 = span !24 21483 21487 +!348 = (!82 !180 !181 !325 !326 !347) +!349 = span !24 21483 21504 +!350 = fn_call_path_span !24 21488 21501 +!351 = (!82 !180 !181 !325 !326 !349 !350) +!352 = span !24 8256 8260 +!353 = (!82 !180 !181 !325 !326 !349 !350 !352) +!354 = (!82 !180 !181 !325 !326 !349 !350 !116) +!355 = (!82 !180 !181 !325 !326 !349 !350 !134) +!356 = (!82 !180 !181 !325 !326 !349 !350) +!357 = span !24 8256 8284 +!358 = fn_call_path_span !24 8269 8272 +!359 = (!82 !180 !181 !325 !326 !349 !350 !357 !358) +!360 = (!82 !180 !181 !325 !326 !349 !350 !357 !358) +!361 = span !24 8256 8296 +!362 = fn_call_path_span !24 8285 8289 +!363 = span !153 2650 2739 +!364 = (!82 !180 !181 !325 !326 !349 !350 !361 !362 !363) +!365 = span !153 2688 2701 +!366 = span !24 21543 21549 +!367 = (!82 !180 !181 !325 !326 !366) +!368 = span !24 21518 21550 +!369 = (!82 !180 !181 !325 !326 !368) +!370 = span !24 21569 21570 +!371 = span !24 21564 21570 +!372 = fn_call_path_span !24 21566 21568 +!373 = (!82 !180 !181 !325 !326 !371 !372) +!374 = (!82 !180 !181 !325 !326) +!375 = span !24 21591 21597 +!376 = (!82 !180 !181 !325 !326 !375) +!377 = span !0 456 495 +!378 = (!82 !180 !181 !377) +!379 = span !0 509 513 +!380 = (!82 !180 !181 !379) +!381 = span !14 180 186 +!382 = (!82 !180 !181 !381) +!383 = span !0 527 533 +!384 = (!82 !180 !181 !383) +!385 = span !0 509 534 +!386 = fn_call_path_span !0 516 526 +!387 = (!82 !180 !181 !385 !386) +!388 = (!82 !180 !181 !385 !386) +!389 = span !11 6425 6431 +!390 = (!82 !180 !181 !385 !386 !389) +!391 = (!82 !180 !181 !385 !386 !100) +!392 = (!82 !180 !181 !385 !386) +!393 = (!82 !180 !181 !385 !386) +!394 = (!82 !180 !181 !385 !386) +!395 = (!82 !180 !181 !385 !386) +!396 = (!82 !180 !181 !385 !386) +!397 = (!82 !180 !181 !385 !386) +!398 = (!82 !180 !181 !385 !386) +!399 = span !11 6440 6444 +!400 = (!82 !180 !181 !385 !386 !399) +!401 = (!82 !180 !181 !385 !386) +!402 = (!82 !180 !181 !385 !386) +!403 = (!82 !180 !181 !385 !386) +!404 = (!82 !180 !181 !385 !386) +!405 = (!82 !180 !181 !385 !386) +!406 = (!82 !180 !181 !385 !386) +!407 = (!82 !180 !181 !385 !386) +!408 = (!82 !180 !181 !385 !386) +!409 = (!82 !180 !181 !385 !386) +!410 = (!82 !180 !181 !385 !386) +!411 = (!82 !180 !181 !385 !386) +!412 = (!82 !180 !181 !385 !386) +!413 = (!82 !180 !181 !385 !386) +!414 = (!82 !180 !181 !385 !386) +!415 = (!82 !180 !181 !385 !386) +!416 = (!82 !180 !181 !385 !386) +!417 = (!82 !180 !181 !385 !386) +!418 = (!82 !180 !181 !385 !386) +!419 = span !11 6373 6456 +!420 = (!82 !180 !181 !385 !386 !419) +!421 = (!82 !180 !181 !385 !386) +!422 = span !0 496 535 +!423 = (!82 !180 !181 !422) +!424 = span !0 549 553 +!425 = (!82 !180 !181 !424) +!426 = span !14 192 199 +!427 = (!82 !180 !181 !426) +!428 = span !0 567 573 +!429 = (!82 !180 !181 !428) +!430 = span !0 549 574 +!431 = fn_call_path_span !0 556 566 +!432 = (!82 !180 !181 !430 !431) +!433 = (!82 !180 !181 !430 !431) +!434 = span !11 5217 5223 +!435 = (!82 !180 !181 !430 !431 !434) +!436 = (!82 !180 !181 !430 !431 !100) +!437 = (!82 !180 !181 !430 !431) +!438 = (!82 !180 !181 !430 !431) +!439 = (!82 !180 !181 !430 !431) +!440 = (!82 !180 !181 !430 !431) +!441 = (!82 !180 !181 !430 !431) +!442 = (!82 !180 !181 !430 !431) +!443 = (!82 !180 !181 !430 !431) +!444 = span !11 5232 5236 +!445 = (!82 !180 !181 !430 !431 !444) +!446 = (!82 !180 !181 !430 !431) +!447 = (!82 !180 !181 !430 !431) +!448 = (!82 !180 !181 !430 !431) +!449 = (!82 !180 !181 !385 !386) +!450 = (!82 !180 !181 !385 !386) +!451 = (!82 !180 !181 !385 !386) +!452 = (!82 !180 !181 !385 !386) +!453 = (!82 !180 !181 !430 !431) +!454 = (!82 !180 !181 !430 !431) +!455 = (!82 !180 !181 !430 !431) +!456 = (!82 !180 !181 !430 !431) +!457 = (!82 !180 !181 !430 !431) +!458 = (!82 !180 !181 !430 !431) +!459 = (!82 !180 !181 !430 !431) +!460 = (!82 !180 !181 !430 !431) +!461 = (!82 !180 !181 !430 !431) +!462 = (!82 !180 !181 !430 !431) +!463 = (!82 !180 !181 !430 !431) +!464 = span !11 5165 5248 +!465 = (!82 !180 !181 !430 !431 !464) +!466 = (!82 !180 !181 !430 !431) +!467 = span !0 536 575 +!468 = (!82 !180 !181 !467) +!469 = span !0 597 603 +!470 = (!82 !180 !181 !469) +!471 = span !11 81176 81220 +!472 = (!82 !471) +!473 = span !11 81229 81235 +!474 = (!82 !473) +!475 = (!82 !180 !181 !430 !431) +!476 = (!82 !180 !181 !430 !431) +!477 = (!82 !180 !181 !430 !431) +!478 = (!82 !180 !181 !430 !431) +!479 = (!78 !79 !80) +!480 = span !0 257 411 +!481 = fn_name_span !0 260 270 +!482 = (!480 !481) +!483 = span !14 92 97 +!484 = (!78 !79 !80) +!485 = span !0 309 603 +!486 = (!82 !180 !181 !485) +!487 = (!82 !180 !181) +!488 = span !0 315 319 +!489 = span !0 322 517 +!490 = fn_call_path_span !0 322 517 +!491 = (!82 !180 !181 !489 !490) +!492 = (!82 !180 !181 !489) +!493 = (!82 !180 !181 !488) +!494 = (!82 !180 !181) +!495 = span !0 392 398 +!496 = (!82 !180 !181 !495) +!497 = span !0 376 380 +!498 = (!82 !180 !181) +!499 = (!82 !180 !181 !488) +!500 = (!82 !180 !181 !488) +!501 = (!82 !180 !181) +!502 = span !0 519 599 +!503 = fn_call_path_span !0 519 599 +!504 = (!82 !180 !181 !502 !503) +!505 = (!82 !180 !181 !502) +!506 = span !0 569 575 +!507 = (!82 !180 !181 !506) +!508 = span !0 553 557 +!509 = (!82 !180 !181) +!510 = (!82 !180 !181 !485) +!511 = (!78 !79 !80) +!512 = span !14 433 438 warning --> test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw:27:5 @@ -1679,7 +1632,7 @@ warning ____ Compiled script "logging" with 6 warnings. - Finished release [optimized + fuel] target(s) [2.896 KB] in ??? + Finished release [optimized + fuel] target(s) [2.928 KB] in ??? > forc test --path test/src/e2e_vm_tests/test_programs/should_pass/language/logging --release exit status: 0 @@ -1775,12 +1728,12 @@ warning ____ Compiled script "logging" with 7 warnings. - Finished release [optimized + fuel] target(s) [2.912 KB] in ??? + Finished release [optimized + fuel] target(s) [2.936 KB] in ??? Running 1 test, filtered 0 tests tested -- logging - test call_main ... ok (???, 5560 gas) + test call_main ... ok (???, 5987 gas) test result: OK. 1 passed; 0 failed; finished in ??? diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/stdout.snap index df8e13f7bfd..9d4e3035b3a 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/stdout.snap @@ -26,114 +26,115 @@ library { // IR: Final script { pub entry fn __entry() -> __ptr never, !3 { + local u64 _result local { u64 } args local mut { ptr } buffer - local u64 item_ entry(): v0 = const u64 0, !5 v1 = gtf v0, 10, !11 v2 = bitcast v1 to ptr, !12 - v3 = get_local __ptr { ptr }, buffer, !14 + v3 = get_local __ptr { ptr }, buffer, !16 v4 = const u64 0 - v5 = get_elem_ptr v3, __ptr ptr, v4, !15 - store v2 to v5, !16 - v6 = get_local __ptr { ptr }, buffer, !18 + v5 = get_elem_ptr v3, __ptr ptr, v4, !17 + store v2 to v5, !18 + v6 = get_local __ptr { ptr }, buffer, !20 v7 = const u64 0 - v8 = get_elem_ptr v6, __ptr ptr, v7, !26 - v9 = load v8, !27 - v10 = asm(ptr: v9, val) -> u64 val, !29 { - lw val ptr i0, !30 + v8 = get_elem_ptr v6, __ptr ptr, v7, !28 + v9 = load v8, !29 + v10 = asm(ptr: v9, val) -> u64 val, !31 { + lw val ptr i0, !32 } - v11 = load v8, !31 - v12 = const u64 8, !32 - v13 = add v11, v12, !33 - store v13 to v8, !35 - v14 = get_local __ptr { u64 }, args, !37 + v11 = load v8, !33 + v12 = const u64 8, !34 + v13 = add v11, v12, !35 + store v13 to v8, !37 + v14 = get_local __ptr { u64 }, args, !39 v15 = const u64 0 - v16 = get_elem_ptr v14, __ptr u64, v15, !38 - store v10 to v16, !39 - v17 = get_local __ptr { u64 }, args, !40 + v16 = get_elem_ptr v14, __ptr u64, v15, !40 + store v10 to v16, !41 + v17 = get_local __ptr { u64 }, args, !42 v18 = const u64 0 - v19 = get_elem_ptr v17, __ptr u64, v18, !41 + v19 = get_elem_ptr v17, __ptr u64, v18, !43 v20 = load v19 - v21 = call main_5(v20), !44 - v22 = get_local __ptr u64, item_, !47 + v21 = call main_8(v20), !46 + v22 = get_local __ptr u64, _result, !47 store v21 to v22, !47 - v23 = get_local __ptr u64, item_, !49 + v23 = get_local __ptr u64, _result, !48 v24 = const u64 8 - retd v23 v24, !51 + retd v23 v24, !52 } - entry_orig fn main_5(baba !53: u64) -> u64, !56 { + entry_orig fn main_8(baba !54: u64) -> u64, !57 { entry(baba: u64): - v0 = const u64 1, !57 - v1 = add baba, v0, !60 + v0 = const u64 1, !58 + v1 = add baba, v0, !61 ret u64 v1 } } !0 = "test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/src/main..sw" -!1 = span !0 0 203 +!1 = span !0 0 204 !2 = fn_name_span !0 7 14 !3 = (!1 !2) !4 = "test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core/src/codec.sw" -!5 = span !4 1599 1600 +!5 = span !4 1699 1700 !6 = span !0 59 89 !7 = fn_call_path_span !0 59 77 -!8 = span !4 159807 159839 -!9 = fn_call_path_span !4 159807 159837 -!10 = span !4 1582 1606 +!8 = span !4 160666 160698 +!9 = fn_call_path_span !4 160666 160696 +!10 = span !4 1682 1706 !11 = (!6 !7 !8 !9 !10) !12 = (!6 !7 !8 !9 !10) -!13 = span !4 1691 1711 -!14 = (!6 !7 !8 !9 !13) -!15 = (!6 !7 !8 !9) -!16 = (!6 !7 !8 !9 !13) -!17 = span !4 159859 159865 -!18 = (!6 !7 !17) -!19 = span !4 159845 159866 -!20 = fn_call_path_span !4 159845 159858 -!21 = span !4 134145 134166 -!22 = fn_call_path_span !4 134145 134158 -!23 = span !4 82744 82772 -!24 = fn_call_path_span !4 82751 82763 -!25 = span !4 625 637 -!26 = (!6 !7 !19 !20 !21 !22 !23 !24 !25) -!27 = (!6 !7 !19 !20 !21 !22 !23 !24) -!28 = span !4 2766 2847 -!29 = (!6 !7 !19 !20 !21 !22 !23 !24 !28) -!30 = span !4 2804 2817 -!31 = (!6 !7 !19 !20 !21 !22 !23 !24) -!32 = (!6 !7 !19 !20 !21 !22 !23 !24) -!33 = (!6 !7 !19 !20 !21 !22 !23 !24) -!34 = span !4 2857 2896 -!35 = (!6 !7 !19 !20 !21 !22 !23 !24 !34) -!36 = span !4 134144 134169 -!37 = (!6 !7 !19 !20 !36) -!38 = (!6 !7 !19 !20 !36) -!39 = (!6 !7 !19 !20 !36) -!40 = span !0 131 135 -!41 = span !0 136 137 -!42 = span !0 126 138 -!43 = fn_call_path_span !0 126 130 -!44 = (!42 !43) -!45 = span !0 156 189 -!46 = fn_call_path_span !0 156 173 -!47 = (!45 !46) -!48 = span !4 81400 81404 -!49 = (!45 !46 !48) -!50 = span !4 81384 81411 -!51 = (!45 !46 !50) -!52 = "test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/src/main.sw" -!53 = span !52 17 21 -!54 = span !52 9 51 -!55 = fn_name_span !52 12 16 -!56 = (!54 !55) -!57 = span !52 48 49 -!58 = span !52 41 49 -!59 = fn_call_path_span !52 46 47 -!60 = (!58 !59) +!13 = span !4 160641 160699 +!14 = fn_call_path_span !4 160641 160660 +!15 = span !4 160514 160534 +!16 = (!6 !7 !13 !14 !15) +!17 = (!6 !7 !13 !14) +!18 = (!6 !7 !13 !14 !15) +!19 = span !4 160558 160564 +!20 = (!6 !7 !13 !14 !19) +!21 = span !4 160544 160565 +!22 = fn_call_path_span !4 160544 160557 +!23 = span !4 134798 134819 +!24 = fn_call_path_span !4 134798 134811 +!25 = span !4 83379 83407 +!26 = fn_call_path_span !4 83386 83398 +!27 = span !4 625 641 +!28 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26 !27) +!29 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26) +!30 = span !4 2927 3008 +!31 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26 !30) +!32 = span !4 2965 2978 +!33 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26) +!34 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26) +!35 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26) +!36 = span !4 3018 3057 +!37 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26 !36) +!38 = span !4 134797 134822 +!39 = (!6 !7 !13 !14 !21 !22 !38) +!40 = (!6 !7 !13 !14 !21 !22 !38) +!41 = (!6 !7 !13 !14 !21 !22 !38) +!42 = span !0 131 135 +!43 = span !0 136 137 +!44 = span !0 126 138 +!45 = fn_call_path_span !0 126 130 +!46 = (!44 !45) +!47 = span !0 107 139 +!48 = span !0 182 189 +!49 = span !0 156 190 +!50 = fn_call_path_span !0 156 173 +!51 = span !4 81408 81434 +!52 = (!49 !50 !51) +!53 = "test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/src/main.sw" +!54 = span !53 17 21 +!55 = span !53 9 51 +!56 = fn_name_span !53 12 16 +!57 = (!55 !56) +!58 = span !53 48 49 +!59 = span !53 41 49 +!60 = fn_call_path_span !53 46 47 +!61 = (!59 !60) ;; ASM: Final program ;; Program kind: Script @@ -150,24 +151,23 @@ cfei i0 ; allocate stack space for globals move $$locbase $sp ; save locals base register for function __entry cfei i24 ; allocate 24 bytes for locals and 0 slots for call arguments gtf $r0 $zero i10 ; get transaction field -sw $$locbase $r0 i1 ; store word -lw $r0 $$locbase i1 ; load word +sw $$locbase $r0 i2 ; store word +lw $r0 $$locbase i2 ; load word lw $r0 $r0 i0 ; lw val ptr i0 -lw $r1 $$locbase i1 ; load word +lw $r1 $$locbase i2 ; load word movi $r2 i8 ; initialize constant into register add $r1 $r1 $r2 -sw $$locbase $r1 i1 ; store word -sw $$locbase $r0 i0 ; store word -lw $r0 $$locbase i0 ; load word +sw $$locbase $r1 i2 ; store word +sw $$locbase $r0 i1 ; store word +lw $r0 $$locbase i1 ; load word move $$arg0 $r0 ; [call]: pass argument 0 -jal $$reta $pc i5 ; [call]: call main_5 -sw $$locbase $$retv i2 ; store word -addi $r0 $$locbase i16 ; get offset to local __ptr u64 -movi $r1 i8 ; initialize constant into register -retd $r0 $r1 +jal $$reta $pc i4 ; [call]: call main_8 +sw $$locbase $$retv i0 ; store word +movi $r0 i8 ; initialize constant into register +retd $$locbase $r0 pshl i1 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function main_5 +move $$locbase $sp ; save locals base register for function main_8 add $r0 $$arg0 $one move $$retv $r0 ; set return value poph i524288 ; restore registers 40..64 @@ -187,29 +187,29 @@ jal $zero $$reta i0 ; return from call 0x00000020 MOVE R59 $sp ;; [26, 236, 80, 0] 0x00000024 CFEI 0x18 ;; [145, 0, 0, 24] 0x00000028 GTF $writable $zero 0xa ;; [97, 64, 0, 10] -0x0000002c SW R59 $writable 0x1 ;; [95, 237, 0, 1] -0x00000030 LW $writable R59 0x1 ;; [93, 67, 176, 1] +0x0000002c SW R59 $writable 0x2 ;; [95, 237, 0, 2] +0x00000030 LW $writable R59 0x2 ;; [93, 67, 176, 2] 0x00000034 LW $writable $writable 0x0 ;; [93, 65, 0, 0] -0x00000038 LW R17 R59 0x1 ;; [93, 71, 176, 1] +0x00000038 LW R17 R59 0x2 ;; [93, 71, 176, 2] 0x0000003c MOVI R18 0x8 ;; [114, 72, 0, 8] 0x00000040 ADD R17 R17 R18 ;; [16, 69, 20, 128] -0x00000044 SW R59 R17 0x1 ;; [95, 237, 16, 1] -0x00000048 SW R59 $writable 0x0 ;; [95, 237, 0, 0] -0x0000004c LW $writable R59 0x0 ;; [93, 67, 176, 0] +0x00000044 SW R59 R17 0x2 ;; [95, 237, 16, 2] +0x00000048 SW R59 $writable 0x1 ;; [95, 237, 0, 1] +0x0000004c LW $writable R59 0x1 ;; [93, 67, 176, 1] 0x00000050 MOVE R58 $writable ;; [26, 233, 0, 0] -0x00000054 JAL R62 $pc 0x5 ;; [153, 248, 48, 5] -0x00000058 SW R59 R61 0x2 ;; [95, 239, 208, 2] -0x0000005c ADDI $writable R59 0x10 ;; [80, 67, 176, 16] -0x00000060 MOVI R17 0x8 ;; [114, 68, 0, 8] -0x00000064 RETD $writable R17 ;; [37, 65, 16, 0] -0x00000068 PSHL 0x1 ;; [149, 0, 0, 1] -0x0000006c PSHH 0x80000 ;; [150, 8, 0, 0] -0x00000070 MOVE R59 $sp ;; [26, 236, 80, 0] -0x00000074 ADD $writable R58 $one ;; [16, 67, 160, 64] -0x00000078 MOVE R61 $writable ;; [26, 245, 0, 0] -0x0000007c POPH 0x80000 ;; [152, 8, 0, 0] -0x00000080 POPL 0x1 ;; [151, 0, 0, 1] -0x00000084 JAL $zero R62 0x0 ;; [153, 3, 224, 0] +0x00000054 JAL R62 $pc 0x4 ;; [153, 248, 48, 4] +0x00000058 SW R59 R61 0x0 ;; [95, 239, 208, 0] +0x0000005c MOVI $writable 0x8 ;; [114, 64, 0, 8] +0x00000060 RETD R59 $writable ;; [37, 237, 0, 0] +0x00000064 PSHL 0x1 ;; [149, 0, 0, 1] +0x00000068 PSHH 0x80000 ;; [150, 8, 0, 0] +0x0000006c MOVE R59 $sp ;; [26, 236, 80, 0] +0x00000070 ADD $writable R58 $one ;; [16, 67, 160, 64] +0x00000074 MOVE R61 $writable ;; [26, 245, 0, 0] +0x00000078 POPH 0x80000 ;; [152, 8, 0, 0] +0x0000007c POPL 0x1 ;; [151, 0, 0, 1] +0x00000080 JAL $zero R62 0x0 ;; [153, 3, 224, 0] +0x00000084 NOOP ;; [71, 0, 0, 0] .data_section: ;; --- END OF TARGET BYTECODE --- diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/stdout.snap index dad5312c440..76af4093300 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/stdout.snap @@ -26,140 +26,141 @@ library { // IR: Final script { pub entry fn __entry() -> __ptr never, !3 { + local u64 _result local { u64, u64 } args local mut { ptr } buffer - local u64 item_ entry(): v0 = const u64 0, !5 v1 = gtf v0, 10, !11 v2 = bitcast v1 to ptr, !12 - v3 = get_local __ptr { ptr }, buffer, !14 + v3 = get_local __ptr { ptr }, buffer, !16 v4 = const u64 0 - v5 = get_elem_ptr v3, __ptr ptr, v4, !15 - store v2 to v5, !16 - v6 = get_local __ptr { ptr }, buffer, !18 + v5 = get_elem_ptr v3, __ptr ptr, v4, !17 + store v2 to v5, !18 + v6 = get_local __ptr { ptr }, buffer, !20 v7 = const u64 0 - v8 = get_elem_ptr v6, __ptr ptr, v7, !26 - v9 = load v8, !27 - v10 = asm(ptr: v9, val) -> u64 val, !29 { - lw val ptr i0, !30 + v8 = get_elem_ptr v6, __ptr ptr, v7, !28 + v9 = load v8, !29 + v10 = asm(ptr: v9, val) -> u64 val, !31 { + lw val ptr i0, !32 } - v11 = load v8, !31 - v12 = const u64 8, !32 - v13 = add v11, v12, !33 - store v13 to v8, !35 - v14 = load v8, !38 - v15 = asm(ptr: v14, val) -> u64 val, !39 { - lw val ptr i0, !30 + v11 = load v8, !33 + v12 = const u64 8, !34 + v13 = add v11, v12, !35 + store v13 to v8, !37 + v14 = load v8, !40 + v15 = asm(ptr: v14, val) -> u64 val, !41 { + lw val ptr i0, !32 } - v16 = load v8, !40 - v17 = const u64 8, !41 - v18 = add v16, v17, !42 - store v18 to v8, !43 - v19 = get_local __ptr { u64, u64 }, args, !45 + v16 = load v8, !42 + v17 = const u64 8, !43 + v18 = add v16, v17, !44 + store v18 to v8, !45 + v19 = get_local __ptr { u64, u64 }, args, !47 v20 = const u64 0 - v21 = get_elem_ptr v19, __ptr u64, v20, !46 - store v10 to v21, !47 + v21 = get_elem_ptr v19, __ptr u64, v20, !48 + store v10 to v21, !49 v22 = const u64 1 - v23 = get_elem_ptr v19, __ptr u64, v22, !48 - store v15 to v23, !49 - v24 = get_local __ptr { u64, u64 }, args, !50 + v23 = get_elem_ptr v19, __ptr u64, v22, !50 + store v15 to v23, !51 + v24 = get_local __ptr { u64, u64 }, args, !52 v25 = const u64 0 - v26 = get_elem_ptr v24, __ptr u64, v25, !51 + v26 = get_elem_ptr v24, __ptr u64, v25, !53 v27 = load v26 - v28 = get_local __ptr { u64, u64 }, args, !52 + v28 = get_local __ptr { u64, u64 }, args, !54 v29 = const u64 1 - v30 = get_elem_ptr v28, __ptr u64, v29, !53 + v30 = get_elem_ptr v28, __ptr u64, v29, !55 v31 = load v30 - v32 = call main_5(v27, v31), !56 - v33 = get_local __ptr u64, item_, !59 + v32 = call main_8(v27, v31), !58 + v33 = get_local __ptr u64, _result, !59 store v32 to v33, !59 - v34 = get_local __ptr u64, item_, !61 + v34 = get_local __ptr u64, _result, !60 v35 = const u64 8 - retd v34 v35, !63 + retd v34 v35, !64 } - entry_orig fn main_5(baba !65: u64, keke !66: u64) -> u64, !69 { + entry_orig fn main_8(baba !66: u64, keke !67: u64) -> u64, !70 { entry(baba: u64, keke: u64): - v0 = add baba, keke, !72 + v0 = add baba, keke, !73 ret u64 v0 } } !0 = "test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/src/main..sw" -!1 = span !0 0 221 +!1 = span !0 0 222 !2 = fn_name_span !0 7 14 !3 = (!1 !2) !4 = "test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core/src/codec.sw" -!5 = span !4 1599 1600 +!5 = span !4 1699 1700 !6 = span !0 64 99 !7 = fn_call_path_span !0 64 82 -!8 = span !4 159807 159839 -!9 = fn_call_path_span !4 159807 159837 -!10 = span !4 1582 1606 +!8 = span !4 160666 160698 +!9 = fn_call_path_span !4 160666 160696 +!10 = span !4 1682 1706 !11 = (!6 !7 !8 !9 !10) !12 = (!6 !7 !8 !9 !10) -!13 = span !4 1691 1711 -!14 = (!6 !7 !8 !9 !13) -!15 = (!6 !7 !8 !9) -!16 = (!6 !7 !8 !9 !13) -!17 = span !4 159859 159865 -!18 = (!6 !7 !17) -!19 = span !4 159845 159866 -!20 = fn_call_path_span !4 159845 159858 -!21 = span !4 134378 134399 -!22 = fn_call_path_span !4 134378 134391 -!23 = span !4 82744 82772 -!24 = fn_call_path_span !4 82751 82763 -!25 = span !4 625 637 -!26 = (!6 !7 !19 !20 !21 !22 !23 !24 !25) -!27 = (!6 !7 !19 !20 !21 !22 !23 !24) -!28 = span !4 2766 2847 -!29 = (!6 !7 !19 !20 !21 !22 !23 !24 !28) -!30 = span !4 2804 2817 -!31 = (!6 !7 !19 !20 !21 !22 !23 !24) -!32 = (!6 !7 !19 !20 !21 !22 !23 !24) -!33 = (!6 !7 !19 !20 !21 !22 !23 !24) -!34 = span !4 2857 2896 -!35 = (!6 !7 !19 !20 !21 !22 !23 !24 !34) -!36 = span !4 134401 134422 -!37 = fn_call_path_span !4 134401 134414 -!38 = (!6 !7 !19 !20 !36 !37 !23 !24) -!39 = (!6 !7 !19 !20 !36 !37 !23 !24 !28) -!40 = (!6 !7 !19 !20 !36 !37 !23 !24) -!41 = (!6 !7 !19 !20 !36 !37 !23 !24) -!42 = (!6 !7 !19 !20 !36 !37 !23 !24) -!43 = (!6 !7 !19 !20 !36 !37 !23 !24 !34) -!44 = span !4 134377 134423 -!45 = (!6 !7 !19 !20 !44) -!46 = (!6 !7 !19 !20 !44) -!47 = (!6 !7 !19 !20 !44) -!48 = (!6 !7 !19 !20 !44) -!49 = (!6 !7 !19 !20 !44) -!50 = span !0 141 145 -!51 = span !0 146 147 -!52 = span !0 149 153 -!53 = span !0 154 155 -!54 = span !0 136 156 -!55 = fn_call_path_span !0 136 140 -!56 = (!54 !55) -!57 = span !0 174 207 -!58 = fn_call_path_span !0 174 191 -!59 = (!57 !58) -!60 = span !4 81400 81404 -!61 = (!57 !58 !60) -!62 = span !4 81384 81411 -!63 = (!57 !58 !62) -!64 = "test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/src/main.sw" -!65 = span !64 17 21 -!66 = span !64 28 32 -!67 = span !64 9 65 -!68 = fn_name_span !64 12 16 -!69 = (!67 !68) -!70 = span !64 52 63 -!71 = fn_call_path_span !64 57 58 -!72 = (!70 !71) +!13 = span !4 160641 160699 +!14 = fn_call_path_span !4 160641 160660 +!15 = span !4 160514 160534 +!16 = (!6 !7 !13 !14 !15) +!17 = (!6 !7 !13 !14) +!18 = (!6 !7 !13 !14 !15) +!19 = span !4 160558 160564 +!20 = (!6 !7 !13 !14 !19) +!21 = span !4 160544 160565 +!22 = fn_call_path_span !4 160544 160557 +!23 = span !4 135031 135052 +!24 = fn_call_path_span !4 135031 135044 +!25 = span !4 83379 83407 +!26 = fn_call_path_span !4 83386 83398 +!27 = span !4 625 641 +!28 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26 !27) +!29 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26) +!30 = span !4 2927 3008 +!31 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26 !30) +!32 = span !4 2965 2978 +!33 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26) +!34 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26) +!35 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26) +!36 = span !4 3018 3057 +!37 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26 !36) +!38 = span !4 135054 135075 +!39 = fn_call_path_span !4 135054 135067 +!40 = (!6 !7 !13 !14 !21 !22 !38 !39 !25 !26) +!41 = (!6 !7 !13 !14 !21 !22 !38 !39 !25 !26 !30) +!42 = (!6 !7 !13 !14 !21 !22 !38 !39 !25 !26) +!43 = (!6 !7 !13 !14 !21 !22 !38 !39 !25 !26) +!44 = (!6 !7 !13 !14 !21 !22 !38 !39 !25 !26) +!45 = (!6 !7 !13 !14 !21 !22 !38 !39 !25 !26 !36) +!46 = span !4 135030 135076 +!47 = (!6 !7 !13 !14 !21 !22 !46) +!48 = (!6 !7 !13 !14 !21 !22 !46) +!49 = (!6 !7 !13 !14 !21 !22 !46) +!50 = (!6 !7 !13 !14 !21 !22 !46) +!51 = (!6 !7 !13 !14 !21 !22 !46) +!52 = span !0 141 145 +!53 = span !0 146 147 +!54 = span !0 149 153 +!55 = span !0 154 155 +!56 = span !0 136 156 +!57 = fn_call_path_span !0 136 140 +!58 = (!56 !57) +!59 = span !0 117 157 +!60 = span !0 200 207 +!61 = span !0 174 208 +!62 = fn_call_path_span !0 174 191 +!63 = span !4 81408 81434 +!64 = (!61 !62 !63) +!65 = "test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/src/main.sw" +!66 = span !65 17 21 +!67 = span !65 28 32 +!68 = span !65 9 65 +!69 = fn_name_span !65 12 16 +!70 = (!68 !69) +!71 = span !65 52 63 +!72 = fn_call_path_span !65 57 58 +!73 = (!71 !72) ;; ASM: Final program ;; Program kind: Script @@ -176,33 +177,32 @@ cfei i0 ; allocate stack space for globals move $$locbase $sp ; save locals base register for function __entry cfei i32 ; allocate 32 bytes for locals and 0 slots for call arguments gtf $r0 $zero i10 ; get transaction field -sw $$locbase $r0 i2 ; store word -lw $r0 $$locbase i2 ; load word +sw $$locbase $r0 i3 ; store word +lw $r0 $$locbase i3 ; load word lw $r3 $r0 i0 ; lw val ptr i0 -lw $r0 $$locbase i2 ; load word +lw $r0 $$locbase i3 ; load word movi $r1 i8 ; initialize constant into register add $r0 $r0 $r1 -sw $$locbase $r0 i2 ; store word -lw $r0 $$locbase i2 ; load word +sw $$locbase $r0 i3 ; store word +lw $r0 $$locbase i3 ; load word lw $r0 $r0 i0 ; lw val ptr i0 -lw $r1 $$locbase i2 ; load word +lw $r1 $$locbase i3 ; load word movi $r2 i8 ; initialize constant into register add $r1 $r1 $r2 -sw $$locbase $r1 i2 ; store word -sw $$locbase $r3 i0 ; store word -sw $$locbase $r0 i1 ; store word -lw $r0 $$locbase i0 ; load word -lw $r1 $$locbase i1 ; load word +sw $$locbase $r1 i3 ; store word +sw $$locbase $r3 i1 ; store word +sw $$locbase $r0 i2 ; store word +lw $r0 $$locbase i1 ; load word +lw $r1 $$locbase i2 ; load word move $$arg0 $r0 ; [call]: pass argument 0 move $$arg1 $r1 ; [call]: pass argument 1 -jal $$reta $pc i5 ; [call]: call main_5 -sw $$locbase $$retv i3 ; store word -addi $r0 $$locbase i24 ; get offset to local __ptr u64 -movi $r1 i8 ; initialize constant into register -retd $r0 $r1 +jal $$reta $pc i4 ; [call]: call main_8 +sw $$locbase $$retv i0 ; store word +movi $r0 i8 ; initialize constant into register +retd $$locbase $r0 pshl i1 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function main_5 +move $$locbase $sp ; save locals base register for function main_8 add $r0 $$arg0 $$arg1 move $$retv $r0 ; set return value poph i524288 ; restore registers 40..64 @@ -215,47 +215,45 @@ jal $zero $$reta i0 ; return from call 0x00000000 MOVE R60 $pc ;; [26, 240, 48, 0] 0x00000004 JMPF $zero 0x4 ;; [116, 0, 0, 4] -0x00000008 ;; [0, 0, 0, 0, 0, 0, 0, 176] +0x00000008 ;; [0, 0, 0, 0, 0, 0, 0, 168] 0x00000010 ;; [0, 0, 0, 0, 0, 0, 0, 0] 0x00000018 LW R63 R60 0x1 ;; [93, 255, 192, 1] 0x0000001c ADD R63 R63 R60 ;; [16, 255, 255, 0] 0x00000020 MOVE R59 $sp ;; [26, 236, 80, 0] 0x00000024 CFEI 0x20 ;; [145, 0, 0, 32] 0x00000028 GTF $writable $zero 0xa ;; [97, 64, 0, 10] -0x0000002c SW R59 $writable 0x2 ;; [95, 237, 0, 2] -0x00000030 LW $writable R59 0x2 ;; [93, 67, 176, 2] +0x0000002c SW R59 $writable 0x3 ;; [95, 237, 0, 3] +0x00000030 LW $writable R59 0x3 ;; [93, 67, 176, 3] 0x00000034 LW R19 $writable 0x0 ;; [93, 77, 0, 0] -0x00000038 LW $writable R59 0x2 ;; [93, 67, 176, 2] +0x00000038 LW $writable R59 0x3 ;; [93, 67, 176, 3] 0x0000003c MOVI R17 0x8 ;; [114, 68, 0, 8] 0x00000040 ADD $writable $writable R17 ;; [16, 65, 4, 64] -0x00000044 SW R59 $writable 0x2 ;; [95, 237, 0, 2] -0x00000048 LW $writable R59 0x2 ;; [93, 67, 176, 2] +0x00000044 SW R59 $writable 0x3 ;; [95, 237, 0, 3] +0x00000048 LW $writable R59 0x3 ;; [93, 67, 176, 3] 0x0000004c LW $writable $writable 0x0 ;; [93, 65, 0, 0] -0x00000050 LW R17 R59 0x2 ;; [93, 71, 176, 2] +0x00000050 LW R17 R59 0x3 ;; [93, 71, 176, 3] 0x00000054 MOVI R18 0x8 ;; [114, 72, 0, 8] 0x00000058 ADD R17 R17 R18 ;; [16, 69, 20, 128] -0x0000005c SW R59 R17 0x2 ;; [95, 237, 16, 2] -0x00000060 SW R59 R19 0x0 ;; [95, 237, 48, 0] -0x00000064 SW R59 $writable 0x1 ;; [95, 237, 0, 1] -0x00000068 LW $writable R59 0x0 ;; [93, 67, 176, 0] -0x0000006c LW R17 R59 0x1 ;; [93, 71, 176, 1] +0x0000005c SW R59 R17 0x3 ;; [95, 237, 16, 3] +0x00000060 SW R59 R19 0x1 ;; [95, 237, 48, 1] +0x00000064 SW R59 $writable 0x2 ;; [95, 237, 0, 2] +0x00000068 LW $writable R59 0x1 ;; [93, 67, 176, 1] +0x0000006c LW R17 R59 0x2 ;; [93, 71, 176, 2] 0x00000070 MOVE R58 $writable ;; [26, 233, 0, 0] 0x00000074 MOVE R57 R17 ;; [26, 229, 16, 0] -0x00000078 JAL R62 $pc 0x5 ;; [153, 248, 48, 5] -0x0000007c SW R59 R61 0x3 ;; [95, 239, 208, 3] -0x00000080 ADDI $writable R59 0x18 ;; [80, 67, 176, 24] -0x00000084 MOVI R17 0x8 ;; [114, 68, 0, 8] -0x00000088 RETD $writable R17 ;; [37, 65, 16, 0] -0x0000008c PSHL 0x1 ;; [149, 0, 0, 1] -0x00000090 PSHH 0x80000 ;; [150, 8, 0, 0] -0x00000094 MOVE R59 $sp ;; [26, 236, 80, 0] -0x00000098 ADD $writable R58 R57 ;; [16, 67, 174, 64] -0x0000009c MOVE R61 $writable ;; [26, 245, 0, 0] -0x000000a0 POPH 0x80000 ;; [152, 8, 0, 0] -0x000000a4 POPL 0x1 ;; [151, 0, 0, 1] -0x000000a8 JAL $zero R62 0x0 ;; [153, 3, 224, 0] -0x000000ac NOOP ;; [71, 0, 0, 0] +0x00000078 JAL R62 $pc 0x4 ;; [153, 248, 48, 4] +0x0000007c SW R59 R61 0x0 ;; [95, 239, 208, 0] +0x00000080 MOVI $writable 0x8 ;; [114, 64, 0, 8] +0x00000084 RETD R59 $writable ;; [37, 237, 0, 0] +0x00000088 PSHL 0x1 ;; [149, 0, 0, 1] +0x0000008c PSHH 0x80000 ;; [150, 8, 0, 0] +0x00000090 MOVE R59 $sp ;; [26, 236, 80, 0] +0x00000094 ADD $writable R58 R57 ;; [16, 67, 174, 64] +0x00000098 MOVE R61 $writable ;; [26, 245, 0, 0] +0x0000009c POPH 0x80000 ;; [152, 8, 0, 0] +0x000000a0 POPL 0x1 ;; [151, 0, 0, 1] +0x000000a4 JAL $zero R62 0x0 ;; [153, 3, 224, 0] .data_section: ;; --- END OF TARGET BYTECODE --- - Finished release [optimized + fuel] target(s) [176 B] in ??? + Finished release [optimized + fuel] target(s) [168 B] in ??? diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/stdout.snap index 962af163e82..0c8b57e81ee 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/stdout.snap @@ -31,68 +31,89 @@ script { pub entry fn __entry() -> __ptr never, !3 { local { { string<3> }, { u64, ( u64 | u64 ) } } __ret_val0 local [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] __tmp_arg + local { { ptr, u64, u64 } } __tmp_arg0 local { [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] } args local mut [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] array local mut { ptr } buffer + local { { ptr, u64, u64 } } buffer0 local { { string<3> }, { u64, ( u64 | u64 ) } } first - local { u64 } item_ + local { u64 } self_1 entry(): v0 = const u64 0, !5 v1 = gtf v0, 10, !11 v2 = bitcast v1 to ptr, !12 - v3 = get_local __ptr { ptr }, buffer, !14 + v3 = get_local __ptr { ptr }, buffer, !16 v4 = const u64 0 - v5 = get_elem_ptr v3, __ptr ptr, v4, !15 - store v2 to v5, !16 - v6 = get_local __ptr { ptr }, buffer, !18 + v5 = get_elem_ptr v3, __ptr ptr, v4, !17 + store v2 to v5, !18 + v6 = get_local __ptr { ptr }, buffer, !20 v7 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, first - v8 = call decode_4(v6, v7) - v9 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], array, !24 - v10 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, first, !26 + v8 = call decode_6(v6, v7) + v9 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], array, !26 + v10 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, first, !28 v11 = const u64 0 - v12 = get_elem_ptr v9, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v11, !27 + v12 = get_elem_ptr v9, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v11, !29 mem_copy_val v12, v10 v13 = const u64 1 - v14 = get_elem_ptr v9, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v13, !28 + v14 = get_elem_ptr v9, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v13, !30 mem_copy_val v14, v10 - v15 = const u64 1, !29 - br decode_script_data_0_abi_decode_2_abi_decode_3_while(v15), !30 + v15 = const u64 1, !31 + br decode_script_data_0_decode_from_raw_ptr_1_abi_decode_4_abi_decode_5_while(v15), !32 - decode_script_data_0_abi_decode_2_abi_decode_3_while(v16: u64): - v17 = const u64 2, !31 - v18 = cmp lt v16 v17, !34 - cbr v18, decode_script_data_0_abi_decode_2_abi_decode_3_while_body(), decode_script_data_0_abi_decode_2_abi_decode_3_end_while(), !35 + decode_script_data_0_decode_from_raw_ptr_1_abi_decode_4_abi_decode_5_while(v16: u64): + v17 = const u64 2, !33 + v18 = cmp lt v16 v17, !36 + cbr v18, decode_script_data_0_decode_from_raw_ptr_1_abi_decode_4_abi_decode_5_while_body(), decode_script_data_0_decode_from_raw_ptr_1_abi_decode_4_abi_decode_5_end_while(), !37 - decode_script_data_0_abi_decode_2_abi_decode_3_while_body(): + decode_script_data_0_decode_from_raw_ptr_1_abi_decode_4_abi_decode_5_while_body(): v19 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, __ret_val0 - v20 = call decode_4(v6, v19) - v21 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], array, !37 - v22 = get_elem_ptr v21, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v16, !38 + v20 = call decode_6(v6, v19) + v21 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], array, !39 + v22 = get_elem_ptr v21, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v16, !40 mem_copy_val v22, v19 - v23 = const u64 1, !39 - v24 = add v16, v23, !42 - br decode_script_data_0_abi_decode_2_abi_decode_3_while(v24), !43 + v23 = const u64 1, !41 + v24 = add v16, v23, !44 + br decode_script_data_0_decode_from_raw_ptr_1_abi_decode_4_abi_decode_5_while(v24), !45 - decode_script_data_0_abi_decode_2_abi_decode_3_end_while(): - v25 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], array, !45 - v26 = get_local __ptr { [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] }, args, !47 + decode_script_data_0_decode_from_raw_ptr_1_abi_decode_4_abi_decode_5_end_while(): + v25 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], array, !47 + v26 = get_local __ptr { [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] }, args, !49 v27 = const u64 0 - v28 = get_elem_ptr v26, __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], v27, !48 + v28 = get_elem_ptr v26, __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], v27, !50 mem_copy_val v28, v25 - v29 = get_local __ptr { [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] }, args, !49 + v29 = get_local __ptr { [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] }, args, !51 v30 = const u64 0 - v31 = get_elem_ptr v29, __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], v30, !50 + v31 = get_elem_ptr v29, __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], v30, !52 v32 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], __tmp_arg mem_copy_val v32, v31 - v33 = get_local __ptr { u64 }, item_ - v34 = call main_19(v32, v33) - v35 = get_local __ptr { u64 }, item_, !54 - v36 = const u64 8 - retd v35 v36, !56 + v33 = get_local __ptr { u64 }, self_1 + v34 = call main_22(v32, v33) + v35 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg0 + v36 = call new_32(v35) + v37 = get_local __ptr { u64 }, self_1, !59 + v38 = const u64 0 + v39 = get_elem_ptr v37, __ptr u64, v38, !62 + v40 = load v39, !63 + v41 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg0 + v42 = get_local __ptr { { ptr, u64, u64 } }, buffer0 + v43 = call abi_encode_31(v40, v41, v42) + v44 = get_local __ptr { { ptr, u64, u64 } }, buffer0, !65 + v45 = const u64 0 + v46 = get_elem_ptr v44, __ptr { ptr, u64, u64 }, v45, !67 + v47 = const u64 0 + v48 = get_elem_ptr v46, __ptr ptr, v47, !69 + v49 = load v48, !70 + v50 = get_local __ptr { { ptr, u64, u64 } }, buffer0, !72 + v51 = const u64 0 + v52 = get_elem_ptr v50, __ptr { ptr, u64, u64 }, v51, !73 + v53 = const u64 2 + v54 = get_elem_ptr v52, __ptr u64, v53, !75 + v55 = load v54, !70 + retd v49 v55, !77 } - pub fn decode_4(self !57: __ptr { ptr }, __ret_value: __ptr { { string<3> }, { u64, ( u64 | u64 ) } }) -> (), !60 { + pub fn decode_6(self !78: __ptr { ptr }, __ret_value: __ptr { { string<3> }, { u64, ( u64 | u64 ) } }) -> (), !81 { local mut slice __aggr_memcpy_0 local mut { ptr, u64 } __aggr_memcpy_00 local mut string<3> __aggr_memcpy_01 @@ -110,131 +131,131 @@ script { entry(self: __ptr { ptr }, __ret_value: __ptr { { string<3> }, { u64, ( u64 | u64 ) } }): v0 = const u64 0 - v1 = get_elem_ptr self, __ptr ptr, v0, !70 - v2 = get_local __ptr { ptr, u64 }, __anon_000, !72 + v1 = get_elem_ptr self, __ptr ptr, v0, !91 + v2 = get_local __ptr { ptr, u64 }, __anon_000, !93 v3 = const u64 0 - v4 = get_elem_ptr v2, __ptr ptr, v3, !73 + v4 = get_elem_ptr v2, __ptr ptr, v3, !94 mem_copy_val v4, v1 v5 = const u64 1 - v6 = get_elem_ptr v2, __ptr u64, v5, !74 - v7 = const u64 3, !75 - store v7 to v6, !76 + v6 = get_elem_ptr v2, __ptr u64, v5, !95 + v7 = const u64 3, !96 + store v7 to v6, !97 v8 = asm(ptr: v2) -> __ptr slice ptr { } v9 = get_local __ptr slice, __aggr_memcpy_0 mem_copy_val v9, v8 - v10 = get_local __ptr slice, slice, !78 + v10 = get_local __ptr slice, slice, !99 mem_copy_val v10, v9 - v11 = load v1, !79 - v12 = const u64 3, !80 - v13 = add v11, v12, !81 - store v13 to v1, !83 - v14 = get_local __ptr slice, slice, !85 - v15 = get_local __ptr slice, data, !87 + v11 = load v1, !100 + v12 = const u64 3, !101 + v13 = add v11, v12, !102 + store v13 to v1, !104 + v14 = get_local __ptr slice, slice, !106 + v15 = get_local __ptr slice, data, !108 mem_copy_val v15, v14 - v16 = get_local __ptr slice, data, !89 - v17 = get_local __ptr slice, self_000, !92 + v16 = get_local __ptr slice, data, !110 + v17 = get_local __ptr slice, self_000, !113 mem_copy_val v17, v16 - v18 = get_local __ptr slice, self_000, !95 - v19 = get_local __ptr slice, slice_, !98 + v18 = get_local __ptr slice, self_000, !116 + v19 = get_local __ptr slice, slice_, !119 mem_copy_val v19, v18 - v20 = get_local __ptr slice, slice_, !100 + v20 = get_local __ptr slice, slice_, !121 v21 = asm(ptr: v20) -> __ptr { ptr, u64 } ptr { } v22 = get_local __ptr { ptr, u64 }, __aggr_memcpy_00 mem_copy_val v22, v21 - v23 = get_local __ptr { ptr, u64 }, __anon_0000, !101 + v23 = get_local __ptr { ptr, u64 }, __anon_0000, !122 mem_copy_val v23, v22 v24 = const u64 0 - v25 = get_elem_ptr v23, __ptr ptr, v24, !103 - v26 = load v25, !104 + v25 = get_elem_ptr v23, __ptr ptr, v24, !124 + v26 = load v25, !125 v27 = asm(s: v26) -> __ptr string<3> s { } v28 = get_local __ptr string<3>, __aggr_memcpy_01 mem_copy_val v28, v27 - v29 = get_local __ptr { string<3> }, __anon_00, !106 + v29 = get_local __ptr { string<3> }, __anon_00, !127 v30 = const u64 0 - v31 = get_elem_ptr v29, __ptr string<3>, v30, !107 + v31 = get_elem_ptr v29, __ptr string<3>, v30, !128 mem_copy_val v31, v28 - v32 = load v1, !114 - v33 = asm(ptr: v32, val) -> u64 val, !116 { - lw val ptr i0, !117 + v32 = load v1, !135 + v33 = asm(ptr: v32, val) -> u64 val, !137 { + lw val ptr i0, !138 } - v34 = load v1, !118 - v35 = const u64 8, !119 - v36 = add v34, v35, !120 - store v36 to v1, !122 - v37 = const u64 0, !123 - v38 = cmp eq v33 v37, !126 - cbr v38, abi_decode_5_abi_decode_12_block0(), abi_decode_5_abi_decode_12_block1(), !127 + v34 = load v1, !139 + v35 = const u64 8, !140 + v36 = add v34, v35, !141 + store v36 to v1, !143 + v37 = const u64 0, !144 + v38 = cmp eq v33 v37, !147 + cbr v38, abi_decode_7_abi_decode_14_block0(), abi_decode_7_abi_decode_14_block1(), !148 - abi_decode_5_abi_decode_12_block0(): - v39 = get_local __ptr { u64, ( u64 | u64 ) }, __anon_01, !130 + abi_decode_7_abi_decode_14_block0(): + v39 = get_local __ptr { u64, ( u64 | u64 ) }, __anon_01, !151 v40 = const u64 0 - v41 = get_elem_ptr v39, __ptr u64, v40, !131 - v42 = const u64 0, !129 - store v42 to v41, !132 - v43 = load v1, !135 - v44 = asm(ptr: v43, val) -> u64 val, !136 { - lw val ptr i0, !117 + v41 = get_elem_ptr v39, __ptr u64, v40, !152 + v42 = const u64 0, !150 + store v42 to v41, !153 + v43 = load v1, !156 + v44 = asm(ptr: v43, val) -> u64 val, !157 { + lw val ptr i0, !138 } - v45 = load v1, !137 - v46 = const u64 8, !138 - v47 = add v45, v46, !139 - store v47 to v1, !140 + v45 = load v1, !158 + v46 = const u64 8, !159 + v47 = add v45, v46, !160 + store v47 to v1, !161 v48 = const u64 1 v49 = const u64 0 - v50 = get_elem_ptr v39, __ptr u64, v48, v49, !141 - store v44 to v50, !142 + v50 = get_elem_ptr v39, __ptr u64, v48, v49, !162 + store v44 to v50, !163 v51 = get_local __ptr { u64, ( u64 | u64 ) }, __tmp_block_arg mem_copy_val v51, v39 - br abi_decode_5_abi_decode_12_block5(v51), !143 + br abi_decode_7_abi_decode_14_block5(v51), !164 - abi_decode_5_abi_decode_12_block1(): - v52 = const u64 1, !144 - v53 = cmp eq v33 v52, !147 - cbr v53, abi_decode_5_abi_decode_12_block2(), abi_decode_5_abi_decode_12_block3(), !148 + abi_decode_7_abi_decode_14_block1(): + v52 = const u64 1, !165 + v53 = cmp eq v33 v52, !168 + cbr v53, abi_decode_7_abi_decode_14_block2(), abi_decode_7_abi_decode_14_block3(), !169 - abi_decode_5_abi_decode_12_block2(): - v54 = get_local __ptr { u64, ( u64 | u64 ) }, __anon_1, !149 + abi_decode_7_abi_decode_14_block2(): + v54 = get_local __ptr { u64, ( u64 | u64 ) }, __anon_1, !170 v55 = const u64 0 - v56 = get_elem_ptr v54, __ptr u64, v55, !150 - v57 = const u64 1, !129 - store v57 to v56, !151 - v58 = load v1, !154 - v59 = asm(ptr: v58, val) -> u64 val, !155 { - lw val ptr i0, !117 + v56 = get_elem_ptr v54, __ptr u64, v55, !171 + v57 = const u64 1, !150 + store v57 to v56, !172 + v58 = load v1, !175 + v59 = asm(ptr: v58, val) -> u64 val, !176 { + lw val ptr i0, !138 } - v60 = load v1, !156 - v61 = const u64 8, !157 - v62 = add v60, v61, !158 - store v62 to v1, !159 + v60 = load v1, !177 + v61 = const u64 8, !178 + v62 = add v60, v61, !179 + store v62 to v1, !180 v63 = const u64 1 v64 = const u64 1 - v65 = get_elem_ptr v54, __ptr u64, v63, v64, !160 - store v59 to v65, !161 + v65 = get_elem_ptr v54, __ptr u64, v63, v64, !181 + store v59 to v65, !182 v66 = get_local __ptr { u64, ( u64 | u64 ) }, __tmp_block_arg mem_copy_val v66, v54 - br abi_decode_5_abi_decode_12_block5(v66), !162 + br abi_decode_7_abi_decode_14_block5(v66), !183 - abi_decode_5_abi_decode_12_block3(): - v67 = const u64 0, !163 - revert v67, !165 + abi_decode_7_abi_decode_14_block3(): + v67 = const u64 0, !184 + revert v67, !186 - abi_decode_5_abi_decode_12_block5(v68: __ptr { u64, ( u64 | u64 ) }): - v69 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, __anon_0, !167 + abi_decode_7_abi_decode_14_block5(v68: __ptr { u64, ( u64 | u64 ) }): + v69 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, __anon_0, !188 v70 = const u64 0 - v71 = get_elem_ptr v69, __ptr { string<3> }, v70, !168 + v71 = get_elem_ptr v69, __ptr { string<3> }, v70, !189 mem_copy_val v71, v29 v72 = const u64 1 - v73 = get_elem_ptr v69, __ptr { u64, ( u64 | u64 ) }, v72, !169 + v73 = get_elem_ptr v69, __ptr { u64, ( u64 | u64 ) }, v72, !190 mem_copy_val v73, v68 mem_copy_val __ret_value, v69 v74 = const unit () ret () v74 } - entry_orig fn main_19(ops: __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], __ret_value: __ptr { u64 }) -> (), !172 { + entry_orig fn main_22(ops: __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], __ret_value: __ptr { u64 }) -> (), !193 { local mut { ptr, u64, u64 } __aggr_memcpy_0 local mut { ptr, u64, u64 } __aggr_memcpy_00 local mut { ptr, u64, u64 } __aggr_memcpy_01 @@ -285,9 +306,9 @@ script { local { { ptr, u64, u64 } } buffer______ local [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] item_ local [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] ops_ - local [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] self_0 - local { string<3> } self_000 - local string<3> self_0000 + local [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] self_ + local { string<3> } self_00 + local string<3> self_000 local { { string<3> }, { u64, ( u64 | u64 ) } } self_1 local { u64, ( u64 | u64 ) } self_10 local { { ptr, u64, u64 } } self_3 @@ -295,237 +316,237 @@ script { entry(ops: __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], __ret_value: __ptr { u64 }): v0 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_ mem_copy_val v0, ops - v1 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !173 - v2 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], item_, !173 + v1 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !194 + v2 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], item_, !194 mem_copy_val v2, v1 - v3 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], item_, !175 + v3 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], item_, !196 v4 = get_local __ptr { { ptr, u64, u64 } }, __ret_val3 - v5 = call new_27(v4) - v6 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], self_0, !178 + v5 = call new_32(v4) + v6 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], self_, !199 mem_copy_val v6, v3 - v7 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !179 + v7 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !200 mem_copy_val v7, v4 - v8 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !181 - v9 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !183 + v8 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !202 + v9 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !204 mem_copy_val v9, v8 - v10 = const u64 0, !184 - br encode_20_abi_encode_21_while(v10), !185 + v10 = const u64 0, !205 + br encode_23_abi_encode_26_while(v10), !206 - encode_20_abi_encode_21_while(v11: u64): - v12 = const u64 2, !186 - v13 = cmp lt v11 v12, !189 - cbr v13, encode_20_abi_encode_21_while_body(), encode_20_abi_encode_21_end_while(), !190 + encode_23_abi_encode_26_while(v11: u64): + v12 = const u64 2, !207 + v13 = cmp lt v11 v12, !210 + cbr v13, encode_23_abi_encode_26_while_body(), encode_23_abi_encode_26_end_while(), !211 - encode_20_abi_encode_21_while_body(): - v14 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], self_0, !192 - v15 = get_elem_ptr v14, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v11, !194 - v16 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !196 - v17 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, self_1, !199 + encode_23_abi_encode_26_while_body(): + v14 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], self_, !213 + v15 = get_elem_ptr v14, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v11, !215 + v16 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !217 + v17 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, self_1, !220 mem_copy_val v17, v15 - v18 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !200 + v18 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !221 mem_copy_val v18, v16 - v19 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, self_1, !202 + v19 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, self_1, !223 v20 = const u64 0 - v21 = get_elem_ptr v19, __ptr { string<3> }, v20, !204 - v22 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !206 - v23 = get_local __ptr { string<3> }, self_000, !209 + v21 = get_elem_ptr v19, __ptr { string<3> }, v20, !225 + v22 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !227 + v23 = get_local __ptr { string<3> }, self_00, !230 mem_copy_val v23, v21 - v24 = get_local __ptr { { ptr, u64, u64 } }, buffer_00, !210 + v24 = get_local __ptr { { ptr, u64, u64 } }, buffer_00, !231 mem_copy_val v24, v22 - v25 = get_local __ptr { string<3> }, self_000, !212 + v25 = get_local __ptr { string<3> }, self_00, !233 v26 = const u64 0 - v27 = get_elem_ptr v25, __ptr string<3>, v26, !214 - v28 = get_local __ptr { { ptr, u64, u64 } }, buffer_00, !216 - v29 = get_local __ptr string<3>, self_0000, !219 + v27 = get_elem_ptr v25, __ptr string<3>, v26, !235 + v28 = get_local __ptr { { ptr, u64, u64 } }, buffer_00, !237 + v29 = get_local __ptr string<3>, self_000, !240 mem_copy_val v29, v27 - v30 = get_local __ptr { { ptr, u64, u64 } }, buffer_000, !220 + v30 = get_local __ptr { { ptr, u64, u64 } }, buffer_000, !241 mem_copy_val v30, v28 - v31 = get_local __ptr { { ptr, u64, u64 } }, buffer_000, !222 + v31 = get_local __ptr { { ptr, u64, u64 } }, buffer_000, !243 v32 = const u64 0 - v33 = get_elem_ptr v31, __ptr { ptr, u64, u64 }, v32, !224 + v33 = get_elem_ptr v31, __ptr { ptr, u64, u64 }, v32, !244 v34 = asm(buffer: v33) -> __ptr { ptr, u64, u64 } buffer { } v35 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 mem_copy_val v35, v34 - v36 = get_local __ptr { ptr, u64, u64 }, __anon_000, !225 + v36 = get_local __ptr { ptr, u64, u64 }, __anon_000, !245 mem_copy_val v36, v35 v37 = const u64 0 - v38 = get_elem_ptr v36, __ptr ptr, v37, !226 - v39 = load v38, !227 + v38 = get_elem_ptr v36, __ptr ptr, v37, !246 + v39 = load v38, !247 v40 = const u64 1 - v41 = get_elem_ptr v36, __ptr u64, v40, !228 - v42 = load v41, !229 + v41 = get_elem_ptr v36, __ptr u64, v40, !248 + v42 = load v41, !249 v43 = const u64 2 - v44 = get_elem_ptr v36, __ptr u64, v43, !230 - v45 = load v44, !231 - v46 = get_local __ptr string<3>, self_0000, !233 + v44 = get_elem_ptr v36, __ptr u64, v43, !250 + v45 = load v44, !251 + v46 = get_local __ptr string<3>, self_000, !253 v47 = const u64 3 - v48 = add v45, v47, !234 - v49 = cmp gt v48 v42, !235 - cbr v49, encode_20_abi_encode_21_abi_encode_22_abi_encode_23_abi_encode_24_block1(), encode_20_abi_encode_21_abi_encode_22_abi_encode_23_abi_encode_24_block0(v39, v42), !236 + v48 = add v45, v47, !254 + v49 = cmp gt v48 v42, !255 + cbr v49, encode_23_abi_encode_26_abi_encode_27_abi_encode_28_abi_encode_29_block1(), encode_23_abi_encode_26_abi_encode_27_abi_encode_28_abi_encode_29_block0(v39, v42), !256 - encode_20_abi_encode_21_abi_encode_22_abi_encode_23_abi_encode_24_block0(v50: ptr, v51: u64): - v52 = get_local __ptr string<3>, __anon_10, !237 + encode_23_abi_encode_26_abi_encode_27_abi_encode_28_abi_encode_29_block0(v50: ptr, v51: u64): + v52 = get_local __ptr string<3>, __anon_10, !257 mem_copy_val v52, v46 - v53 = add v50, v45, !238 - v54 = cast_ptr v53 to __ptr u8, !239 - mem_copy_bytes v54, v52, 3, !240 - v55 = get_local __ptr { ptr, u64, u64 }, __anon_20, !241 + v53 = add v50, v45, !258 + v54 = cast_ptr v53 to __ptr u8, !259 + mem_copy_bytes v54, v52, 3, !260 + v55 = get_local __ptr { ptr, u64, u64 }, __anon_20, !261 v56 = const u64 0 - v57 = get_elem_ptr v55, __ptr ptr, v56, !242 - store v50 to v57, !243 + v57 = get_elem_ptr v55, __ptr ptr, v56, !262 + store v50 to v57, !263 v58 = const u64 1 - v59 = get_elem_ptr v55, __ptr u64, v58, !244 - store v51 to v59, !245 + v59 = get_elem_ptr v55, __ptr u64, v58, !264 + store v51 to v59, !265 v60 = const u64 2 - v61 = get_elem_ptr v55, __ptr u64, v60, !246 - store v48 to v61, !247 + v61 = get_elem_ptr v55, __ptr u64, v60, !266 + store v48 to v61, !267 v62 = asm(buffer: v55) -> __ptr { ptr, u64, u64 } buffer { } v63 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_00 mem_copy_val v63, v62 - v64 = get_local __ptr { { ptr, u64, u64 } }, __anon_30, !249 + v64 = get_local __ptr { { ptr, u64, u64 } }, __anon_30, !269 v65 = const u64 0 - v66 = get_elem_ptr v64, __ptr { ptr, u64, u64 }, v65, !250 + v66 = get_elem_ptr v64, __ptr { ptr, u64, u64 }, v65, !270 mem_copy_val v66, v63 - v67 = get_local __ptr { { ptr, u64, u64 } }, buffer__00, !252 + v67 = get_local __ptr { { ptr, u64, u64 } }, buffer__00, !272 mem_copy_val v67, v64 - v68 = get_local __ptr { { ptr, u64, u64 } }, buffer__00, !254 - v69 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !256 + v68 = get_local __ptr { { ptr, u64, u64 } }, buffer__00, !274 + v69 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !276 mem_copy_val v69, v68 - v70 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, self_1, !258 + v70 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, self_1, !278 v71 = const u64 1 - v72 = get_elem_ptr v70, __ptr { u64, ( u64 | u64 ) }, v71, !260 - v73 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !262 - v74 = get_local __ptr { u64, ( u64 | u64 ) }, self_10, !265 + v72 = get_elem_ptr v70, __ptr { u64, ( u64 | u64 ) }, v71, !280 + v73 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !282 + v74 = get_local __ptr { u64, ( u64 | u64 ) }, self_10, !285 mem_copy_val v74, v72 - v75 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !266 + v75 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !286 mem_copy_val v75, v73 - v76 = get_local __ptr { u64, ( u64 | u64 ) }, self_10, !268 - v77 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !270 + v76 = get_local __ptr { u64, ( u64 | u64 ) }, self_10, !288 + v77 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !290 mem_copy_val v77, v76 - v78 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !271 + v78 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !291 v79 = const u64 0 - v80 = get_elem_ptr v78, __ptr u64, v79, !272 - v81 = load v80, !273 - v82 = const u64 0, !267 - v83 = cmp eq v81 v82, !276 - cbr v83, encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block0(), encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block1(), !277 + v80 = get_elem_ptr v78, __ptr u64, v79, !292 + v81 = load v80, !293 + v82 = const u64 0, !287 + v83 = cmp eq v81 v82, !296 + cbr v83, encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block0(), encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block1(), !297 - encode_20_abi_encode_21_abi_encode_22_abi_encode_23_abi_encode_24_block1(): + encode_23_abi_encode_26_abi_encode_27_abi_encode_28_abi_encode_29_block1(): v84 = const u64 2 - v85 = mul v42, v84, !278 - v86 = add v85, v47, !279 - v87 = asm(new_cap: v86, old_ptr: v39, len: v45) -> __ptr u8 hp, !280 { + v85 = mul v42, v84, !298 + v86 = add v85, v47, !299 + v87 = asm(new_cap: v86, old_ptr: v39, len: v45) -> __ptr u8 hp, !300 { aloc new_cap mcp hp old_ptr len } - br encode_20_abi_encode_21_abi_encode_22_abi_encode_23_abi_encode_24_block0(v87, v86), !281 + br encode_23_abi_encode_26_abi_encode_27_abi_encode_28_abi_encode_29_block0(v87, v86), !301 - encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block0(): - v88 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !282 + encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block0(): + v88 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !302 v89 = const u64 1 v90 = const u64 0 - v91 = get_elem_ptr v88, __ptr u64, v89, v90, !283 - v92 = load v91, !284 - v93 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !286 + v91 = get_elem_ptr v88, __ptr u64, v89, v90, !303 + v92 = load v91, !304 + v93 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !306 v94 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg mem_copy_val v94, v93 v95 = get_local __ptr { { ptr, u64, u64 } }, __ret_val - v96 = const u64 0, !287 - v97 = call abi_encode_26(v96, v94, v95) - v98 = get_local __ptr { { ptr, u64, u64 } }, buffer__1, !289 + v96 = const u64 0, !307 + v97 = call abi_encode_31(v96, v94, v95) + v98 = get_local __ptr { { ptr, u64, u64 } }, buffer__1, !309 mem_copy_val v98, v95 - v99 = get_local __ptr { { ptr, u64, u64 } }, buffer__1, !291 + v99 = get_local __ptr { { ptr, u64, u64 } }, buffer__1, !311 v100 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg0 mem_copy_val v100, v99 v101 = get_local __ptr { { ptr, u64, u64 } }, __ret_val0 - v102 = call abi_encode_26(v92, v100, v101) - v103 = get_local __ptr { { ptr, u64, u64 } }, buffer___0, !293 + v102 = call abi_encode_31(v92, v100, v101) + v103 = get_local __ptr { { ptr, u64, u64 } }, buffer___0, !313 mem_copy_val v103, v101 - v104 = get_local __ptr { { ptr, u64, u64 } }, buffer___0, !295 + v104 = get_local __ptr { { ptr, u64, u64 } }, buffer___0, !315 v105 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg mem_copy_val v105, v104 - br encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block5(v105), !296 + br encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block5(v105), !316 - encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block1(): - v106 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !297 + encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block1(): + v106 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !317 v107 = const u64 0 - v108 = get_elem_ptr v106, __ptr u64, v107, !298 - v109 = load v108, !299 - v110 = const u64 1, !267 - v111 = cmp eq v109 v110, !302 - cbr v111, encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block2(), encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block3(), !303 + v108 = get_elem_ptr v106, __ptr u64, v107, !318 + v109 = load v108, !319 + v110 = const u64 1, !287 + v111 = cmp eq v109 v110, !322 + cbr v111, encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block2(), encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block3(), !323 - encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block2(): - v112 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !304 + encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block2(): + v112 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !324 v113 = const u64 1 v114 = const u64 1 - v115 = get_elem_ptr v112, __ptr u64, v113, v114, !305 - v116 = load v115, !306 - v117 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !308 + v115 = get_elem_ptr v112, __ptr u64, v113, v114, !325 + v116 = load v115, !326 + v117 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !328 v118 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg1 mem_copy_val v118, v117 v119 = get_local __ptr { { ptr, u64, u64 } }, __ret_val1 - v120 = const u64 1, !309 - v121 = call abi_encode_26(v120, v118, v119) - v122 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !311 + v120 = const u64 1, !329 + v121 = call abi_encode_31(v120, v118, v119) + v122 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !331 mem_copy_val v122, v119 - v123 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !313 + v123 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !333 v124 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg2 mem_copy_val v124, v123 v125 = get_local __ptr { { ptr, u64, u64 } }, __ret_val2 - v126 = call abi_encode_26(v116, v124, v125) - v127 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !315 + v126 = call abi_encode_31(v116, v124, v125) + v127 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !335 mem_copy_val v127, v125 - v128 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !317 + v128 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !337 v129 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg mem_copy_val v129, v128 - br encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block5(v129), !318 + br encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block5(v129), !338 - encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block3(): - v130 = const u64 14757395258967588866, !269 - revert v130, !319 + encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block3(): + v130 = const u64 14757395258967588866, !289 + revert v130, !339 - encode_20_abi_encode_21_abi_encode_22_abi_encode_25_block5(v131: __ptr { { ptr, u64, u64 } }): - v132 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !321 + encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block5(v131: __ptr { { ptr, u64, u64 } }): + v132 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !341 mem_copy_val v132, v131 - v133 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !323 - v134 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !325 + v133 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !343 + v134 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !345 mem_copy_val v134, v133 - v135 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !327 - v136 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !329 + v135 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !347 + v136 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !349 mem_copy_val v136, v135 - v137 = const u64 1, !330 - v138 = add v11, v137, !333 - br encode_20_abi_encode_21_while(v138), !334 + v137 = const u64 1, !350 + v138 = add v11, v137, !353 + br encode_23_abi_encode_26_while(v138), !354 - encode_20_abi_encode_21_end_while(): - v139 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !336 - v140 = get_local __ptr { { ptr, u64, u64 } }, buffer, !338 + encode_23_abi_encode_26_end_while(): + v139 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !356 + v140 = get_local __ptr { { ptr, u64, u64 } }, buffer, !358 mem_copy_val v140, v139 - v141 = get_local __ptr { { ptr, u64, u64 } }, buffer, !340 - v142 = get_local __ptr { { ptr, u64, u64 } }, self_3, !343 + v141 = get_local __ptr { { ptr, u64, u64 } }, buffer, !360 + v142 = get_local __ptr { { ptr, u64, u64 } }, self_3, !363 mem_copy_val v142, v141 - v143 = get_local __ptr { { ptr, u64, u64 } }, self_3, !345 + v143 = get_local __ptr { { ptr, u64, u64 } }, self_3, !365 v144 = const u64 0 - v145 = get_elem_ptr v143, __ptr { ptr, u64, u64 }, v144, !346 + v145 = get_elem_ptr v143, __ptr { ptr, u64, u64 }, v144, !366 v146 = asm(buffer: v145) -> __ptr { ptr, u64, u64 } buffer { } v147 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_01 mem_copy_val v147, v146 - v148 = get_local __ptr { ptr, u64, u64 }, __anon_01, !347 + v148 = get_local __ptr { ptr, u64, u64 }, __anon_01, !367 mem_copy_val v148, v147 v149 = const u64 0 - v150 = get_elem_ptr v148, __ptr ptr, v149, !348 + v150 = get_elem_ptr v148, __ptr ptr, v149, !368 v151 = const u64 2 - v152 = get_elem_ptr v148, __ptr u64, v151, !349 - v153 = get_local __ptr { ptr, u64 }, __anon_100, !350 + v152 = get_elem_ptr v148, __ptr u64, v151, !369 + v153 = get_local __ptr { ptr, u64 }, __anon_100, !370 v154 = const u64 0 - v155 = get_elem_ptr v153, __ptr ptr, v154, !351 + v155 = get_elem_ptr v153, __ptr ptr, v154, !371 mem_copy_val v155, v150 v156 = const u64 1 - v157 = get_elem_ptr v153, __ptr u64, v156, !352 + v157 = get_elem_ptr v153, __ptr u64, v156, !372 mem_copy_val v157, v152 v158 = asm(s: v153) -> __ptr slice s { } @@ -535,149 +556,149 @@ script { mem_copy_val v160, v159 v161 = const u64 3647243719605075626 log __ptr slice v160, v161 - v162 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !353 - v163 = const u64 0, !354 - v164 = get_elem_ptr v162, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v163, !355 + v162 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !373 + v163 = const u64 0, !374 + v164 = get_elem_ptr v162, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v163, !375 v165 = const u64 0 - v166 = get_elem_ptr v164, __ptr { string<3> }, v165, !356 + v166 = get_elem_ptr v164, __ptr { string<3> }, v165, !376 v167 = const u64 0 - v168 = get_elem_ptr v166, __ptr string<3>, v167, !213 + v168 = get_elem_ptr v166, __ptr string<3>, v167, !234 v169 = get_global __ptr string<3>, __const_global - v170 = cast_ptr v169 to ptr, !357 - v171 = get_local __ptr { ptr, u64 }, __anon_0, !357 + v170 = cast_ptr v169 to ptr, !377 + v171 = get_local __ptr { ptr, u64 }, __anon_0, !377 v172 = const u64 0 v173 = get_elem_ptr v171, __ptr ptr, v172 - store v170 to v173, !357 + store v170 to v173, !377 v174 = const u64 1 v175 = get_elem_ptr v171, __ptr u64, v174 v176 = const u64 3 - store v176 to v175, !357 - v177 = get_local __ptr slice, __anon_1, !357 + store v176 to v175, !377 + v177 = get_local __ptr slice, __anon_1, !377 mem_copy_bytes v177, v171, 16 v178 = get_local __ptr string<3>, __tmp_arg3 mem_copy_val v178, v168 v179 = get_local __ptr slice, __tmp_arg4 mem_copy_val v179, v177 - v180 = call eq_str_3_32(v178, v179) - v181 = const bool false, !359 - v182 = cmp eq v180 v181, !365 - cbr v182, assert_29_block0(), assert_29_block1(), !366 + v180 = call eq_str_3_37(v178, v179) + v181 = const bool false, !379 + v182 = cmp eq v180 v181, !385 + cbr v182, assert_34_block0(), assert_34_block1(), !386 - assert_29_block0(): + assert_34_block0(): v183 = const u64 18446744073709486084 - revert v183, !371 + revert v183, !391 - assert_29_block1(): - v184 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !372 - v185 = const u64 0, !373 - v186 = get_elem_ptr v184, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v185, !374 + assert_34_block1(): + v184 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !392 + v185 = const u64 0, !393 + v186 = get_elem_ptr v184, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v185, !394 v187 = const u64 1 - v188 = get_elem_ptr v186, __ptr { u64, ( u64 | u64 ) }, v187, !375 - v189 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_1, !376 + v188 = get_elem_ptr v186, __ptr { u64, ( u64 | u64 ) }, v187, !395 + v189 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_1, !396 mem_copy_val v189, v188 - v190 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_1, !377 + v190 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_1, !397 v191 = const u64 0 - v192 = get_elem_ptr v190, __ptr u64, v191, !377 + v192 = get_elem_ptr v190, __ptr u64, v191, !397 v193 = load v192 - v194 = const u64 0, !377 - v195 = cmp eq v193 v194, !380 - cbr v195, block0(), block1(), !378 + v194 = const u64 0, !397 + v195 = cmp eq v193 v194, !400 + cbr v195, block0(), block1(), !398 block0(): - v196 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_1, !377 + v196 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_1, !397 v197 = const u64 1 v198 = const u64 0 v199 = get_elem_ptr v196, __ptr u64, v197, v198 v200 = load v199 - v201 = const u64 1338, !381 - v202 = cmp eq v200 v201, !384 - v203 = cmp eq v202 v181, !387 - cbr v203, assert_29_block015(), assert_29_block116(), !388 + v201 = const u64 1338, !401 + v202 = cmp eq v200 v201, !404 + v203 = cmp eq v202 v181, !407 + cbr v203, assert_34_block015(), assert_34_block116(), !408 - assert_29_block015(): - revert v183, !389 + assert_34_block015(): + revert v183, !409 - assert_29_block116(): - v204 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !390 - v205 = const u64 1, !391 - v206 = get_elem_ptr v204, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v205, !392 + assert_34_block116(): + v204 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !410 + v205 = const u64 1, !411 + v206 = get_elem_ptr v204, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v205, !412 v207 = const u64 0 - v208 = get_elem_ptr v206, __ptr { string<3> }, v207, !393 + v208 = get_elem_ptr v206, __ptr { string<3> }, v207, !413 v209 = const u64 0 - v210 = get_elem_ptr v208, __ptr string<3>, v209, !213 + v210 = get_elem_ptr v208, __ptr string<3>, v209, !234 v211 = get_global __ptr string<3>, __const_global0 - v212 = cast_ptr v211 to ptr, !394 - v213 = get_local __ptr { ptr, u64 }, __anon_2, !394 + v212 = cast_ptr v211 to ptr, !414 + v213 = get_local __ptr { ptr, u64 }, __anon_2, !414 v214 = const u64 0 v215 = get_elem_ptr v213, __ptr ptr, v214 - store v212 to v215, !394 + store v212 to v215, !414 v216 = const u64 1 v217 = get_elem_ptr v213, __ptr u64, v216 v218 = const u64 3 - store v218 to v217, !394 - v219 = get_local __ptr slice, __anon_3, !394 + store v218 to v217, !414 + v219 = get_local __ptr slice, __anon_3, !414 mem_copy_bytes v219, v213, 16 v220 = get_local __ptr string<3>, __tmp_arg5 mem_copy_val v220, v210 v221 = get_local __ptr slice, __tmp_arg6 mem_copy_val v221, v219 - v222 = call eq_str_3_32(v220, v221) - v223 = cmp eq v222 v181, !397 - cbr v223, assert_29_block018(), assert_29_block119(), !398 + v222 = call eq_str_3_37(v220, v221) + v223 = cmp eq v222 v181, !417 + cbr v223, assert_34_block018(), assert_34_block119(), !418 - assert_29_block018(): - revert v183, !399 + assert_34_block018(): + revert v183, !419 - assert_29_block119(): - v224 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !400 - v225 = const u64 1, !401 - v226 = get_elem_ptr v224, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v225, !402 + assert_34_block119(): + v224 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !420 + v225 = const u64 1, !421 + v226 = get_elem_ptr v224, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v225, !422 v227 = const u64 1 - v228 = get_elem_ptr v226, __ptr { u64, ( u64 | u64 ) }, v227, !403 - v229 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_2, !404 + v228 = get_elem_ptr v226, __ptr { u64, ( u64 | u64 ) }, v227, !423 + v229 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_2, !424 mem_copy_val v229, v228 - v230 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_2, !405 + v230 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_2, !425 v231 = const u64 0 - v232 = get_elem_ptr v230, __ptr u64, v231, !405 + v232 = get_elem_ptr v230, __ptr u64, v231, !425 v233 = load v232 - v234 = const u64 1, !405 - v235 = cmp eq v233 v234, !408 - cbr v235, block3(), block4(), !406 + v234 = const u64 1, !425 + v235 = cmp eq v233 v234, !428 + cbr v235, block3(), block4(), !426 block1(): - v236 = const u64 1, !409 - revert v236, !412 + v236 = const u64 1, !429 + revert v236, !432 block3(): - v237 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_2, !405 + v237 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_2, !425 v238 = const u64 1 v239 = const u64 1 v240 = get_elem_ptr v237, __ptr u64, v238, v239 v241 = load v240 - v242 = const u64 1, !413 - v243 = cmp eq v241 v242, !416 - v244 = cmp eq v243 v181, !419 - cbr v244, assert_29_block021(), assert_29_block122(), !420 + v242 = const u64 1, !433 + v243 = cmp eq v241 v242, !436 + v244 = cmp eq v243 v181, !439 + cbr v244, assert_34_block021(), assert_34_block122(), !440 - assert_29_block021(): - revert v183, !421 + assert_34_block021(): + revert v183, !441 - assert_29_block122(): - v245 = get_local __ptr { u64 }, __anon_4, !422 + assert_34_block122(): + v245 = get_local __ptr { u64 }, __anon_4, !442 v246 = const u64 0 v247 = get_elem_ptr v245, __ptr u64, v246 - v248 = const u64 1, !423 - store v248 to v247, !422 + v248 = const u64 1, !443 + store v248 to v247, !442 mem_copy_val __ret_value, v245 v249 = const unit () ret () v249 block4(): - v250 = const u64 2, !424 - revert v250, !427 + v250 = const u64 2, !444 + revert v250, !447 } - pub fn abi_encode_26(self !428: u64, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }) -> (), !431 { + pub fn abi_encode_31(self !448: u64, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }) -> (), !451 { local mut { ptr, u64, u64 } __aggr_memcpy_0 local mut { ptr, u64, u64 } __aggr_memcpy_00 local { ptr, u64, u64 } __anon_0 @@ -688,9 +709,9 @@ script { entry(self: u64, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }): v0 = get_local __ptr { { ptr, u64, u64 } }, buffer_ mem_copy_val v0, buffer - v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !432 + v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !452 v2 = const u64 0 - v3 = get_elem_ptr v1, __ptr { ptr, u64, u64 }, v2, !223 + v3 = get_elem_ptr v1, __ptr { ptr, u64, u64 }, v2, !66 v4 = asm(buffer: v3) -> __ptr { ptr, u64, u64 } buffer { } v5 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 @@ -729,7 +750,7 @@ script { } v31 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_00 mem_copy_val v31, v30 - v32 = get_local __ptr { { ptr, u64, u64 } }, __anon_2, !433 + v32 = get_local __ptr { { ptr, u64, u64 } }, __anon_2, !453 v33 = const u64 0 v34 = get_elem_ptr v32, __ptr { ptr, u64, u64 }, v33 mem_copy_val v34, v31 @@ -748,7 +769,7 @@ script { br block0(v39, v38) } - pub fn new_27(__ret_value: __ptr { { ptr, u64, u64 } }) -> (), !436 { + pub fn new_32(__ret_value: __ptr { { ptr, u64, u64 } }) -> (), !456 { local mut { ptr, u64, u64 } __aggr_memcpy_0 local { ptr, u64, u64 } __anon_0 local { { ptr, u64, u64 } } __anon_1 @@ -773,7 +794,7 @@ script { } v11 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 mem_copy_val v11, v10 - v12 = get_local __ptr { { ptr, u64, u64 } }, __anon_1, !437 + v12 = get_local __ptr { { ptr, u64, u64 } }, __anon_1, !457 v13 = const u64 0 v14 = get_elem_ptr v12, __ptr { ptr, u64, u64 }, v13 mem_copy_val v14, v11 @@ -782,7 +803,7 @@ script { ret () v15 } - fn eq_str_3_32(a: __ptr string<3>, b: __ptr slice) -> bool, !440 { + fn eq_str_3_37(a: __ptr string<3>, b: __ptr slice) -> bool, !460 { local { ptr, u64 } __tuple_1_ local string<3> a_ local slice self_ @@ -790,9 +811,9 @@ script { entry(a: __ptr string<3>, b: __ptr slice): v0 = get_local __ptr string<3>, a_ mem_copy_val v0, a - v1 = get_local __ptr slice, self_, !443 + v1 = get_local __ptr slice, self_, !463 mem_copy_val v1, b - v2 = get_local __ptr slice, self_, !446 + v2 = get_local __ptr slice, self_, !466 v3 = asm(s: v2) -> __ptr { ptr, u64 } s { } v4 = const u64 0 @@ -801,481 +822,501 @@ script { v7 = const u64 1 v8 = get_elem_ptr v3, __ptr u64, v7 v9 = load v8 - v10 = get_local __ptr { ptr, u64 }, __tuple_1_, !448 + v10 = get_local __ptr { ptr, u64 }, __tuple_1_, !468 v11 = const u64 0 v12 = get_elem_ptr v10, __ptr ptr, v11 store v6 to v12 v13 = const u64 1 v14 = get_elem_ptr v10, __ptr u64, v13 store v9 to v14 - v15 = get_local __ptr { ptr, u64 }, __tuple_1_, !449 + v15 = get_local __ptr { ptr, u64 }, __tuple_1_, !469 v16 = const u64 0 - v17 = get_elem_ptr v15, __ptr ptr, v16, !450 - v18 = load v17, !443 - v19 = get_local __ptr string<3>, a_, !451 - v20 = const u64 3, !452 - v21 = asm(a: v19, b: v18, len: v20, r) -> bool r, !453 { - meq r a b len, !454 + v17 = get_elem_ptr v15, __ptr ptr, v16, !470 + v18 = load v17, !463 + v19 = get_local __ptr string<3>, a_, !471 + v20 = const u64 3, !472 + v21 = asm(a: v19, b: v18, len: v20, r) -> bool r, !473 { + meq r a b len, !474 } ret bool v21 } } !0 = "test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/src/main..sw" -!1 = span !0 0 255 +!1 = span !0 0 256 !2 = fn_name_span !0 7 14 !3 = (!1 !2) !4 = "sway-lib-std/src/codec.sw" -!5 = span !4 1599 1600 +!5 = span !4 1699 1700 !6 = span !0 80 131 !7 = fn_call_path_span !0 80 98 -!8 = span !4 159807 159839 -!9 = fn_call_path_span !4 159807 159837 -!10 = span !4 1582 1606 +!8 = span !4 160666 160698 +!9 = fn_call_path_span !4 160666 160696 +!10 = span !4 1682 1706 !11 = (!6 !7 !8 !9 !10) !12 = (!6 !7 !8 !9 !10) -!13 = span !4 1691 1711 -!14 = (!6 !7 !8 !9 !13) -!15 = (!6 !7 !8 !9) -!16 = (!6 !7 !8 !9 !13) -!17 = span !4 159859 159865 -!18 = (!6 !7 !17) -!19 = span !4 159845 159866 -!20 = fn_call_path_span !4 159845 159858 -!21 = span !4 134145 134166 -!22 = fn_call_path_span !4 134145 134158 -!23 = span !4 106110 106120 -!24 = (!6 !7 !19 !20 !21 !22 !23) -!25 = span !4 106111 106116 -!26 = (!6 !7 !19 !20 !21 !22 !25) -!27 = (!6 !7 !19 !20 !21 !22) -!28 = (!6 !7 !19 !20 !21 !22) -!29 = span !4 106142 106143 -!30 = (!6 !7 !19 !20 !21 !22) -!31 = span !4 106163 106164 -!32 = span !4 106159 106164 -!33 = fn_call_path_span !4 106161 106162 -!34 = (!6 !7 !19 !20 !21 !22 !32 !33) -!35 = (!6 !7 !19 !20 !21 !22) -!36 = span !4 106179 106210 -!37 = (!6 !7 !19 !20 !21 !22 !36) -!38 = (!6 !7 !19 !20 !21 !22 !36) -!39 = span !4 106229 106230 -!40 = span !4 106224 106230 -!41 = fn_call_path_span !4 106226 106228 -!42 = (!6 !7 !19 !20 !21 !22 !40 !41) -!43 = (!6 !7 !19 !20 !21 !22) -!44 = span !4 106251 106256 -!45 = (!6 !7 !19 !20 !21 !22 !44) -!46 = span !4 134144 134169 -!47 = (!6 !7 !19 !20 !46) -!48 = (!6 !7 !19 !20 !46) -!49 = span !0 178 182 -!50 = span !0 183 184 -!51 = span !0 203 241 -!52 = fn_call_path_span !0 203 220 -!53 = span !4 81400 81404 -!54 = (!51 !52 !53) -!55 = span !4 81384 81411 -!56 = (!51 !52 !55) -!57 = span !4 3902 3906 -!58 = span !4 3877 3984 -!59 = fn_name_span !4 3884 3890 -!60 = (!58 !59) -!61 = span !4 3959 3978 -!62 = fn_call_path_span !4 3959 3972 -!63 = span !4 134378 134399 -!64 = fn_call_path_span !4 134378 134391 -!65 = span !0 319 344 -!66 = fn_call_path_span !0 326 332 -!67 = span !4 85946 85966 -!68 = fn_call_path_span !4 85953 85963 -!69 = span !4 625 637 -!70 = (!61 !62 !63 !64 !65 !66 !61 !62 !67 !68 !69) -!71 = span !4 3190 3207 -!72 = (!61 !62 !63 !64 !65 !66 !61 !62 !67 !68 !71) -!73 = (!61 !62 !63 !64 !65 !66 !61 !62 !67 !68 !71) -!74 = (!61 !62 !63 !64 !65 !66 !61 !62 !67 !68 !71) -!75 = span !4 85964 85965 -!76 = (!61 !62 !63 !64 !65 !66 !61 !62 !67 !68 !71) -!77 = span !4 3169 3248 -!78 = (!61 !62 !63 !64 !65 !66 !61 !62 !67 !68 !77) -!79 = (!61 !62 !63 !64 !65 !66 !61 !62 !67 !68) -!80 = (!61 !62 !63 !64 !65 !66 !61 !62 !67 !68) -!81 = (!61 !62 !63 !64 !65 !66 !61 !62 !67 !68) -!82 = span !4 3257 3300 -!83 = (!61 !62 !63 !64 !65 !66 !61 !62 !67 !68 !82) -!84 = span !4 3310 3315 -!85 = (!61 !62 !63 !64 !65 !66 !61 !62 !67 !68 !84) -!86 = span !4 85935 85967 -!87 = (!61 !62 !63 !64 !65 !66 !61 !62 !86) -!88 = span !4 85983 85987 -!89 = (!61 !62 !63 !64 !65 !66 !61 !62 !88) -!90 = span !4 85983 85993 -!91 = fn_call_path_span !4 85988 85991 -!92 = (!61 !62 !63 !64 !65 !66 !61 !62 !90 !91) -!93 = "sway-lib-std/src/raw_slice.sw" -!94 = span !93 2922 2926 -!95 = (!61 !62 !63 !64 !65 !66 !61 !62 !90 !91 !94) -!96 = span !93 2911 2927 -!97 = fn_call_path_span !93 2911 2921 -!98 = (!61 !62 !63 !64 !65 !66 !61 !62 !90 !91 !96 !97) -!99 = span !93 1633 1638 -!100 = (!61 !62 !63 !64 !65 !66 !61 !62 !90 !91 !96 !97 !99) -!101 = (!61 !62 !63 !64 !65 !66 !61 !62 !90 !91) -!102 = span !93 2928 2929 -!103 = (!61 !62 !63 !64 !65 !66 !61 !62 !90 !91 !102) -!104 = (!61 !62 !63 !64 !65 !66 !61 !62 !90 !91) -!105 = span !0 307 347 -!106 = (!61 !62 !63 !64 !105) -!107 = (!61 !62 !63 !64) -!108 = span !4 134401 134422 -!109 = fn_call_path_span !4 134401 134414 -!110 = span !0 329 351 -!111 = fn_call_path_span !0 336 342 -!112 = span !4 82744 82772 -!113 = fn_call_path_span !4 82751 82763 -!114 = (!61 !62 !108 !109 !110 !111 !61 !62 !112 !113) -!115 = span !4 2766 2847 -!116 = (!61 !62 !108 !109 !110 !111 !61 !62 !112 !113 !115) -!117 = span !4 2804 2817 -!118 = (!61 !62 !108 !109 !110 !111 !61 !62 !112 !113) -!119 = (!61 !62 !108 !109 !110 !111 !61 !62 !112 !113) -!120 = (!61 !62 !108 !109 !110 !111 !61 !62 !112 !113) -!121 = span !4 2857 2896 -!122 = (!61 !62 !108 !109 !110 !111 !61 !62 !112 !113 !121) -!123 = span !0 369 370 -!124 = span !0 369 418 -!125 = fn_call_path_span !0 369 418 -!126 = (!61 !62 !108 !109 !124 !125) -!127 = (!61 !62 !108 !109 !124) -!128 = "test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/src/main.sw" -!129 = span !128 204 260 -!130 = (!61 !62 !108 !109 !129) -!131 = (!61 !62 !108 !109 !129) -!132 = (!61 !62 !108 !109 !129) -!133 = span !0 394 416 -!134 = fn_call_path_span !0 401 407 -!135 = (!61 !62 !108 !109 !133 !134 !61 !62 !112 !113) -!136 = (!61 !62 !108 !109 !133 !134 !61 !62 !112 !113 !115) -!137 = (!61 !62 !108 !109 !133 !134 !61 !62 !112 !113) -!138 = (!61 !62 !108 !109 !133 !134 !61 !62 !112 !113) -!139 = (!61 !62 !108 !109 !133 !134 !61 !62 !112 !113) -!140 = (!61 !62 !108 !109 !133 !134 !61 !62 !112 !113 !121) -!141 = (!61 !62 !108 !109 !129) -!142 = (!61 !62 !108 !109 !129) -!143 = (!61 !62 !108 !109) -!144 = span !0 420 421 -!145 = span !0 420 469 -!146 = fn_call_path_span !0 420 469 -!147 = (!61 !62 !108 !109 !145 !146) -!148 = (!61 !62 !108 !109 !145) -!149 = (!61 !62 !108 !109 !129) -!150 = (!61 !62 !108 !109 !129) -!151 = (!61 !62 !108 !109 !129) -!152 = span !0 445 467 -!153 = fn_call_path_span !0 452 458 -!154 = (!61 !62 !108 !109 !152 !153 !61 !62 !112 !113) -!155 = (!61 !62 !108 !109 !152 !153 !61 !62 !112 !113 !115) -!156 = (!61 !62 !108 !109 !152 !153 !61 !62 !112 !113) -!157 = (!61 !62 !108 !109 !152 !153 !61 !62 !112 !113) -!158 = (!61 !62 !108 !109 !152 !153 !61 !62 !112 !113) -!159 = (!61 !62 !108 !109 !152 !153 !61 !62 !112 !113 !121) -!160 = (!61 !62 !108 !109 !129) -!161 = (!61 !62 !108 !109 !129) -!162 = (!61 !62 !108 !109) -!163 = span !0 486 487 -!164 = span !0 477 488 -!165 = (!61 !62 !108 !109 !164) -!166 = span !4 134377 134423 -!167 = (!61 !62 !166) -!168 = (!61 !62 !166) -!169 = (!61 !62 !166) -!170 = span !128 297 695 -!171 = fn_name_span !128 300 304 -!172 = (!170 !171) -!173 = span !128 360 363 -!174 = span !4 81090 81094 -!175 = (!173 !174) -!176 = span !4 81090 81120 -!177 = fn_call_path_span !4 81095 81105 -!178 = (!173 !176 !177) -!179 = (!173 !176 !177) -!180 = span !4 26449 26455 -!181 = (!173 !176 !177 !180) -!182 = span !4 26432 26456 -!183 = (!173 !176 !177 !182) -!184 = span !4 26477 26478 -!185 = (!173 !176 !177) -!186 = span !4 26498 26499 -!187 = span !4 26494 26499 -!188 = fn_call_path_span !4 26496 26497 -!189 = (!173 !176 !177 !187 !188) -!190 = (!173 !176 !177) -!191 = span !4 26523 26527 -!192 = (!173 !176 !177 !191) -!193 = span !4 26523 26530 -!194 = (!173 !176 !177 !193) -!195 = span !4 26542 26548 -!196 = (!173 !176 !177 !195) -!197 = span !4 26523 26549 -!198 = fn_call_path_span !4 26531 26541 -!199 = (!173 !176 !177 !197 !198) -!200 = (!173 !176 !177 !197 !198) -!201 = span !4 51492 51496 -!202 = (!173 !176 !177 !197 !198 !201) -!203 = span !4 51497 51498 -!204 = (!173 !176 !177 !197 !198 !203) -!205 = span !4 51510 51516 -!206 = (!173 !176 !177 !197 !198 !205) -!207 = span !4 51492 51517 -!208 = fn_call_path_span !4 51499 51509 -!209 = (!173 !176 !177 !197 !198 !207 !208) -!210 = (!173 !176 !177 !197 !198 !207 !208) -!211 = span !0 314 318 -!212 = (!173 !176 !177 !197 !198 !207 !208 !211) -!213 = span !128 282 293 -!214 = (!173 !176 !177 !197 !198 !207 !208 !213) -!215 = span !0 334 340 -!216 = (!173 !176 !177 !197 !198 !207 !208 !215) -!217 = span !0 314 341 -!218 = fn_call_path_span !0 323 333 -!219 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!220 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!221 = span !4 7638 7644 -!222 = (!173 !176 !177 !197 !198 !207 !208 !217 !218 !221) -!223 = span !4 87 114 -!224 = (!173 !176 !177 !197 !198 !207 !208 !217 !218 !223) -!225 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!226 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!227 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!228 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!229 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!230 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!231 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!232 = span !4 7653 7657 -!233 = (!173 !176 !177 !197 !198 !207 !208 !217 !218 !232) -!234 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!235 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!236 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!237 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!238 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!239 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!240 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!241 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!242 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!243 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!244 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!245 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!246 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!247 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!248 = span !4 7586 7669 -!249 = (!173 !176 !177 !197 !198 !207 !208 !217 !218 !248) -!250 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!251 = span !0 301 342 -!252 = (!173 !176 !177 !197 !198 !207 !208 !251) -!253 = span !0 364 370 -!254 = (!173 !176 !177 !197 !198 !207 !208 !253) -!255 = span !4 51479 51518 -!256 = (!173 !176 !177 !197 !198 !255) -!257 = span !4 51540 51544 -!258 = (!173 !176 !177 !197 !198 !257) -!259 = span !4 51545 51546 -!260 = (!173 !176 !177 !197 !198 !259) -!261 = span !4 51558 51564 -!262 = (!173 !176 !177 !197 !198 !261) -!263 = span !4 51540 51565 -!264 = fn_call_path_span !4 51547 51557 -!265 = (!173 !176 !177 !197 !198 !263 !264) -!266 = (!173 !176 !177 !197 !198 !263 !264) -!267 = span !0 323 327 -!268 = (!173 !176 !177 !197 !198 !263 !264 !267) -!269 = span !0 317 756 -!270 = (!173 !176 !177 !197 !198 !263 !264 !269) -!271 = (!173 !176 !177 !197 !198 !263 !264 !267) -!272 = (!173 !176 !177 !197 !198 !263 !264 !267) -!273 = (!173 !176 !177 !197 !198 !263 !264) -!274 = span !0 330 540 -!275 = fn_call_path_span !0 330 540 -!276 = (!173 !176 !177 !197 !198 !263 !264 !274 !275) -!277 = (!173 !176 !177 !197 !198 !263 !264 !274) -!278 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!279 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!280 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!281 = (!173 !176 !177 !197 !198 !207 !208 !217 !218) -!282 = (!173 !176 !177 !197 !198 !263 !264 !267) -!283 = (!173 !176 !177 !197 !198 !263 !264) -!284 = (!173 !176 !177 !197 !198 !263 !264) -!285 = span !0 415 421 -!286 = (!173 !176 !177 !197 !198 !263 !264 !285) -!287 = span !0 399 403 -!288 = span !0 386 423 -!289 = (!173 !176 !177 !197 !198 !263 !264 !288) -!290 = span !0 478 484 -!291 = (!173 !176 !177 !197 !198 !263 !264 !290) -!292 = span !0 448 486 -!293 = (!173 !176 !177 !197 !198 !263 !264 !292) -!294 = span !0 511 517 -!295 = (!173 !176 !177 !197 !198 !263 !264 !294) -!296 = (!173 !176 !177 !197 !198 !263 !264) -!297 = (!173 !176 !177 !197 !198 !263 !264 !267) -!298 = (!173 !176 !177 !197 !198 !263 !264 !267) -!299 = (!173 !176 !177 !197 !198 !263 !264) -!300 = span !0 542 752 -!301 = fn_call_path_span !0 542 752 -!302 = (!173 !176 !177 !197 !198 !263 !264 !300 !301) -!303 = (!173 !176 !177 !197 !198 !263 !264 !300) -!304 = (!173 !176 !177 !197 !198 !263 !264 !267) -!305 = (!173 !176 !177 !197 !198 !263 !264) -!306 = (!173 !176 !177 !197 !198 !263 !264) -!307 = span !0 627 633 -!308 = (!173 !176 !177 !197 !198 !263 !264 !307) -!309 = span !0 611 615 -!310 = span !0 598 635 -!311 = (!173 !176 !177 !197 !198 !263 !264 !310) -!312 = span !0 690 696 -!313 = (!173 !176 !177 !197 !198 !263 !264 !312) -!314 = span !0 660 698 -!315 = (!173 !176 !177 !197 !198 !263 !264 !314) -!316 = span !0 723 729 -!317 = (!173 !176 !177 !197 !198 !263 !264 !316) -!318 = (!173 !176 !177 !197 !198 !263 !264) -!319 = (!173 !176 !177 !197 !198 !263 !264 !269) -!320 = span !0 304 757 -!321 = (!173 !176 !177 !197 !198 !263 !264 !320) -!322 = span !0 778 784 -!323 = (!173 !176 !177 !197 !198 !263 !264 !322) -!324 = span !4 51527 51566 -!325 = (!173 !176 !177 !197 !198 !324) -!326 = span !4 51575 51581 -!327 = (!173 !176 !177 !197 !198 !326) -!328 = span !4 26514 26549 -!329 = (!173 !176 !177 !328) -!330 = span !4 26568 26569 -!331 = span !4 26563 26569 -!332 = fn_call_path_span !4 26565 26567 -!333 = (!173 !176 !177 !331 !332) -!334 = (!173 !176 !177) -!335 = span !4 26590 26596 -!336 = (!173 !176 !177 !335) -!337 = span !4 81077 81121 -!338 = (!173 !337) -!339 = span !4 81130 81136 -!340 = (!173 !339) -!341 = span !4 81130 81151 -!342 = fn_call_path_span !4 81137 81149 -!343 = (!173 !341 !342) -!344 = span !4 573 577 -!345 = (!173 !341 !342 !344) -!346 = (!173 !341 !342 !223) -!347 = (!173 !341 !342) -!348 = (!173 !341 !342) -!349 = (!173 !341 !342) -!350 = (!173 !341 !342) -!351 = (!173 !341 !342) -!352 = (!173 !341 !342) -!353 = span !128 386 389 -!354 = span !128 390 391 -!355 = span !128 386 392 -!356 = span !128 393 394 -!357 = span !128 400 405 -!358 = "sway-lib-std/src/ops.sw" -!359 = span !358 12573 12578 -!360 = span !128 370 407 -!361 = fn_call_path_span !128 370 376 -!362 = "sway-lib-std/src/assert.sw" -!363 = span !362 1015 1025 -!364 = fn_call_path_span !362 1015 1016 -!365 = (!360 !361 !363 !364) -!366 = (!360 !361 !363) -!367 = span !362 1036 1064 -!368 = fn_call_path_span !362 1036 1042 -!369 = "sway-lib-std/src/revert.sw" -!370 = span !369 757 771 -!371 = (!360 !361 !367 !368 !370) -!372 = span !128 426 429 -!373 = span !128 430 431 -!374 = span !128 426 432 -!375 = span !128 433 434 -!376 = span !128 420 503 -!377 = span !128 426 434 -!378 = span !128 445 473 -!379 = fn_call_path_span !128 445 473 -!380 = (!378 !379) -!381 = span !128 507 511 -!382 = span !128 420 511 -!383 = fn_call_path_span !128 504 506 -!384 = (!382 !383) -!385 = span !128 413 512 -!386 = fn_call_path_span !128 413 419 -!387 = (!385 !386 !363 !364) -!388 = (!385 !386 !363) -!389 = (!385 !386 !367 !368 !370) -!390 = span !128 535 538 -!391 = span !128 539 540 -!392 = span !128 535 541 -!393 = span !128 542 543 -!394 = span !128 549 554 -!395 = span !128 519 556 -!396 = fn_call_path_span !128 519 525 -!397 = (!395 !396 !363 !364) -!398 = (!395 !396 !363) -!399 = (!395 !396 !367 !368 !370) -!400 = span !128 575 578 -!401 = span !128 579 580 -!402 = span !128 575 581 -!403 = span !128 582 583 -!404 = span !128 569 652 -!405 = span !128 575 583 -!406 = span !128 594 622 -!407 = fn_call_path_span !128 594 622 -!408 = (!406 !407) -!409 = span !128 494 495 -!410 = span !128 487 496 -!411 = fn_call_path_span !128 487 493 -!412 = (!410 !411 !370) -!413 = span !128 656 657 -!414 = span !128 569 657 -!415 = fn_call_path_span !128 653 655 -!416 = (!414 !415) -!417 = span !128 562 658 -!418 = fn_call_path_span !128 562 568 -!419 = (!417 !418 !363 !364) -!420 = (!417 !418 !363) -!421 = (!417 !418 !367 !368 !370) -!422 = span !128 665 693 -!423 = span !128 686 687 -!424 = span !128 643 644 -!425 = span !128 636 645 -!426 = fn_call_path_span !128 636 642 -!427 = (!425 !426 !370) -!428 = span !4 5200 5204 -!429 = span !4 5186 5331 -!430 = fn_name_span !4 5189 5199 -!431 = (!429 !430) -!432 = span !4 5294 5300 -!433 = span !4 5242 5325 -!434 = span !4 160 260 -!435 = fn_name_span !4 167 170 +!13 = span !4 160641 160699 +!14 = fn_call_path_span !4 160641 160660 +!15 = span !4 160514 160534 +!16 = (!6 !7 !13 !14 !15) +!17 = (!6 !7 !13 !14) +!18 = (!6 !7 !13 !14 !15) +!19 = span !4 160558 160564 +!20 = (!6 !7 !13 !14 !19) +!21 = span !4 160544 160565 +!22 = fn_call_path_span !4 160544 160557 +!23 = span !4 134798 134819 +!24 = fn_call_path_span !4 134798 134811 +!25 = span !4 106763 106773 +!26 = (!6 !7 !13 !14 !21 !22 !23 !24 !25) +!27 = span !4 106764 106769 +!28 = (!6 !7 !13 !14 !21 !22 !23 !24 !27) +!29 = (!6 !7 !13 !14 !21 !22 !23 !24) +!30 = (!6 !7 !13 !14 !21 !22 !23 !24) +!31 = span !4 106795 106796 +!32 = (!6 !7 !13 !14 !21 !22 !23 !24) +!33 = span !4 106816 106817 +!34 = span !4 106812 106817 +!35 = fn_call_path_span !4 106814 106815 +!36 = (!6 !7 !13 !14 !21 !22 !23 !24 !34 !35) +!37 = (!6 !7 !13 !14 !21 !22 !23 !24) +!38 = span !4 106832 106863 +!39 = (!6 !7 !13 !14 !21 !22 !23 !24 !38) +!40 = (!6 !7 !13 !14 !21 !22 !23 !24 !38) +!41 = span !4 106882 106883 +!42 = span !4 106877 106883 +!43 = fn_call_path_span !4 106879 106881 +!44 = (!6 !7 !13 !14 !21 !22 !23 !24 !42 !43) +!45 = (!6 !7 !13 !14 !21 !22 !23 !24) +!46 = span !4 106904 106909 +!47 = (!6 !7 !13 !14 !21 !22 !23 !24 !46) +!48 = span !4 134797 134822 +!49 = (!6 !7 !13 !14 !21 !22 !48) +!50 = (!6 !7 !13 !14 !21 !22 !48) +!51 = span !0 178 182 +!52 = span !0 183 184 +!53 = span !0 203 242 +!54 = fn_call_path_span !0 203 220 +!55 = span !4 81496 81526 +!56 = fn_call_path_span !4 81501 81511 +!57 = "test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/src/types..sw" +!58 = span !57 309 313 +!59 = (!53 !54 !55 !56 !58) +!60 = "test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/src/types.sw" +!61 = span !60 29 39 +!62 = (!53 !54 !55 !56 !61) +!63 = (!53 !54 !55 !56) +!64 = span !4 81551 81557 +!65 = (!53 !54 !64) +!66 = span !4 87 114 +!67 = (!53 !54 !66) +!68 = span !4 81565 81566 +!69 = (!53 !54 !68) +!70 = (!53 !54) +!71 = span !4 81568 81574 +!72 = (!53 !54 !71) +!73 = (!53 !54 !66) +!74 = span !4 81582 81583 +!75 = (!53 !54 !74) +!76 = span !4 81536 81584 +!77 = (!53 !54 !76) +!78 = span !4 4063 4067 +!79 = span !4 4038 4145 +!80 = fn_name_span !4 4045 4051 +!81 = (!79 !80) +!82 = span !4 4120 4139 +!83 = fn_call_path_span !4 4120 4133 +!84 = span !4 135031 135052 +!85 = fn_call_path_span !4 135031 135044 +!86 = span !0 319 344 +!87 = fn_call_path_span !0 326 332 +!88 = span !4 86580 86600 +!89 = fn_call_path_span !4 86587 86597 +!90 = span !4 625 641 +!91 = (!82 !83 !84 !85 !86 !87 !82 !83 !88 !89 !90) +!92 = span !4 3351 3368 +!93 = (!82 !83 !84 !85 !86 !87 !82 !83 !88 !89 !92) +!94 = (!82 !83 !84 !85 !86 !87 !82 !83 !88 !89 !92) +!95 = (!82 !83 !84 !85 !86 !87 !82 !83 !88 !89 !92) +!96 = span !4 86598 86599 +!97 = (!82 !83 !84 !85 !86 !87 !82 !83 !88 !89 !92) +!98 = span !4 3330 3409 +!99 = (!82 !83 !84 !85 !86 !87 !82 !83 !88 !89 !98) +!100 = (!82 !83 !84 !85 !86 !87 !82 !83 !88 !89) +!101 = (!82 !83 !84 !85 !86 !87 !82 !83 !88 !89) +!102 = (!82 !83 !84 !85 !86 !87 !82 !83 !88 !89) +!103 = span !4 3418 3461 +!104 = (!82 !83 !84 !85 !86 !87 !82 !83 !88 !89 !103) +!105 = span !4 3471 3476 +!106 = (!82 !83 !84 !85 !86 !87 !82 !83 !88 !89 !105) +!107 = span !4 86569 86601 +!108 = (!82 !83 !84 !85 !86 !87 !82 !83 !107) +!109 = span !4 86617 86621 +!110 = (!82 !83 !84 !85 !86 !87 !82 !83 !109) +!111 = span !4 86617 86627 +!112 = fn_call_path_span !4 86622 86625 +!113 = (!82 !83 !84 !85 !86 !87 !82 !83 !111 !112) +!114 = "sway-lib-std/src/raw_slice.sw" +!115 = span !114 2922 2926 +!116 = (!82 !83 !84 !85 !86 !87 !82 !83 !111 !112 !115) +!117 = span !114 2911 2927 +!118 = fn_call_path_span !114 2911 2921 +!119 = (!82 !83 !84 !85 !86 !87 !82 !83 !111 !112 !117 !118) +!120 = span !114 1633 1638 +!121 = (!82 !83 !84 !85 !86 !87 !82 !83 !111 !112 !117 !118 !120) +!122 = (!82 !83 !84 !85 !86 !87 !82 !83 !111 !112) +!123 = span !114 2928 2929 +!124 = (!82 !83 !84 !85 !86 !87 !82 !83 !111 !112 !123) +!125 = (!82 !83 !84 !85 !86 !87 !82 !83 !111 !112) +!126 = span !0 307 347 +!127 = (!82 !83 !84 !85 !126) +!128 = (!82 !83 !84 !85) +!129 = span !4 135054 135075 +!130 = fn_call_path_span !4 135054 135067 +!131 = span !0 329 351 +!132 = fn_call_path_span !0 336 342 +!133 = span !4 83379 83407 +!134 = fn_call_path_span !4 83386 83398 +!135 = (!82 !83 !129 !130 !131 !132 !82 !83 !133 !134) +!136 = span !4 2927 3008 +!137 = (!82 !83 !129 !130 !131 !132 !82 !83 !133 !134 !136) +!138 = span !4 2965 2978 +!139 = (!82 !83 !129 !130 !131 !132 !82 !83 !133 !134) +!140 = (!82 !83 !129 !130 !131 !132 !82 !83 !133 !134) +!141 = (!82 !83 !129 !130 !131 !132 !82 !83 !133 !134) +!142 = span !4 3018 3057 +!143 = (!82 !83 !129 !130 !131 !132 !82 !83 !133 !134 !142) +!144 = span !0 369 370 +!145 = span !0 369 418 +!146 = fn_call_path_span !0 369 418 +!147 = (!82 !83 !129 !130 !145 !146) +!148 = (!82 !83 !129 !130 !145) +!149 = "test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/src/main.sw" +!150 = span !149 204 260 +!151 = (!82 !83 !129 !130 !150) +!152 = (!82 !83 !129 !130 !150) +!153 = (!82 !83 !129 !130 !150) +!154 = span !0 394 416 +!155 = fn_call_path_span !0 401 407 +!156 = (!82 !83 !129 !130 !154 !155 !82 !83 !133 !134) +!157 = (!82 !83 !129 !130 !154 !155 !82 !83 !133 !134 !136) +!158 = (!82 !83 !129 !130 !154 !155 !82 !83 !133 !134) +!159 = (!82 !83 !129 !130 !154 !155 !82 !83 !133 !134) +!160 = (!82 !83 !129 !130 !154 !155 !82 !83 !133 !134) +!161 = (!82 !83 !129 !130 !154 !155 !82 !83 !133 !134 !142) +!162 = (!82 !83 !129 !130 !150) +!163 = (!82 !83 !129 !130 !150) +!164 = (!82 !83 !129 !130) +!165 = span !0 420 421 +!166 = span !0 420 469 +!167 = fn_call_path_span !0 420 469 +!168 = (!82 !83 !129 !130 !166 !167) +!169 = (!82 !83 !129 !130 !166) +!170 = (!82 !83 !129 !130 !150) +!171 = (!82 !83 !129 !130 !150) +!172 = (!82 !83 !129 !130 !150) +!173 = span !0 445 467 +!174 = fn_call_path_span !0 452 458 +!175 = (!82 !83 !129 !130 !173 !174 !82 !83 !133 !134) +!176 = (!82 !83 !129 !130 !173 !174 !82 !83 !133 !134 !136) +!177 = (!82 !83 !129 !130 !173 !174 !82 !83 !133 !134) +!178 = (!82 !83 !129 !130 !173 !174 !82 !83 !133 !134) +!179 = (!82 !83 !129 !130 !173 !174 !82 !83 !133 !134) +!180 = (!82 !83 !129 !130 !173 !174 !82 !83 !133 !134 !142) +!181 = (!82 !83 !129 !130 !150) +!182 = (!82 !83 !129 !130 !150) +!183 = (!82 !83 !129 !130) +!184 = span !0 486 487 +!185 = span !0 477 488 +!186 = (!82 !83 !129 !130 !185) +!187 = span !4 135030 135076 +!188 = (!82 !83 !187) +!189 = (!82 !83 !187) +!190 = (!82 !83 !187) +!191 = span !149 297 695 +!192 = fn_name_span !149 300 304 +!193 = (!191 !192) +!194 = span !149 360 363 +!195 = span !4 81189 81193 +!196 = (!194 !195) +!197 = span !4 81189 81219 +!198 = fn_call_path_span !4 81194 81204 +!199 = (!194 !197 !198) +!200 = (!194 !197 !198) +!201 = span !4 26624 26630 +!202 = (!194 !197 !198 !201) +!203 = span !4 26607 26631 +!204 = (!194 !197 !198 !203) +!205 = span !4 26652 26653 +!206 = (!194 !197 !198) +!207 = span !4 26673 26674 +!208 = span !4 26669 26674 +!209 = fn_call_path_span !4 26671 26672 +!210 = (!194 !197 !198 !208 !209) +!211 = (!194 !197 !198) +!212 = span !4 26698 26702 +!213 = (!194 !197 !198 !212) +!214 = span !4 26698 26705 +!215 = (!194 !197 !198 !214) +!216 = span !4 26717 26723 +!217 = (!194 !197 !198 !216) +!218 = span !4 26698 26724 +!219 = fn_call_path_span !4 26706 26716 +!220 = (!194 !197 !198 !218 !219) +!221 = (!194 !197 !198 !218 !219) +!222 = span !4 51667 51671 +!223 = (!194 !197 !198 !218 !219 !222) +!224 = span !4 51672 51673 +!225 = (!194 !197 !198 !218 !219 !224) +!226 = span !4 51685 51691 +!227 = (!194 !197 !198 !218 !219 !226) +!228 = span !4 51667 51692 +!229 = fn_call_path_span !4 51674 51684 +!230 = (!194 !197 !198 !218 !219 !228 !229) +!231 = (!194 !197 !198 !218 !219 !228 !229) +!232 = span !0 314 318 +!233 = (!194 !197 !198 !218 !219 !228 !229 !232) +!234 = span !149 282 293 +!235 = (!194 !197 !198 !218 !219 !228 !229 !234) +!236 = span !0 334 340 +!237 = (!194 !197 !198 !218 !219 !228 !229 !236) +!238 = span !0 314 341 +!239 = fn_call_path_span !0 323 333 +!240 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!241 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!242 = span !4 7794 7800 +!243 = (!194 !197 !198 !218 !219 !228 !229 !238 !239 !242) +!244 = (!194 !197 !198 !218 !219 !228 !229 !238 !239 !66) +!245 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!246 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!247 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!248 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!249 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!250 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!251 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!252 = span !4 7809 7813 +!253 = (!194 !197 !198 !218 !219 !228 !229 !238 !239 !252) +!254 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!255 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!256 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!257 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!258 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!259 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!260 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!261 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!262 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!263 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!264 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!265 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!266 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!267 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!268 = span !4 7742 7825 +!269 = (!194 !197 !198 !218 !219 !228 !229 !238 !239 !268) +!270 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!271 = span !0 301 342 +!272 = (!194 !197 !198 !218 !219 !228 !229 !271) +!273 = span !0 364 370 +!274 = (!194 !197 !198 !218 !219 !228 !229 !273) +!275 = span !4 51654 51693 +!276 = (!194 !197 !198 !218 !219 !275) +!277 = span !4 51715 51719 +!278 = (!194 !197 !198 !218 !219 !277) +!279 = span !4 51720 51721 +!280 = (!194 !197 !198 !218 !219 !279) +!281 = span !4 51733 51739 +!282 = (!194 !197 !198 !218 !219 !281) +!283 = span !4 51715 51740 +!284 = fn_call_path_span !4 51722 51732 +!285 = (!194 !197 !198 !218 !219 !283 !284) +!286 = (!194 !197 !198 !218 !219 !283 !284) +!287 = span !0 323 327 +!288 = (!194 !197 !198 !218 !219 !283 !284 !287) +!289 = span !0 317 756 +!290 = (!194 !197 !198 !218 !219 !283 !284 !289) +!291 = (!194 !197 !198 !218 !219 !283 !284 !287) +!292 = (!194 !197 !198 !218 !219 !283 !284 !287) +!293 = (!194 !197 !198 !218 !219 !283 !284) +!294 = span !0 330 540 +!295 = fn_call_path_span !0 330 540 +!296 = (!194 !197 !198 !218 !219 !283 !284 !294 !295) +!297 = (!194 !197 !198 !218 !219 !283 !284 !294) +!298 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!299 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!300 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!301 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) +!302 = (!194 !197 !198 !218 !219 !283 !284 !287) +!303 = (!194 !197 !198 !218 !219 !283 !284) +!304 = (!194 !197 !198 !218 !219 !283 !284) +!305 = span !0 415 421 +!306 = (!194 !197 !198 !218 !219 !283 !284 !305) +!307 = span !0 399 403 +!308 = span !0 386 423 +!309 = (!194 !197 !198 !218 !219 !283 !284 !308) +!310 = span !0 478 484 +!311 = (!194 !197 !198 !218 !219 !283 !284 !310) +!312 = span !0 448 486 +!313 = (!194 !197 !198 !218 !219 !283 !284 !312) +!314 = span !0 511 517 +!315 = (!194 !197 !198 !218 !219 !283 !284 !314) +!316 = (!194 !197 !198 !218 !219 !283 !284) +!317 = (!194 !197 !198 !218 !219 !283 !284 !287) +!318 = (!194 !197 !198 !218 !219 !283 !284 !287) +!319 = (!194 !197 !198 !218 !219 !283 !284) +!320 = span !0 542 752 +!321 = fn_call_path_span !0 542 752 +!322 = (!194 !197 !198 !218 !219 !283 !284 !320 !321) +!323 = (!194 !197 !198 !218 !219 !283 !284 !320) +!324 = (!194 !197 !198 !218 !219 !283 !284 !287) +!325 = (!194 !197 !198 !218 !219 !283 !284) +!326 = (!194 !197 !198 !218 !219 !283 !284) +!327 = span !0 627 633 +!328 = (!194 !197 !198 !218 !219 !283 !284 !327) +!329 = span !0 611 615 +!330 = span !0 598 635 +!331 = (!194 !197 !198 !218 !219 !283 !284 !330) +!332 = span !0 690 696 +!333 = (!194 !197 !198 !218 !219 !283 !284 !332) +!334 = span !0 660 698 +!335 = (!194 !197 !198 !218 !219 !283 !284 !334) +!336 = span !0 723 729 +!337 = (!194 !197 !198 !218 !219 !283 !284 !336) +!338 = (!194 !197 !198 !218 !219 !283 !284) +!339 = (!194 !197 !198 !218 !219 !283 !284 !289) +!340 = span !0 304 757 +!341 = (!194 !197 !198 !218 !219 !283 !284 !340) +!342 = span !0 778 784 +!343 = (!194 !197 !198 !218 !219 !283 !284 !342) +!344 = span !4 51702 51741 +!345 = (!194 !197 !198 !218 !219 !344) +!346 = span !4 51750 51756 +!347 = (!194 !197 !198 !218 !219 !346) +!348 = span !4 26689 26724 +!349 = (!194 !197 !198 !348) +!350 = span !4 26743 26744 +!351 = span !4 26738 26744 +!352 = fn_call_path_span !4 26740 26742 +!353 = (!194 !197 !198 !351 !352) +!354 = (!194 !197 !198) +!355 = span !4 26765 26771 +!356 = (!194 !197 !198 !355) +!357 = span !4 81176 81220 +!358 = (!194 !357) +!359 = span !4 81229 81235 +!360 = (!194 !359) +!361 = span !4 81229 81250 +!362 = fn_call_path_span !4 81236 81248 +!363 = (!194 !361 !362) +!364 = span !4 573 577 +!365 = (!194 !361 !362 !364) +!366 = (!194 !361 !362 !66) +!367 = (!194 !361 !362) +!368 = (!194 !361 !362) +!369 = (!194 !361 !362) +!370 = (!194 !361 !362) +!371 = (!194 !361 !362) +!372 = (!194 !361 !362) +!373 = span !149 386 389 +!374 = span !149 390 391 +!375 = span !149 386 392 +!376 = span !149 393 394 +!377 = span !149 400 405 +!378 = "sway-lib-std/src/ops.sw" +!379 = span !378 12573 12578 +!380 = span !149 370 407 +!381 = fn_call_path_span !149 370 376 +!382 = "sway-lib-std/src/assert.sw" +!383 = span !382 1015 1025 +!384 = fn_call_path_span !382 1015 1016 +!385 = (!380 !381 !383 !384) +!386 = (!380 !381 !383) +!387 = span !382 1036 1064 +!388 = fn_call_path_span !382 1036 1042 +!389 = "sway-lib-std/src/revert.sw" +!390 = span !389 757 771 +!391 = (!380 !381 !387 !388 !390) +!392 = span !149 426 429 +!393 = span !149 430 431 +!394 = span !149 426 432 +!395 = span !149 433 434 +!396 = span !149 420 503 +!397 = span !149 426 434 +!398 = span !149 445 473 +!399 = fn_call_path_span !149 445 473 +!400 = (!398 !399) +!401 = span !149 507 511 +!402 = span !149 420 511 +!403 = fn_call_path_span !149 504 506 +!404 = (!402 !403) +!405 = span !149 413 512 +!406 = fn_call_path_span !149 413 419 +!407 = (!405 !406 !383 !384) +!408 = (!405 !406 !383) +!409 = (!405 !406 !387 !388 !390) +!410 = span !149 535 538 +!411 = span !149 539 540 +!412 = span !149 535 541 +!413 = span !149 542 543 +!414 = span !149 549 554 +!415 = span !149 519 556 +!416 = fn_call_path_span !149 519 525 +!417 = (!415 !416 !383 !384) +!418 = (!415 !416 !383) +!419 = (!415 !416 !387 !388 !390) +!420 = span !149 575 578 +!421 = span !149 579 580 +!422 = span !149 575 581 +!423 = span !149 582 583 +!424 = span !149 569 652 +!425 = span !149 575 583 +!426 = span !149 594 622 +!427 = fn_call_path_span !149 594 622 +!428 = (!426 !427) +!429 = span !149 494 495 +!430 = span !149 487 496 +!431 = fn_call_path_span !149 487 493 +!432 = (!430 !431 !390) +!433 = span !149 656 657 +!434 = span !149 569 657 +!435 = fn_call_path_span !149 653 655 !436 = (!434 !435) -!437 = span !4 191 254 -!438 = span !128 50 202 -!439 = fn_name_span !128 53 61 -!440 = (!438 !439) -!441 = span !128 107 117 -!442 = fn_call_path_span !128 109 115 -!443 = (!441 !442) -!444 = "sway-lib-std/src/str.sw" -!445 = span !444 153 157 -!446 = (!441 !442 !445) -!447 = span !444 131 201 -!448 = (!441 !442 !447) -!449 = (!441 !442 !447) -!450 = (!441 !442 !447) -!451 = span !128 130 131 -!452 = span !128 148 149 -!453 = span !128 123 200 -!454 = span !128 164 177 +!437 = span !149 562 658 +!438 = fn_call_path_span !149 562 568 +!439 = (!437 !438 !383 !384) +!440 = (!437 !438 !383) +!441 = (!437 !438 !387 !388 !390) +!442 = span !149 665 693 +!443 = span !149 686 687 +!444 = span !149 643 644 +!445 = span !149 636 645 +!446 = fn_call_path_span !149 636 642 +!447 = (!445 !446 !390) +!448 = span !4 5357 5361 +!449 = span !4 5343 5488 +!450 = fn_name_span !4 5346 5356 +!451 = (!449 !450) +!452 = span !4 5451 5457 +!453 = span !4 5399 5482 +!454 = span !4 160 260 +!455 = fn_name_span !4 167 170 +!456 = (!454 !455) +!457 = span !4 191 254 +!458 = span !149 50 202 +!459 = fn_name_span !149 53 61 +!460 = (!458 !459) +!461 = span !149 107 117 +!462 = fn_call_path_span !149 109 115 +!463 = (!461 !462) +!464 = "sway-lib-std/src/str.sw" +!465 = span !464 153 157 +!466 = (!461 !462 !465) +!467 = span !464 131 201 +!468 = (!461 !462 !467) +!469 = (!461 !462 !467) +!470 = (!461 !462 !467) +!471 = span !149 130 131 +!472 = span !149 148 149 +!473 = span !149 123 200 +!474 = span !149 164 177 ;; ASM: Final program ;; Program kind: Script @@ -1290,16 +1331,16 @@ lw $$ds $$tmp i1 add $$ds $$ds $$tmp cfei i0 ; allocate stack space for globals move $$locbase $sp ; save locals base register for function __entry -cfei i208 ; allocate 208 bytes for locals and 0 slots for call arguments +cfei i256 ; allocate 256 bytes for locals and 0 slots for call arguments gtf $r0 $zero i10 ; get transaction field -sw $$locbase $r0 i21 ; store word -addi $r3 $$locbase i168 ; get offset to local __ptr { ptr } -addi $r0 $$locbase i176 ; get offset to local __ptr { { string<3> }, { u64, ( u64 | u64 ) } } +sw $$locbase $r0 i24 ; store word +addi $r3 $$locbase i192 ; get offset to local __ptr { ptr } +addi $r0 $$locbase i224 ; get offset to local __ptr { { string<3> }, { u64, ( u64 | u64 ) } } move $$arg0 $r3 ; [call]: pass argument 0 move $$arg1 $r0 ; [call]: pass argument 1 -jal $$reta $pc i38 ; [call]: call decode_4 -addi $r1 $$locbase i120 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] -addi $r2 $$locbase i176 ; get offset to local __ptr { { string<3> }, { u64, ( u64 | u64 ) } } +jal $$reta $pc i48 ; [call]: call decode_6 +addi $r1 $$locbase i144 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] +addi $r2 $$locbase i224 ; get offset to local __ptr { { string<3> }, { u64, ( u64 | u64 ) } } movi $r0 i24 ; get array element size mul $r0 $zero $r0 ; get offset to array element add $r0 $r1 $r0 ; add array element offset to array base @@ -1308,36 +1349,46 @@ movi $r0 i24 ; get array element size mul $r0 $one $r0 ; get offset to array element add $r0 $r1 $r0 ; add array element offset to array base mcpi $r0 $r2 i24 ; copy memory -move $r2 $one ; move parameter from branch to block argument +move $r4 $one ; move parameter from branch to block argument movi $r0 i2 ; initialize constant into register -lt $r0 $r2 $r0 -jnzf $r0 $zero i13 -addi $r0 $$locbase i120 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] -addi $r1 $$locbase i72 ; get offset to local __ptr { [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] } +lt $r0 $r4 $r0 +jnzf $r0 $zero i23 +addi $r0 $$locbase i144 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] +addi $r1 $$locbase i96 ; get offset to local __ptr { [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] } mcpi $r1 $r0 i48 ; copy memory -addi $r0 $$locbase i72 ; get offset to local __ptr { [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] } +addi $r0 $$locbase i96 ; get offset to local __ptr { [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] } addi $r1 $$locbase i24 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] mcpi $r1 $r0 i48 ; copy memory -addi $r0 $$locbase i200 ; get offset to local __ptr { u64 } +addi $r0 $$locbase i248 ; get offset to local __ptr { u64 } move $$arg0 $r1 ; [call]: pass argument 0 move $$arg1 $r0 ; [call]: pass argument 1 -jal $$reta $pc i95 ; [call]: call main_19 -addi $r0 $$locbase i200 ; get offset to local __ptr { u64 } -movi $r1 i8 ; initialize constant into register +jal $$reta $pc i105 ; [call]: call main_22 +addi $r0 $$locbase i72 ; get offset to local __ptr { { ptr, u64, u64 } } +move $$arg0 $r0 ; [call]: pass argument 0 +jal $$reta $pc i422 ; [call]: call new_32 +lw $r0 $$locbase i31 ; load word +addi $r1 $$locbase i72 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r2 $$locbase i200 ; get offset to local __ptr { { ptr, u64, u64 } } +move $$arg0 $r0 ; [call]: pass argument 0 +move $$arg1 $r1 ; [call]: pass argument 1 +move $$arg2 $r2 ; [call]: pass argument 2 +jal $$reta $pc i371 ; [call]: call abi_encode_31 +lw $r0 $$locbase i25 ; load word +lw $r1 $$locbase i27 ; load word retd $r0 $r1 move $$arg0 $r3 ; [call]: pass argument 0 move $$arg1 $$locbase ; [call]: pass argument 1 -jal $$reta $pc i8 ; [call]: call decode_4 -addi $r0 $$locbase i120 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] +jal $$reta $pc i8 ; [call]: call decode_6 +addi $r0 $$locbase i144 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] movi $r1 i24 ; get array element size -mul $r1 $r2 $r1 ; get offset to array element +mul $r1 $r4 $r1 ; get offset to array element add $r1 $r0 $r1 ; add array element offset to array base mcpi $r1 $$locbase i24 ; copy memory -add $r2 $r2 $one -jmpb $zero i24 +add $r4 $r4 $one +jmpb $zero i34 pshl i255 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function decode_4 +move $$locbase $sp ; save locals base register for function decode_6 cfei i216 ; allocate 216 bytes for locals and 0 slots for call arguments move $r7 $$arg0 ; save argument 0 (self) move $r6 $$arg1 ; save argument 1 (__ret_value) @@ -1418,7 +1469,7 @@ popl i255 ; restore registers 16..40 jal $zero $$reta i0 ; return from call pshl i511 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function main_19 +move $$locbase $sp ; save locals base register for function main_22 cfei i1216 ; allocate 1216 bytes for locals and 0 slots for call arguments move $r4 $$arg1 ; save argument 1 (__ret_value) move $r3 $$reta ; save return address @@ -1430,7 +1481,7 @@ mcpi $r1 $r0 i48 ; copy memory addi $r0 $$locbase i992 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] addi $r1 $$locbase i440 ; get offset to local __ptr { { ptr, u64, u64 } } move $$arg0 $r1 ; [call]: pass argument 0 -jal $$reta $pc i306 ; [call]: call new_27 +jal $$reta $pc i306 ; [call]: call new_32 addi $r2 $$locbase i1088 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] mcpi $r2 $r0 i48 ; copy memory addi $r0 $$locbase i656 ; get offset to local __ptr { { ptr, u64, u64 } } @@ -1483,7 +1534,7 @@ addi $r1 $$locbase i568 ; get offset to local __ptr slice mcpi $r1 $r0 i16 ; copy memory move $$arg0 $r2 ; [call]: pass argument 0 move $$arg1 $r1 ; [call]: pass argument 1 -jal $$reta $pc i274 ; [call]: call eq_str_3_32 +jal $$reta $pc i274 ; [call]: call eq_str_3_37 eq $r0 $$retv $zero jnzf $r0 $zero i63 addi $r0 $$locbase i1040 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] @@ -1519,7 +1570,7 @@ addi $r1 $$locbase i592 ; get offset to local __ptr slice mcpi $r1 $r0 i16 ; copy memory move $$arg0 $r2 ; [call]: pass argument 0 move $$arg1 $r1 ; [call]: pass argument 1 -jal $$reta $pc i237 ; [call]: call eq_str_3_32 +jal $$reta $pc i237 ; [call]: call eq_str_3_37 eq $r0 $$retv $zero jnzf $r0 $zero i22 addi $r0 $$locbase i1040 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] @@ -1634,7 +1685,7 @@ addi $r1 $$locbase i392 ; get offset to local __ptr { { ptr, u64, u64 } } move $$arg0 $one ; [call]: pass argument 0 move $$arg1 $r2 ; [call]: pass argument 1 move $$arg2 $r1 ; [call]: pass argument 2 -jal $$reta $pc i56 ; [call]: call abi_encode_26 +jal $$reta $pc i56 ; [call]: call abi_encode_31 addi $r2 $$locbase i920 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r2 $r1 i24 ; copy memory addi $r1 $$locbase i920 ; get offset to local __ptr { { ptr, u64, u64 } } @@ -1644,7 +1695,7 @@ addi $r1 $$locbase i416 ; get offset to local __ptr { { ptr, u64, u64 } } move $$arg0 $r0 ; [call]: pass argument 0 move $$arg1 $r2 ; [call]: pass argument 1 move $$arg2 $r1 ; [call]: pass argument 2 -jal $$reta $pc i46 ; [call]: call abi_encode_26 +jal $$reta $pc i46 ; [call]: call abi_encode_31 addi $r0 $$locbase i944 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r0 $r1 i24 ; copy memory addi $r0 $$locbase i944 ; get offset to local __ptr { { ptr, u64, u64 } } @@ -1659,7 +1710,7 @@ addi $r1 $$locbase i344 ; get offset to local __ptr { { ptr, u64, u64 } } move $$arg0 $zero ; [call]: pass argument 0 move $$arg1 $r2 ; [call]: pass argument 1 move $$arg2 $r1 ; [call]: pass argument 2 -jal $$reta $pc i31 ; [call]: call abi_encode_26 +jal $$reta $pc i31 ; [call]: call abi_encode_31 addi $r2 $$locbase i848 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r2 $r1 i24 ; copy memory addi $r1 $$locbase i848 ; get offset to local __ptr { { ptr, u64, u64 } } @@ -1669,7 +1720,7 @@ addi $r1 $$locbase i368 ; get offset to local __ptr { { ptr, u64, u64 } } move $$arg0 $r0 ; [call]: pass argument 0 move $$arg1 $r2 ; [call]: pass argument 1 move $$arg2 $r1 ; [call]: pass argument 2 -jal $$reta $pc i21 ; [call]: call abi_encode_26 +jal $$reta $pc i21 ; [call]: call abi_encode_31 addi $r0 $$locbase i896 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r0 $r1 i24 ; copy memory addi $r0 $$locbase i896 ; get offset to local __ptr { { ptr, u64, u64 } } @@ -1692,7 +1743,7 @@ popl i511 ; restore registers 16..40 jal $zero $$reta i0 ; return from call pshl i255 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function abi_encode_26 +move $$locbase $sp ; save locals base register for function abi_encode_31 cfei i144 ; allocate 144 bytes for locals and 0 slots for call arguments move $r0 $$arg0 ; save argument 0 (self) move $r1 $$arg2 ; save argument 2 (__ret_value) @@ -1736,7 +1787,7 @@ popl i255 ; restore registers 16..40 jal $zero $$reta i0 ; return from call pshl i15 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function new_27 +move $$locbase $sp ; save locals base register for function new_32 cfei i72 ; allocate 72 bytes for locals and 0 slots for call arguments move $r0 $$arg0 ; save argument 0 (__ret_value) move $r1 $$reta ; save return address @@ -1758,7 +1809,7 @@ popl i15 ; restore registers 16..40 jal $zero $$reta i0 ; return from call pshl i15 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function eq_str_3_32 +move $$locbase $sp ; save locals base register for function eq_str_3_37 cfei i40 ; allocate 40 bytes for locals and 0 slots for call arguments move $r0 $$arg1 ; save argument 1 (b) move $r1 $$reta ; save return address @@ -1792,21 +1843,21 @@ data_NonConfigurable_4 .word 14757395258967588866 0x00000000 MOVE R60 $pc ;; [26, 240, 48, 0] 0x00000004 JMPF $zero 0x4 ;; [116, 0, 0, 4] -0x00000008 ;; [0, 0, 0, 0, 0, 0, 7, 216] +0x00000008 ;; [0, 0, 0, 0, 0, 0, 8, 0] 0x00000010 ;; [0, 0, 0, 0, 0, 0, 0, 0] 0x00000018 LW R63 R60 0x1 ;; [93, 255, 192, 1] 0x0000001c ADD R63 R63 R60 ;; [16, 255, 255, 0] 0x00000020 MOVE R59 $sp ;; [26, 236, 80, 0] -0x00000024 CFEI 0xd0 ;; [145, 0, 0, 208] +0x00000024 CFEI 0x100 ;; [145, 0, 1, 0] 0x00000028 GTF $writable $zero 0xa ;; [97, 64, 0, 10] -0x0000002c SW R59 $writable 0x15 ;; [95, 237, 0, 21] -0x00000030 ADDI R19 R59 0xa8 ;; [80, 79, 176, 168] -0x00000034 ADDI $writable R59 0xb0 ;; [80, 67, 176, 176] +0x0000002c SW R59 $writable 0x18 ;; [95, 237, 0, 24] +0x00000030 ADDI R19 R59 0xc0 ;; [80, 79, 176, 192] +0x00000034 ADDI $writable R59 0xe0 ;; [80, 67, 176, 224] 0x00000038 MOVE R58 R19 ;; [26, 233, 48, 0] 0x0000003c MOVE R57 $writable ;; [26, 229, 0, 0] -0x00000040 JAL R62 $pc 0x26 ;; [153, 248, 48, 38] -0x00000044 ADDI R17 R59 0x78 ;; [80, 71, 176, 120] -0x00000048 ADDI R18 R59 0xb0 ;; [80, 75, 176, 176] +0x00000040 JAL R62 $pc 0x30 ;; [153, 248, 48, 48] +0x00000044 ADDI R17 R59 0x90 ;; [80, 71, 176, 144] +0x00000048 ADDI R18 R59 0xe0 ;; [80, 75, 176, 224] 0x0000004c MOVI $writable 0x18 ;; [114, 64, 0, 24] 0x00000050 MUL $writable $zero $writable ;; [27, 64, 4, 0] 0x00000054 ADD $writable R17 $writable ;; [16, 65, 20, 0] @@ -1815,487 +1866,497 @@ data_NonConfigurable_4 .word 14757395258967588866 0x00000060 MUL $writable $one $writable ;; [27, 64, 20, 0] 0x00000064 ADD $writable R17 $writable ;; [16, 65, 20, 0] 0x00000068 MCPI $writable R18 0x18 ;; [96, 65, 32, 24] -0x0000006c MOVE R18 $one ;; [26, 72, 16, 0] +0x0000006c MOVE R20 $one ;; [26, 80, 16, 0] 0x00000070 MOVI $writable 0x2 ;; [114, 64, 0, 2] -0x00000074 LT $writable R18 $writable ;; [22, 65, 36, 0] -0x00000078 JNZF $writable $zero 0xd ;; [118, 64, 0, 13] -0x0000007c ADDI $writable R59 0x78 ;; [80, 67, 176, 120] -0x00000080 ADDI R17 R59 0x48 ;; [80, 71, 176, 72] +0x00000074 LT $writable R20 $writable ;; [22, 65, 68, 0] +0x00000078 JNZF $writable $zero 0x17 ;; [118, 64, 0, 23] +0x0000007c ADDI $writable R59 0x90 ;; [80, 67, 176, 144] +0x00000080 ADDI R17 R59 0x60 ;; [80, 71, 176, 96] 0x00000084 MCPI R17 $writable 0x30 ;; [96, 69, 0, 48] -0x00000088 ADDI $writable R59 0x48 ;; [80, 67, 176, 72] +0x00000088 ADDI $writable R59 0x60 ;; [80, 67, 176, 96] 0x0000008c ADDI R17 R59 0x18 ;; [80, 71, 176, 24] 0x00000090 MCPI R17 $writable 0x30 ;; [96, 69, 0, 48] -0x00000094 ADDI $writable R59 0xc8 ;; [80, 67, 176, 200] +0x00000094 ADDI $writable R59 0xf8 ;; [80, 67, 176, 248] 0x00000098 MOVE R58 R17 ;; [26, 233, 16, 0] 0x0000009c MOVE R57 $writable ;; [26, 229, 0, 0] -0x000000a0 JAL R62 $pc 0x5f ;; [153, 248, 48, 95] -0x000000a4 ADDI $writable R59 0xc8 ;; [80, 67, 176, 200] -0x000000a8 MOVI R17 0x8 ;; [114, 68, 0, 8] -0x000000ac RETD $writable R17 ;; [37, 65, 16, 0] -0x000000b0 MOVE R58 R19 ;; [26, 233, 48, 0] -0x000000b4 MOVE R57 R59 ;; [26, 231, 176, 0] -0x000000b8 JAL R62 $pc 0x8 ;; [153, 248, 48, 8] -0x000000bc ADDI $writable R59 0x78 ;; [80, 67, 176, 120] -0x000000c0 MOVI R17 0x18 ;; [114, 68, 0, 24] -0x000000c4 MUL R17 R18 R17 ;; [27, 69, 36, 64] -0x000000c8 ADD R17 $writable R17 ;; [16, 69, 4, 64] -0x000000cc MCPI R17 R59 0x18 ;; [96, 71, 176, 24] -0x000000d0 ADD R18 R18 $one ;; [16, 73, 32, 64] -0x000000d4 JMPB $zero 0x18 ;; [117, 0, 0, 24] -0x000000d8 PSHL 0xff ;; [149, 0, 0, 255] -0x000000dc PSHH 0x80000 ;; [150, 8, 0, 0] -0x000000e0 MOVE R59 $sp ;; [26, 236, 80, 0] -0x000000e4 CFEI 0xd8 ;; [145, 0, 0, 216] -0x000000e8 MOVE R23 R58 ;; [26, 95, 160, 0] -0x000000ec MOVE R22 R57 ;; [26, 91, 144, 0] -0x000000f0 MOVE R21 R62 ;; [26, 87, 224, 0] -0x000000f4 ADDI $writable R59 0x48 ;; [80, 67, 176, 72] -0x000000f8 MCPI $writable R58 0x8 ;; [96, 67, 160, 8] -0x000000fc MOVI R17 0x3 ;; [114, 68, 0, 3] -0x00000100 SW R59 R17 0xa ;; [95, 237, 16, 10] -0x00000104 MCPI R59 $writable 0x10 ;; [96, 237, 0, 16] -0x00000108 ADDI $writable R59 0xb8 ;; [80, 67, 176, 184] -0x0000010c MCPI $writable R59 0x10 ;; [96, 67, 176, 16] -0x00000110 LW $writable R23 0x0 ;; [93, 65, 112, 0] -0x00000114 MOVI R17 0x3 ;; [114, 68, 0, 3] -0x00000118 ADD $writable $writable R17 ;; [16, 65, 4, 64] -0x0000011c SW R23 $writable 0x0 ;; [95, 93, 0, 0] -0x00000120 ADDI $writable R59 0xb8 ;; [80, 67, 176, 184] -0x00000124 ADDI R17 R59 0x98 ;; [80, 71, 176, 152] -0x00000128 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x0000012c ADDI $writable R59 0x98 ;; [80, 67, 176, 152] -0x00000130 ADDI R17 R59 0xa8 ;; [80, 71, 176, 168] -0x00000134 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x00000138 ADDI $writable R59 0xa8 ;; [80, 67, 176, 168] -0x0000013c ADDI R17 R59 0xc8 ;; [80, 71, 176, 200] -0x00000140 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x00000144 ADDI $writable R59 0xc8 ;; [80, 67, 176, 200] -0x00000148 ADDI R17 R59 0x10 ;; [80, 71, 176, 16] -0x0000014c MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x00000150 ADDI $writable R59 0x58 ;; [80, 67, 176, 88] -0x00000154 MCPI $writable R17 0x10 ;; [96, 65, 16, 16] -0x00000158 LW $writable R59 0xb ;; [93, 67, 176, 11] -0x0000015c ADDI R17 R59 0x20 ;; [80, 71, 176, 32] -0x00000160 MCPI R17 $writable 0x8 ;; [96, 69, 0, 8] -0x00000164 ADDI $writable R59 0x40 ;; [80, 67, 176, 64] -0x00000168 MCPI $writable R17 0x8 ;; [96, 65, 16, 8] -0x0000016c LW R17 R23 0x0 ;; [93, 69, 112, 0] -0x00000170 LW R17 R17 0x0 ;; [93, 69, 16, 0] -0x00000174 LW R18 R23 0x0 ;; [93, 73, 112, 0] -0x00000178 MOVI R19 0x8 ;; [114, 76, 0, 8] -0x0000017c ADD R18 R18 R19 ;; [16, 73, 36, 192] -0x00000180 SW R23 R18 0x0 ;; [95, 93, 32, 0] -0x00000184 EQ R18 R17 $zero ;; [19, 73, 16, 0] -0x00000188 JNZF R18 $zero 0xf ;; [118, 72, 0, 15] -0x0000018c EQ R17 R17 $one ;; [19, 69, 16, 64] -0x00000190 JNZF R17 $zero 0x1 ;; [118, 68, 0, 1] -0x00000194 RVRT $zero ;; [54, 0, 0, 0] -0x00000198 ADDI R17 R59 0x78 ;; [80, 71, 176, 120] -0x0000019c SW R59 $one 0xf ;; [95, 236, 16, 15] -0x000001a0 LW R18 R23 0x0 ;; [93, 73, 112, 0] -0x000001a4 LW R18 R18 0x0 ;; [93, 73, 32, 0] -0x000001a8 LW R19 R23 0x0 ;; [93, 77, 112, 0] -0x000001ac MOVI R20 0x8 ;; [114, 80, 0, 8] -0x000001b0 ADD R19 R19 R20 ;; [16, 77, 53, 0] -0x000001b4 SW R23 R19 0x0 ;; [95, 93, 48, 0] -0x000001b8 SW R59 R18 0x10 ;; [95, 237, 32, 16] -0x000001bc ADDI R18 R59 0x88 ;; [80, 75, 176, 136] -0x000001c0 MCPI R18 R17 0x10 ;; [96, 73, 16, 16] -0x000001c4 JMPF $zero 0xb ;; [116, 0, 0, 11] -0x000001c8 ADDI R17 R59 0x68 ;; [80, 71, 176, 104] -0x000001cc SW R59 $zero 0xd ;; [95, 236, 0, 13] -0x000001d0 LW R18 R23 0x0 ;; [93, 73, 112, 0] -0x000001d4 LW R18 R18 0x0 ;; [93, 73, 32, 0] -0x000001d8 LW R19 R23 0x0 ;; [93, 77, 112, 0] -0x000001dc MOVI R20 0x8 ;; [114, 80, 0, 8] -0x000001e0 ADD R19 R19 R20 ;; [16, 77, 53, 0] -0x000001e4 SW R23 R19 0x0 ;; [95, 93, 48, 0] -0x000001e8 SW R59 R18 0xe ;; [95, 237, 32, 14] -0x000001ec ADDI R18 R59 0x88 ;; [80, 75, 176, 136] -0x000001f0 MCPI R18 R17 0x10 ;; [96, 73, 16, 16] -0x000001f4 ADDI R17 R59 0x28 ;; [80, 71, 176, 40] -0x000001f8 MCPI R17 $writable 0x8 ;; [96, 69, 0, 8] -0x000001fc ADDI $writable R17 0x8 ;; [80, 65, 16, 8] -0x00000200 MCPI $writable R18 0x10 ;; [96, 65, 32, 16] -0x00000204 MCPI R22 R17 0x18 ;; [96, 89, 16, 24] -0x00000208 CFSI 0xd8 ;; [146, 0, 0, 216] -0x0000020c MOVE R62 R21 ;; [26, 249, 80, 0] -0x00000210 POPH 0x80000 ;; [152, 8, 0, 0] -0x00000214 POPL 0xff ;; [151, 0, 0, 255] -0x00000218 JAL $zero R62 0x0 ;; [153, 3, 224, 0] -0x0000021c PSHL 0x1ff ;; [149, 0, 1, 255] -0x00000220 PSHH 0x80000 ;; [150, 8, 0, 0] -0x00000224 MOVE R59 $sp ;; [26, 236, 80, 0] -0x00000228 CFEI 0x4c0 ;; [145, 0, 4, 192] -0x0000022c MOVE R20 R57 ;; [26, 83, 144, 0] -0x00000230 MOVE R19 R62 ;; [26, 79, 224, 0] -0x00000234 ADDI $writable R59 0x410 ;; [80, 67, 180, 16] -0x00000238 MCPI $writable R58 0x30 ;; [96, 67, 160, 48] -0x0000023c ADDI $writable R59 0x410 ;; [80, 67, 180, 16] -0x00000240 ADDI R17 R59 0x3e0 ;; [80, 71, 179, 224] -0x00000244 MCPI R17 $writable 0x30 ;; [96, 69, 0, 48] -0x00000248 ADDI $writable R59 0x3e0 ;; [80, 67, 179, 224] -0x0000024c ADDI R17 R59 0x1b8 ;; [80, 71, 177, 184] -0x00000250 MOVE R58 R17 ;; [26, 233, 16, 0] -0x00000254 JAL R62 $pc 0x132 ;; [153, 248, 49, 50] -0x00000258 ADDI R18 R59 0x440 ;; [80, 75, 180, 64] -0x0000025c MCPI R18 $writable 0x30 ;; [96, 73, 0, 48] -0x00000260 ADDI $writable R59 0x290 ;; [80, 67, 178, 144] -0x00000264 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x00000268 ADDI $writable R59 0x290 ;; [80, 67, 178, 144] -0x0000026c ADDI R17 R59 0x308 ;; [80, 71, 179, 8] -0x00000270 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x00000274 MOVE R24 $zero ;; [26, 96, 0, 0] -0x00000278 MOVI $writable 0x2 ;; [114, 64, 0, 2] -0x0000027c LT $writable R24 $writable ;; [22, 65, 132, 0] -0x00000280 JNZF $writable $zero 0x6e ;; [118, 64, 0, 110] -0x00000284 ADDI $writable R59 0x308 ;; [80, 67, 179, 8] -0x00000288 ADDI R17 R59 0x278 ;; [80, 71, 178, 120] -0x0000028c MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x00000290 ADDI $writable R59 0x278 ;; [80, 67, 178, 120] -0x00000294 ADDI R17 R59 0x4a8 ;; [80, 71, 180, 168] +0x000000a0 JAL R62 $pc 0x69 ;; [153, 248, 48, 105] +0x000000a4 ADDI $writable R59 0x48 ;; [80, 67, 176, 72] +0x000000a8 MOVE R58 $writable ;; [26, 233, 0, 0] +0x000000ac JAL R62 $pc 0x1a6 ;; [153, 248, 49, 166] +0x000000b0 LW $writable R59 0x1f ;; [93, 67, 176, 31] +0x000000b4 ADDI R17 R59 0x48 ;; [80, 71, 176, 72] +0x000000b8 ADDI R18 R59 0xc8 ;; [80, 75, 176, 200] +0x000000bc MOVE R58 $writable ;; [26, 233, 0, 0] +0x000000c0 MOVE R57 R17 ;; [26, 229, 16, 0] +0x000000c4 MOVE R56 R18 ;; [26, 225, 32, 0] +0x000000c8 JAL R62 $pc 0x173 ;; [153, 248, 49, 115] +0x000000cc LW $writable R59 0x19 ;; [93, 67, 176, 25] +0x000000d0 LW R17 R59 0x1b ;; [93, 71, 176, 27] +0x000000d4 RETD $writable R17 ;; [37, 65, 16, 0] +0x000000d8 MOVE R58 R19 ;; [26, 233, 48, 0] +0x000000dc MOVE R57 R59 ;; [26, 231, 176, 0] +0x000000e0 JAL R62 $pc 0x8 ;; [153, 248, 48, 8] +0x000000e4 ADDI $writable R59 0x90 ;; [80, 67, 176, 144] +0x000000e8 MOVI R17 0x18 ;; [114, 68, 0, 24] +0x000000ec MUL R17 R20 R17 ;; [27, 69, 68, 64] +0x000000f0 ADD R17 $writable R17 ;; [16, 69, 4, 64] +0x000000f4 MCPI R17 R59 0x18 ;; [96, 71, 176, 24] +0x000000f8 ADD R20 R20 $one ;; [16, 81, 64, 64] +0x000000fc JMPB $zero 0x22 ;; [117, 0, 0, 34] +0x00000100 PSHL 0xff ;; [149, 0, 0, 255] +0x00000104 PSHH 0x80000 ;; [150, 8, 0, 0] +0x00000108 MOVE R59 $sp ;; [26, 236, 80, 0] +0x0000010c CFEI 0xd8 ;; [145, 0, 0, 216] +0x00000110 MOVE R23 R58 ;; [26, 95, 160, 0] +0x00000114 MOVE R22 R57 ;; [26, 91, 144, 0] +0x00000118 MOVE R21 R62 ;; [26, 87, 224, 0] +0x0000011c ADDI $writable R59 0x48 ;; [80, 67, 176, 72] +0x00000120 MCPI $writable R58 0x8 ;; [96, 67, 160, 8] +0x00000124 MOVI R17 0x3 ;; [114, 68, 0, 3] +0x00000128 SW R59 R17 0xa ;; [95, 237, 16, 10] +0x0000012c MCPI R59 $writable 0x10 ;; [96, 237, 0, 16] +0x00000130 ADDI $writable R59 0xb8 ;; [80, 67, 176, 184] +0x00000134 MCPI $writable R59 0x10 ;; [96, 67, 176, 16] +0x00000138 LW $writable R23 0x0 ;; [93, 65, 112, 0] +0x0000013c MOVI R17 0x3 ;; [114, 68, 0, 3] +0x00000140 ADD $writable $writable R17 ;; [16, 65, 4, 64] +0x00000144 SW R23 $writable 0x0 ;; [95, 93, 0, 0] +0x00000148 ADDI $writable R59 0xb8 ;; [80, 67, 176, 184] +0x0000014c ADDI R17 R59 0x98 ;; [80, 71, 176, 152] +0x00000150 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x00000154 ADDI $writable R59 0x98 ;; [80, 67, 176, 152] +0x00000158 ADDI R17 R59 0xa8 ;; [80, 71, 176, 168] +0x0000015c MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x00000160 ADDI $writable R59 0xa8 ;; [80, 67, 176, 168] +0x00000164 ADDI R17 R59 0xc8 ;; [80, 71, 176, 200] +0x00000168 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x0000016c ADDI $writable R59 0xc8 ;; [80, 67, 176, 200] +0x00000170 ADDI R17 R59 0x10 ;; [80, 71, 176, 16] +0x00000174 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x00000178 ADDI $writable R59 0x58 ;; [80, 67, 176, 88] +0x0000017c MCPI $writable R17 0x10 ;; [96, 65, 16, 16] +0x00000180 LW $writable R59 0xb ;; [93, 67, 176, 11] +0x00000184 ADDI R17 R59 0x20 ;; [80, 71, 176, 32] +0x00000188 MCPI R17 $writable 0x8 ;; [96, 69, 0, 8] +0x0000018c ADDI $writable R59 0x40 ;; [80, 67, 176, 64] +0x00000190 MCPI $writable R17 0x8 ;; [96, 65, 16, 8] +0x00000194 LW R17 R23 0x0 ;; [93, 69, 112, 0] +0x00000198 LW R17 R17 0x0 ;; [93, 69, 16, 0] +0x0000019c LW R18 R23 0x0 ;; [93, 73, 112, 0] +0x000001a0 MOVI R19 0x8 ;; [114, 76, 0, 8] +0x000001a4 ADD R18 R18 R19 ;; [16, 73, 36, 192] +0x000001a8 SW R23 R18 0x0 ;; [95, 93, 32, 0] +0x000001ac EQ R18 R17 $zero ;; [19, 73, 16, 0] +0x000001b0 JNZF R18 $zero 0xf ;; [118, 72, 0, 15] +0x000001b4 EQ R17 R17 $one ;; [19, 69, 16, 64] +0x000001b8 JNZF R17 $zero 0x1 ;; [118, 68, 0, 1] +0x000001bc RVRT $zero ;; [54, 0, 0, 0] +0x000001c0 ADDI R17 R59 0x78 ;; [80, 71, 176, 120] +0x000001c4 SW R59 $one 0xf ;; [95, 236, 16, 15] +0x000001c8 LW R18 R23 0x0 ;; [93, 73, 112, 0] +0x000001cc LW R18 R18 0x0 ;; [93, 73, 32, 0] +0x000001d0 LW R19 R23 0x0 ;; [93, 77, 112, 0] +0x000001d4 MOVI R20 0x8 ;; [114, 80, 0, 8] +0x000001d8 ADD R19 R19 R20 ;; [16, 77, 53, 0] +0x000001dc SW R23 R19 0x0 ;; [95, 93, 48, 0] +0x000001e0 SW R59 R18 0x10 ;; [95, 237, 32, 16] +0x000001e4 ADDI R18 R59 0x88 ;; [80, 75, 176, 136] +0x000001e8 MCPI R18 R17 0x10 ;; [96, 73, 16, 16] +0x000001ec JMPF $zero 0xb ;; [116, 0, 0, 11] +0x000001f0 ADDI R17 R59 0x68 ;; [80, 71, 176, 104] +0x000001f4 SW R59 $zero 0xd ;; [95, 236, 0, 13] +0x000001f8 LW R18 R23 0x0 ;; [93, 73, 112, 0] +0x000001fc LW R18 R18 0x0 ;; [93, 73, 32, 0] +0x00000200 LW R19 R23 0x0 ;; [93, 77, 112, 0] +0x00000204 MOVI R20 0x8 ;; [114, 80, 0, 8] +0x00000208 ADD R19 R19 R20 ;; [16, 77, 53, 0] +0x0000020c SW R23 R19 0x0 ;; [95, 93, 48, 0] +0x00000210 SW R59 R18 0xe ;; [95, 237, 32, 14] +0x00000214 ADDI R18 R59 0x88 ;; [80, 75, 176, 136] +0x00000218 MCPI R18 R17 0x10 ;; [96, 73, 16, 16] +0x0000021c ADDI R17 R59 0x28 ;; [80, 71, 176, 40] +0x00000220 MCPI R17 $writable 0x8 ;; [96, 69, 0, 8] +0x00000224 ADDI $writable R17 0x8 ;; [80, 65, 16, 8] +0x00000228 MCPI $writable R18 0x10 ;; [96, 65, 32, 16] +0x0000022c MCPI R22 R17 0x18 ;; [96, 89, 16, 24] +0x00000230 CFSI 0xd8 ;; [146, 0, 0, 216] +0x00000234 MOVE R62 R21 ;; [26, 249, 80, 0] +0x00000238 POPH 0x80000 ;; [152, 8, 0, 0] +0x0000023c POPL 0xff ;; [151, 0, 0, 255] +0x00000240 JAL $zero R62 0x0 ;; [153, 3, 224, 0] +0x00000244 PSHL 0x1ff ;; [149, 0, 1, 255] +0x00000248 PSHH 0x80000 ;; [150, 8, 0, 0] +0x0000024c MOVE R59 $sp ;; [26, 236, 80, 0] +0x00000250 CFEI 0x4c0 ;; [145, 0, 4, 192] +0x00000254 MOVE R20 R57 ;; [26, 83, 144, 0] +0x00000258 MOVE R19 R62 ;; [26, 79, 224, 0] +0x0000025c ADDI $writable R59 0x410 ;; [80, 67, 180, 16] +0x00000260 MCPI $writable R58 0x30 ;; [96, 67, 160, 48] +0x00000264 ADDI $writable R59 0x410 ;; [80, 67, 180, 16] +0x00000268 ADDI R17 R59 0x3e0 ;; [80, 71, 179, 224] +0x0000026c MCPI R17 $writable 0x30 ;; [96, 69, 0, 48] +0x00000270 ADDI $writable R59 0x3e0 ;; [80, 67, 179, 224] +0x00000274 ADDI R17 R59 0x1b8 ;; [80, 71, 177, 184] +0x00000278 MOVE R58 R17 ;; [26, 233, 16, 0] +0x0000027c JAL R62 $pc 0x132 ;; [153, 248, 49, 50] +0x00000280 ADDI R18 R59 0x440 ;; [80, 75, 180, 64] +0x00000284 MCPI R18 $writable 0x30 ;; [96, 73, 0, 48] +0x00000288 ADDI $writable R59 0x290 ;; [80, 67, 178, 144] +0x0000028c MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x00000290 ADDI $writable R59 0x290 ;; [80, 67, 178, 144] +0x00000294 ADDI R17 R59 0x308 ;; [80, 71, 179, 8] 0x00000298 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x0000029c ADDI $writable R59 0x4a8 ;; [80, 67, 180, 168] -0x000002a0 ADDI R17 R59 0x30 ;; [80, 71, 176, 48] -0x000002a4 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x000002a8 ADDI $writable R59 0x80 ;; [80, 67, 176, 128] -0x000002ac MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x000002b0 ADDI R17 $writable 0x10 ;; [80, 69, 0, 16] -0x000002b4 ADDI R18 R59 0xb0 ;; [80, 75, 176, 176] -0x000002b8 MCPI R18 $writable 0x8 ;; [96, 73, 0, 8] -0x000002bc ADDI $writable R18 0x8 ;; [80, 65, 32, 8] -0x000002c0 MCPI $writable R17 0x8 ;; [96, 65, 16, 8] -0x000002c4 ADDI $writable R59 0x48 ;; [80, 67, 176, 72] -0x000002c8 MCPI $writable R18 0x10 ;; [96, 65, 32, 16] -0x000002cc ADDI R17 R59 0x118 ;; [80, 71, 177, 24] -0x000002d0 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x000002d4 LW $writable R63 0x0 ;; [93, 67, 240, 0] -0x000002d8 LW R17 R59 0x23 ;; [93, 71, 176, 35] -0x000002dc LW R18 R59 0x24 ;; [93, 75, 176, 36] -0x000002e0 LOGD $zero $writable R17 R18 ;; [52, 1, 4, 82] -0x000002e4 ADDI $writable R59 0x410 ;; [80, 67, 180, 16] -0x000002e8 MOVI R17 0x18 ;; [114, 68, 0, 24] -0x000002ec MUL R17 $zero R17 ;; [27, 68, 4, 64] -0x000002f0 ADD R17 $writable R17 ;; [16, 69, 4, 64] -0x000002f4 MOVI $writable 0x8 ;; [114, 64, 0, 8] -0x000002f8 ADD $writable $writable R63 ;; [16, 65, 15, 192] -0x000002fc ADDI R18 R59 0x58 ;; [80, 75, 176, 88] -0x00000300 SW R59 $writable 0xb ;; [95, 237, 0, 11] -0x00000304 MOVI $writable 0x3 ;; [114, 64, 0, 3] -0x00000308 SW R59 $writable 0xc ;; [95, 237, 0, 12] -0x0000030c ADDI $writable R59 0x98 ;; [80, 67, 176, 152] -0x00000310 MCPI $writable R18 0x10 ;; [96, 65, 32, 16] -0x00000314 ADDI R18 R59 0x230 ;; [80, 75, 178, 48] -0x00000318 MCPI R18 R17 0x8 ;; [96, 73, 16, 8] -0x0000031c ADDI R17 R59 0x238 ;; [80, 71, 178, 56] -0x00000320 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x00000324 MOVE R58 R18 ;; [26, 233, 32, 0] -0x00000328 MOVE R57 R17 ;; [26, 229, 16, 0] -0x0000032c JAL R62 $pc 0x112 ;; [153, 248, 49, 18] -0x00000330 EQ $writable R61 $zero ;; [19, 67, 208, 0] -0x00000334 JNZF $writable $zero 0x3f ;; [118, 64, 0, 63] -0x00000338 ADDI $writable R59 0x410 ;; [80, 67, 180, 16] -0x0000033c MOVI R17 0x18 ;; [114, 68, 0, 24] -0x00000340 MUL R17 $zero R17 ;; [27, 68, 4, 64] -0x00000344 ADD R17 $writable R17 ;; [16, 69, 4, 64] -0x00000348 ADDI $writable R17 0x8 ;; [80, 65, 16, 8] -0x0000034c ADDI R17 R59 0x128 ;; [80, 71, 177, 40] -0x00000350 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x00000354 LW $writable R59 0x25 ;; [93, 67, 176, 37] -0x00000358 EQ $writable $writable $zero ;; [19, 65, 0, 0] -0x0000035c JNZF $writable $zero 0x1 ;; [118, 64, 0, 1] -0x00000360 RVRT $one ;; [54, 4, 0, 0] -0x00000364 LW $writable R59 0x26 ;; [93, 67, 176, 38] -0x00000368 MOVI R17 0x53a ;; [114, 68, 5, 58] -0x0000036c EQ $writable $writable R17 ;; [19, 65, 4, 64] -0x00000370 EQ $writable $writable $zero ;; [19, 65, 0, 0] -0x00000374 JNZF $writable $zero 0x2d ;; [118, 64, 0, 45] -0x00000378 ADDI $writable R59 0x410 ;; [80, 67, 180, 16] -0x0000037c MOVI R17 0x18 ;; [114, 68, 0, 24] -0x00000380 MUL R17 $one R17 ;; [27, 68, 20, 64] -0x00000384 ADD R17 $writable R17 ;; [16, 69, 4, 64] -0x00000388 MOVI $writable 0x10 ;; [114, 64, 0, 16] -0x0000038c ADD $writable $writable R63 ;; [16, 65, 15, 192] -0x00000390 ADDI R18 R59 0xc0 ;; [80, 75, 176, 192] -0x00000394 SW R59 $writable 0x18 ;; [95, 237, 0, 24] -0x00000398 MOVI $writable 0x3 ;; [114, 64, 0, 3] -0x0000039c SW R59 $writable 0x19 ;; [95, 237, 0, 25] -0x000003a0 ADDI $writable R59 0xe8 ;; [80, 67, 176, 232] -0x000003a4 MCPI $writable R18 0x10 ;; [96, 65, 32, 16] -0x000003a8 ADDI R18 R59 0x248 ;; [80, 75, 178, 72] -0x000003ac MCPI R18 R17 0x8 ;; [96, 73, 16, 8] -0x000003b0 ADDI R17 R59 0x250 ;; [80, 71, 178, 80] -0x000003b4 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x000003b8 MOVE R58 R18 ;; [26, 233, 32, 0] -0x000003bc MOVE R57 R17 ;; [26, 229, 16, 0] -0x000003c0 JAL R62 $pc 0xed ;; [153, 248, 48, 237] -0x000003c4 EQ $writable R61 $zero ;; [19, 67, 208, 0] -0x000003c8 JNZF $writable $zero 0x16 ;; [118, 64, 0, 22] -0x000003cc ADDI $writable R59 0x410 ;; [80, 67, 180, 16] -0x000003d0 MOVI R17 0x18 ;; [114, 68, 0, 24] -0x000003d4 MUL R17 $one R17 ;; [27, 68, 20, 64] -0x000003d8 ADD R17 $writable R17 ;; [16, 69, 4, 64] -0x000003dc ADDI $writable R17 0x8 ;; [80, 65, 16, 8] -0x000003e0 ADDI R17 R59 0x148 ;; [80, 71, 177, 72] -0x000003e4 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x000003e8 LW $writable R59 0x29 ;; [93, 67, 176, 41] -0x000003ec EQ $writable $writable $one ;; [19, 65, 0, 64] -0x000003f0 JNZF $writable $zero 0x2 ;; [118, 64, 0, 2] -0x000003f4 MOVI $writable 0x2 ;; [114, 64, 0, 2] -0x000003f8 RVRT $writable ;; [54, 64, 0, 0] -0x000003fc LW $writable R59 0x2a ;; [93, 67, 176, 42] -0x00000400 EQ $writable $writable $one ;; [19, 65, 0, 64] -0x00000404 EQ $writable $writable $zero ;; [19, 65, 0, 0] -0x00000408 JNZF $writable $zero 0x4 ;; [118, 64, 0, 4] -0x0000040c ADDI $writable R59 0x110 ;; [80, 67, 177, 16] -0x00000410 SW R59 $one 0x22 ;; [95, 236, 16, 34] -0x00000414 MCPI R20 $writable 0x8 ;; [96, 81, 0, 8] -0x00000418 JMPF $zero 0x8f ;; [116, 0, 0, 143] -0x0000041c LW $writable R63 0x3 ;; [93, 67, 240, 3] +0x0000029c MOVE R24 $zero ;; [26, 96, 0, 0] +0x000002a0 MOVI $writable 0x2 ;; [114, 64, 0, 2] +0x000002a4 LT $writable R24 $writable ;; [22, 65, 132, 0] +0x000002a8 JNZF $writable $zero 0x6e ;; [118, 64, 0, 110] +0x000002ac ADDI $writable R59 0x308 ;; [80, 67, 179, 8] +0x000002b0 ADDI R17 R59 0x278 ;; [80, 71, 178, 120] +0x000002b4 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x000002b8 ADDI $writable R59 0x278 ;; [80, 67, 178, 120] +0x000002bc ADDI R17 R59 0x4a8 ;; [80, 71, 180, 168] +0x000002c0 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x000002c4 ADDI $writable R59 0x4a8 ;; [80, 67, 180, 168] +0x000002c8 ADDI R17 R59 0x30 ;; [80, 71, 176, 48] +0x000002cc MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x000002d0 ADDI $writable R59 0x80 ;; [80, 67, 176, 128] +0x000002d4 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x000002d8 ADDI R17 $writable 0x10 ;; [80, 69, 0, 16] +0x000002dc ADDI R18 R59 0xb0 ;; [80, 75, 176, 176] +0x000002e0 MCPI R18 $writable 0x8 ;; [96, 73, 0, 8] +0x000002e4 ADDI $writable R18 0x8 ;; [80, 65, 32, 8] +0x000002e8 MCPI $writable R17 0x8 ;; [96, 65, 16, 8] +0x000002ec ADDI $writable R59 0x48 ;; [80, 67, 176, 72] +0x000002f0 MCPI $writable R18 0x10 ;; [96, 65, 32, 16] +0x000002f4 ADDI R17 R59 0x118 ;; [80, 71, 177, 24] +0x000002f8 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x000002fc LW $writable R63 0x0 ;; [93, 67, 240, 0] +0x00000300 LW R17 R59 0x23 ;; [93, 71, 176, 35] +0x00000304 LW R18 R59 0x24 ;; [93, 75, 176, 36] +0x00000308 LOGD $zero $writable R17 R18 ;; [52, 1, 4, 82] +0x0000030c ADDI $writable R59 0x410 ;; [80, 67, 180, 16] +0x00000310 MOVI R17 0x18 ;; [114, 68, 0, 24] +0x00000314 MUL R17 $zero R17 ;; [27, 68, 4, 64] +0x00000318 ADD R17 $writable R17 ;; [16, 69, 4, 64] +0x0000031c MOVI $writable 0x8 ;; [114, 64, 0, 8] +0x00000320 ADD $writable $writable R63 ;; [16, 65, 15, 192] +0x00000324 ADDI R18 R59 0x58 ;; [80, 75, 176, 88] +0x00000328 SW R59 $writable 0xb ;; [95, 237, 0, 11] +0x0000032c MOVI $writable 0x3 ;; [114, 64, 0, 3] +0x00000330 SW R59 $writable 0xc ;; [95, 237, 0, 12] +0x00000334 ADDI $writable R59 0x98 ;; [80, 67, 176, 152] +0x00000338 MCPI $writable R18 0x10 ;; [96, 65, 32, 16] +0x0000033c ADDI R18 R59 0x230 ;; [80, 75, 178, 48] +0x00000340 MCPI R18 R17 0x8 ;; [96, 73, 16, 8] +0x00000344 ADDI R17 R59 0x238 ;; [80, 71, 178, 56] +0x00000348 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x0000034c MOVE R58 R18 ;; [26, 233, 32, 0] +0x00000350 MOVE R57 R17 ;; [26, 229, 16, 0] +0x00000354 JAL R62 $pc 0x112 ;; [153, 248, 49, 18] +0x00000358 EQ $writable R61 $zero ;; [19, 67, 208, 0] +0x0000035c JNZF $writable $zero 0x3f ;; [118, 64, 0, 63] +0x00000360 ADDI $writable R59 0x410 ;; [80, 67, 180, 16] +0x00000364 MOVI R17 0x18 ;; [114, 68, 0, 24] +0x00000368 MUL R17 $zero R17 ;; [27, 68, 4, 64] +0x0000036c ADD R17 $writable R17 ;; [16, 69, 4, 64] +0x00000370 ADDI $writable R17 0x8 ;; [80, 65, 16, 8] +0x00000374 ADDI R17 R59 0x128 ;; [80, 71, 177, 40] +0x00000378 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x0000037c LW $writable R59 0x25 ;; [93, 67, 176, 37] +0x00000380 EQ $writable $writable $zero ;; [19, 65, 0, 0] +0x00000384 JNZF $writable $zero 0x1 ;; [118, 64, 0, 1] +0x00000388 RVRT $one ;; [54, 4, 0, 0] +0x0000038c LW $writable R59 0x26 ;; [93, 67, 176, 38] +0x00000390 MOVI R17 0x53a ;; [114, 68, 5, 58] +0x00000394 EQ $writable $writable R17 ;; [19, 65, 4, 64] +0x00000398 EQ $writable $writable $zero ;; [19, 65, 0, 0] +0x0000039c JNZF $writable $zero 0x2d ;; [118, 64, 0, 45] +0x000003a0 ADDI $writable R59 0x410 ;; [80, 67, 180, 16] +0x000003a4 MOVI R17 0x18 ;; [114, 68, 0, 24] +0x000003a8 MUL R17 $one R17 ;; [27, 68, 20, 64] +0x000003ac ADD R17 $writable R17 ;; [16, 69, 4, 64] +0x000003b0 MOVI $writable 0x10 ;; [114, 64, 0, 16] +0x000003b4 ADD $writable $writable R63 ;; [16, 65, 15, 192] +0x000003b8 ADDI R18 R59 0xc0 ;; [80, 75, 176, 192] +0x000003bc SW R59 $writable 0x18 ;; [95, 237, 0, 24] +0x000003c0 MOVI $writable 0x3 ;; [114, 64, 0, 3] +0x000003c4 SW R59 $writable 0x19 ;; [95, 237, 0, 25] +0x000003c8 ADDI $writable R59 0xe8 ;; [80, 67, 176, 232] +0x000003cc MCPI $writable R18 0x10 ;; [96, 65, 32, 16] +0x000003d0 ADDI R18 R59 0x248 ;; [80, 75, 178, 72] +0x000003d4 MCPI R18 R17 0x8 ;; [96, 73, 16, 8] +0x000003d8 ADDI R17 R59 0x250 ;; [80, 71, 178, 80] +0x000003dc MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x000003e0 MOVE R58 R18 ;; [26, 233, 32, 0] +0x000003e4 MOVE R57 R17 ;; [26, 229, 16, 0] +0x000003e8 JAL R62 $pc 0xed ;; [153, 248, 48, 237] +0x000003ec EQ $writable R61 $zero ;; [19, 67, 208, 0] +0x000003f0 JNZF $writable $zero 0x16 ;; [118, 64, 0, 22] +0x000003f4 ADDI $writable R59 0x410 ;; [80, 67, 180, 16] +0x000003f8 MOVI R17 0x18 ;; [114, 68, 0, 24] +0x000003fc MUL R17 $one R17 ;; [27, 68, 20, 64] +0x00000400 ADD R17 $writable R17 ;; [16, 69, 4, 64] +0x00000404 ADDI $writable R17 0x8 ;; [80, 65, 16, 8] +0x00000408 ADDI R17 R59 0x148 ;; [80, 71, 177, 72] +0x0000040c MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x00000410 LW $writable R59 0x29 ;; [93, 67, 176, 41] +0x00000414 EQ $writable $writable $one ;; [19, 65, 0, 64] +0x00000418 JNZF $writable $zero 0x2 ;; [118, 64, 0, 2] +0x0000041c MOVI $writable 0x2 ;; [114, 64, 0, 2] 0x00000420 RVRT $writable ;; [54, 64, 0, 0] -0x00000424 LW $writable R63 0x3 ;; [93, 67, 240, 3] -0x00000428 RVRT $writable ;; [54, 64, 0, 0] -0x0000042c LW $writable R63 0x3 ;; [93, 67, 240, 3] -0x00000430 RVRT $writable ;; [54, 64, 0, 0] -0x00000434 LW $writable R63 0x3 ;; [93, 67, 240, 3] -0x00000438 RVRT $writable ;; [54, 64, 0, 0] -0x0000043c ADDI $writable R59 0x440 ;; [80, 67, 180, 64] -0x00000440 MOVI R17 0x18 ;; [114, 68, 0, 24] -0x00000444 MUL R17 R24 R17 ;; [27, 69, 132, 64] -0x00000448 ADD R17 $writable R17 ;; [16, 69, 4, 64] -0x0000044c ADDI $writable R59 0x308 ;; [80, 67, 179, 8] -0x00000450 ADDI R18 R59 0x480 ;; [80, 75, 180, 128] -0x00000454 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] -0x00000458 ADDI R17 R59 0x2a8 ;; [80, 71, 178, 168] -0x0000045c MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x00000460 ADDI $writable R59 0x480 ;; [80, 67, 180, 128] -0x00000464 ADDI R17 R59 0x2a8 ;; [80, 71, 178, 168] -0x00000468 ADDI R18 R59 0x470 ;; [80, 75, 180, 112] -0x0000046c MCPI R18 $writable 0x8 ;; [96, 73, 0, 8] -0x00000470 ADDI $writable R59 0x2c0 ;; [80, 67, 178, 192] -0x00000474 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x00000478 ADDI $writable R59 0x470 ;; [80, 67, 180, 112] -0x0000047c ADDI R17 R59 0x2c0 ;; [80, 71, 178, 192] -0x00000480 ADDI R18 R59 0x478 ;; [80, 75, 180, 120] -0x00000484 MCPI R18 $writable 0x8 ;; [96, 73, 0, 8] -0x00000488 ADDI $writable R59 0x2d8 ;; [80, 67, 178, 216] -0x0000048c MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x00000490 ADDI $writable R59 0x2d8 ;; [80, 67, 178, 216] -0x00000494 MCPI R59 $writable 0x18 ;; [96, 237, 0, 24] -0x00000498 ADDI $writable R59 0x68 ;; [80, 67, 176, 104] -0x0000049c MCPI $writable R59 0x18 ;; [96, 67, 176, 24] -0x000004a0 LW $writable R59 0xd ;; [93, 67, 176, 13] -0x000004a4 LW R23 R59 0xe ;; [93, 95, 176, 14] -0x000004a8 LW R17 R59 0xf ;; [93, 71, 176, 15] -0x000004ac ADDI R18 R59 0x478 ;; [80, 75, 180, 120] -0x000004b0 MOVI R21 0x3 ;; [114, 84, 0, 3] -0x000004b4 ADD R21 R17 R21 ;; [16, 85, 21, 64] -0x000004b8 GT R22 R21 R23 ;; [21, 89, 85, 192] -0x000004bc JNZF R22 $zero 0x1 ;; [118, 88, 0, 1] -0x000004c0 JMPF $zero 0x7 ;; [116, 0, 0, 7] -0x000004c4 MOVI R22 0x2 ;; [114, 88, 0, 2] -0x000004c8 MUL R22 R23 R22 ;; [27, 89, 117, 128] -0x000004cc MOVI R23 0x3 ;; [114, 92, 0, 3] -0x000004d0 ADD R23 R22 R23 ;; [16, 93, 101, 192] -0x000004d4 ALOC R23 ;; [38, 92, 0, 0] -0x000004d8 MCP $hp $writable R17 ;; [40, 29, 4, 64] -0x000004dc MOVE $writable $hp ;; [26, 64, 112, 0] -0x000004e0 ADDI R22 R59 0xa8 ;; [80, 91, 176, 168] -0x000004e4 MCPI R22 R18 0x8 ;; [96, 89, 32, 8] -0x000004e8 ADD R17 $writable R17 ;; [16, 69, 4, 64] -0x000004ec MCPI R17 R22 0x3 ;; [96, 69, 96, 3] -0x000004f0 ADDI R17 R59 0xd0 ;; [80, 71, 176, 208] -0x000004f4 SW R59 $writable 0x1a ;; [95, 237, 0, 26] -0x000004f8 SW R59 R23 0x1b ;; [95, 237, 112, 27] -0x000004fc SW R59 R21 0x1c ;; [95, 237, 80, 28] -0x00000500 ADDI $writable R59 0x18 ;; [80, 67, 176, 24] -0x00000504 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x00000508 ADDI R17 R59 0xf8 ;; [80, 71, 176, 248] -0x0000050c MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x00000510 ADDI $writable R59 0x338 ;; [80, 67, 179, 56] -0x00000514 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x00000518 ADDI $writable R59 0x338 ;; [80, 67, 179, 56] -0x0000051c ADDI R17 R59 0x320 ;; [80, 71, 179, 32] -0x00000520 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x00000524 ADDI $writable R59 0x480 ;; [80, 67, 180, 128] -0x00000528 ADDI $writable $writable 0x8 ;; [80, 65, 0, 8] -0x0000052c ADDI R17 R59 0x320 ;; [80, 71, 179, 32] -0x00000530 ADDI R18 R59 0x498 ;; [80, 75, 180, 152] -0x00000534 MCPI R18 $writable 0x10 ;; [96, 73, 0, 16] -0x00000538 ADDI $writable R59 0x2f0 ;; [80, 67, 178, 240] +0x00000424 LW $writable R59 0x2a ;; [93, 67, 176, 42] +0x00000428 EQ $writable $writable $one ;; [19, 65, 0, 64] +0x0000042c EQ $writable $writable $zero ;; [19, 65, 0, 0] +0x00000430 JNZF $writable $zero 0x4 ;; [118, 64, 0, 4] +0x00000434 ADDI $writable R59 0x110 ;; [80, 67, 177, 16] +0x00000438 SW R59 $one 0x22 ;; [95, 236, 16, 34] +0x0000043c MCPI R20 $writable 0x8 ;; [96, 81, 0, 8] +0x00000440 JMPF $zero 0x8f ;; [116, 0, 0, 143] +0x00000444 LW $writable R63 0x3 ;; [93, 67, 240, 3] +0x00000448 RVRT $writable ;; [54, 64, 0, 0] +0x0000044c LW $writable R63 0x3 ;; [93, 67, 240, 3] +0x00000450 RVRT $writable ;; [54, 64, 0, 0] +0x00000454 LW $writable R63 0x3 ;; [93, 67, 240, 3] +0x00000458 RVRT $writable ;; [54, 64, 0, 0] +0x0000045c LW $writable R63 0x3 ;; [93, 67, 240, 3] +0x00000460 RVRT $writable ;; [54, 64, 0, 0] +0x00000464 ADDI $writable R59 0x440 ;; [80, 67, 180, 64] +0x00000468 MOVI R17 0x18 ;; [114, 68, 0, 24] +0x0000046c MUL R17 R24 R17 ;; [27, 69, 132, 64] +0x00000470 ADD R17 $writable R17 ;; [16, 69, 4, 64] +0x00000474 ADDI $writable R59 0x308 ;; [80, 67, 179, 8] +0x00000478 ADDI R18 R59 0x480 ;; [80, 75, 180, 128] +0x0000047c MCPI R18 R17 0x18 ;; [96, 73, 16, 24] +0x00000480 ADDI R17 R59 0x2a8 ;; [80, 71, 178, 168] +0x00000484 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x00000488 ADDI $writable R59 0x480 ;; [80, 67, 180, 128] +0x0000048c ADDI R17 R59 0x2a8 ;; [80, 71, 178, 168] +0x00000490 ADDI R18 R59 0x470 ;; [80, 75, 180, 112] +0x00000494 MCPI R18 $writable 0x8 ;; [96, 73, 0, 8] +0x00000498 ADDI $writable R59 0x2c0 ;; [80, 67, 178, 192] +0x0000049c MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x000004a0 ADDI $writable R59 0x470 ;; [80, 67, 180, 112] +0x000004a4 ADDI R17 R59 0x2c0 ;; [80, 71, 178, 192] +0x000004a8 ADDI R18 R59 0x478 ;; [80, 75, 180, 120] +0x000004ac MCPI R18 $writable 0x8 ;; [96, 73, 0, 8] +0x000004b0 ADDI $writable R59 0x2d8 ;; [80, 67, 178, 216] +0x000004b4 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x000004b8 ADDI $writable R59 0x2d8 ;; [80, 67, 178, 216] +0x000004bc MCPI R59 $writable 0x18 ;; [96, 237, 0, 24] +0x000004c0 ADDI $writable R59 0x68 ;; [80, 67, 176, 104] +0x000004c4 MCPI $writable R59 0x18 ;; [96, 67, 176, 24] +0x000004c8 LW $writable R59 0xd ;; [93, 67, 176, 13] +0x000004cc LW R23 R59 0xe ;; [93, 95, 176, 14] +0x000004d0 LW R17 R59 0xf ;; [93, 71, 176, 15] +0x000004d4 ADDI R18 R59 0x478 ;; [80, 75, 180, 120] +0x000004d8 MOVI R21 0x3 ;; [114, 84, 0, 3] +0x000004dc ADD R21 R17 R21 ;; [16, 85, 21, 64] +0x000004e0 GT R22 R21 R23 ;; [21, 89, 85, 192] +0x000004e4 JNZF R22 $zero 0x1 ;; [118, 88, 0, 1] +0x000004e8 JMPF $zero 0x7 ;; [116, 0, 0, 7] +0x000004ec MOVI R22 0x2 ;; [114, 88, 0, 2] +0x000004f0 MUL R22 R23 R22 ;; [27, 89, 117, 128] +0x000004f4 MOVI R23 0x3 ;; [114, 92, 0, 3] +0x000004f8 ADD R23 R22 R23 ;; [16, 93, 101, 192] +0x000004fc ALOC R23 ;; [38, 92, 0, 0] +0x00000500 MCP $hp $writable R17 ;; [40, 29, 4, 64] +0x00000504 MOVE $writable $hp ;; [26, 64, 112, 0] +0x00000508 ADDI R22 R59 0xa8 ;; [80, 91, 176, 168] +0x0000050c MCPI R22 R18 0x8 ;; [96, 89, 32, 8] +0x00000510 ADD R17 $writable R17 ;; [16, 69, 4, 64] +0x00000514 MCPI R17 R22 0x3 ;; [96, 69, 96, 3] +0x00000518 ADDI R17 R59 0xd0 ;; [80, 71, 176, 208] +0x0000051c SW R59 $writable 0x1a ;; [95, 237, 0, 26] +0x00000520 SW R59 R23 0x1b ;; [95, 237, 112, 27] +0x00000524 SW R59 R21 0x1c ;; [95, 237, 80, 28] +0x00000528 ADDI $writable R59 0x18 ;; [80, 67, 176, 24] +0x0000052c MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x00000530 ADDI R17 R59 0xf8 ;; [80, 71, 176, 248] +0x00000534 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x00000538 ADDI $writable R59 0x338 ;; [80, 67, 179, 56] 0x0000053c MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x00000540 ADDI $writable R59 0x498 ;; [80, 67, 180, 152] -0x00000544 ADDI R17 R59 0x138 ;; [80, 71, 177, 56] -0x00000548 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x0000054c LW $writable R59 0x27 ;; [93, 67, 176, 39] -0x00000550 EQ $writable $writable $zero ;; [19, 65, 0, 0] -0x00000554 JNZF $writable $zero 0x1e ;; [118, 64, 0, 30] -0x00000558 LW $writable R59 0x27 ;; [93, 67, 176, 39] -0x0000055c EQ $writable $writable $one ;; [19, 65, 0, 64] -0x00000560 JNZF $writable $zero 0x2 ;; [118, 64, 0, 2] -0x00000564 LW $writable R63 0x4 ;; [93, 67, 240, 4] -0x00000568 RVRT $writable ;; [54, 64, 0, 0] -0x0000056c LW $writable R59 0x28 ;; [93, 67, 176, 40] -0x00000570 ADDI R17 R59 0x2f0 ;; [80, 71, 178, 240] -0x00000574 ADDI R18 R59 0x200 ;; [80, 75, 178, 0] -0x00000578 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] -0x0000057c ADDI R17 R59 0x188 ;; [80, 71, 177, 136] -0x00000580 MOVE R58 $one ;; [26, 232, 16, 0] -0x00000584 MOVE R57 R18 ;; [26, 229, 32, 0] -0x00000588 MOVE R56 R17 ;; [26, 225, 16, 0] -0x0000058c JAL R62 $pc 0x38 ;; [153, 248, 48, 56] -0x00000590 ADDI R18 R59 0x398 ;; [80, 75, 179, 152] -0x00000594 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] -0x00000598 ADDI R17 R59 0x398 ;; [80, 71, 179, 152] -0x0000059c ADDI R18 R59 0x218 ;; [80, 75, 178, 24] +0x00000540 ADDI $writable R59 0x338 ;; [80, 67, 179, 56] +0x00000544 ADDI R17 R59 0x320 ;; [80, 71, 179, 32] +0x00000548 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x0000054c ADDI $writable R59 0x480 ;; [80, 67, 180, 128] +0x00000550 ADDI $writable $writable 0x8 ;; [80, 65, 0, 8] +0x00000554 ADDI R17 R59 0x320 ;; [80, 71, 179, 32] +0x00000558 ADDI R18 R59 0x498 ;; [80, 75, 180, 152] +0x0000055c MCPI R18 $writable 0x10 ;; [96, 73, 0, 16] +0x00000560 ADDI $writable R59 0x2f0 ;; [80, 67, 178, 240] +0x00000564 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x00000568 ADDI $writable R59 0x498 ;; [80, 67, 180, 152] +0x0000056c ADDI R17 R59 0x138 ;; [80, 71, 177, 56] +0x00000570 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x00000574 LW $writable R59 0x27 ;; [93, 67, 176, 39] +0x00000578 EQ $writable $writable $zero ;; [19, 65, 0, 0] +0x0000057c JNZF $writable $zero 0x1e ;; [118, 64, 0, 30] +0x00000580 LW $writable R59 0x27 ;; [93, 67, 176, 39] +0x00000584 EQ $writable $writable $one ;; [19, 65, 0, 64] +0x00000588 JNZF $writable $zero 0x2 ;; [118, 64, 0, 2] +0x0000058c LW $writable R63 0x4 ;; [93, 67, 240, 4] +0x00000590 RVRT $writable ;; [54, 64, 0, 0] +0x00000594 LW $writable R59 0x28 ;; [93, 67, 176, 40] +0x00000598 ADDI R17 R59 0x2f0 ;; [80, 71, 178, 240] +0x0000059c ADDI R18 R59 0x200 ;; [80, 75, 178, 0] 0x000005a0 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] -0x000005a4 ADDI R17 R59 0x1a0 ;; [80, 71, 177, 160] -0x000005a8 MOVE R58 $writable ;; [26, 233, 0, 0] +0x000005a4 ADDI R17 R59 0x188 ;; [80, 71, 177, 136] +0x000005a8 MOVE R58 $one ;; [26, 232, 16, 0] 0x000005ac MOVE R57 R18 ;; [26, 229, 32, 0] 0x000005b0 MOVE R56 R17 ;; [26, 225, 16, 0] -0x000005b4 JAL R62 $pc 0x2e ;; [153, 248, 48, 46] -0x000005b8 ADDI $writable R59 0x3b0 ;; [80, 67, 179, 176] -0x000005bc MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x000005c0 ADDI $writable R59 0x3b0 ;; [80, 67, 179, 176] -0x000005c4 ADDI R17 R59 0x260 ;; [80, 71, 178, 96] -0x000005c8 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x000005cc JMPF $zero 0x18 ;; [116, 0, 0, 24] -0x000005d0 LW $writable R59 0x28 ;; [93, 67, 176, 40] -0x000005d4 ADDI R17 R59 0x2f0 ;; [80, 71, 178, 240] -0x000005d8 ADDI R18 R59 0x1d0 ;; [80, 75, 177, 208] -0x000005dc MCPI R18 R17 0x18 ;; [96, 73, 16, 24] -0x000005e0 ADDI R17 R59 0x158 ;; [80, 71, 177, 88] -0x000005e4 MOVE R58 $zero ;; [26, 232, 0, 0] -0x000005e8 MOVE R57 R18 ;; [26, 229, 32, 0] -0x000005ec MOVE R56 R17 ;; [26, 225, 16, 0] -0x000005f0 JAL R62 $pc 0x1f ;; [153, 248, 48, 31] -0x000005f4 ADDI R18 R59 0x350 ;; [80, 75, 179, 80] -0x000005f8 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] -0x000005fc ADDI R17 R59 0x350 ;; [80, 71, 179, 80] -0x00000600 ADDI R18 R59 0x1e8 ;; [80, 75, 177, 232] +0x000005b4 JAL R62 $pc 0x38 ;; [153, 248, 48, 56] +0x000005b8 ADDI R18 R59 0x398 ;; [80, 75, 179, 152] +0x000005bc MCPI R18 R17 0x18 ;; [96, 73, 16, 24] +0x000005c0 ADDI R17 R59 0x398 ;; [80, 71, 179, 152] +0x000005c4 ADDI R18 R59 0x218 ;; [80, 75, 178, 24] +0x000005c8 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] +0x000005cc ADDI R17 R59 0x1a0 ;; [80, 71, 177, 160] +0x000005d0 MOVE R58 $writable ;; [26, 233, 0, 0] +0x000005d4 MOVE R57 R18 ;; [26, 229, 32, 0] +0x000005d8 MOVE R56 R17 ;; [26, 225, 16, 0] +0x000005dc JAL R62 $pc 0x2e ;; [153, 248, 48, 46] +0x000005e0 ADDI $writable R59 0x3b0 ;; [80, 67, 179, 176] +0x000005e4 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x000005e8 ADDI $writable R59 0x3b0 ;; [80, 67, 179, 176] +0x000005ec ADDI R17 R59 0x260 ;; [80, 71, 178, 96] +0x000005f0 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x000005f4 JMPF $zero 0x18 ;; [116, 0, 0, 24] +0x000005f8 LW $writable R59 0x28 ;; [93, 67, 176, 40] +0x000005fc ADDI R17 R59 0x2f0 ;; [80, 71, 178, 240] +0x00000600 ADDI R18 R59 0x1d0 ;; [80, 75, 177, 208] 0x00000604 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] -0x00000608 ADDI R17 R59 0x170 ;; [80, 71, 177, 112] -0x0000060c MOVE R58 $writable ;; [26, 233, 0, 0] +0x00000608 ADDI R17 R59 0x158 ;; [80, 71, 177, 88] +0x0000060c MOVE R58 $zero ;; [26, 232, 0, 0] 0x00000610 MOVE R57 R18 ;; [26, 229, 32, 0] 0x00000614 MOVE R56 R17 ;; [26, 225, 16, 0] -0x00000618 JAL R62 $pc 0x15 ;; [153, 248, 48, 21] -0x0000061c ADDI $writable R59 0x380 ;; [80, 67, 179, 128] -0x00000620 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x00000624 ADDI $writable R59 0x380 ;; [80, 67, 179, 128] -0x00000628 ADDI R17 R59 0x260 ;; [80, 71, 178, 96] -0x0000062c MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x00000630 ADDI $writable R59 0x3c8 ;; [80, 67, 179, 200] -0x00000634 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x00000638 ADDI $writable R59 0x3c8 ;; [80, 67, 179, 200] -0x0000063c ADDI R17 R59 0x368 ;; [80, 71, 179, 104] -0x00000640 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x00000644 ADDI $writable R59 0x368 ;; [80, 67, 179, 104] -0x00000648 ADDI R17 R59 0x308 ;; [80, 71, 179, 8] -0x0000064c MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x00000650 ADD R24 R24 $one ;; [16, 97, 128, 64] -0x00000654 JMPB $zero 0xf6 ;; [117, 0, 0, 246] -0x00000658 CFSI 0x4c0 ;; [146, 0, 4, 192] -0x0000065c MOVE R62 R19 ;; [26, 249, 48, 0] -0x00000660 POPH 0x80000 ;; [152, 8, 0, 0] -0x00000664 POPL 0x1ff ;; [151, 0, 1, 255] -0x00000668 JAL $zero R62 0x0 ;; [153, 3, 224, 0] -0x0000066c PSHL 0xff ;; [149, 0, 0, 255] -0x00000670 PSHH 0x80000 ;; [150, 8, 0, 0] -0x00000674 MOVE R59 $sp ;; [26, 236, 80, 0] -0x00000678 CFEI 0x90 ;; [145, 0, 0, 144] -0x0000067c MOVE $writable R58 ;; [26, 67, 160, 0] -0x00000680 MOVE R17 R56 ;; [26, 71, 128, 0] -0x00000684 MOVE R18 R62 ;; [26, 75, 224, 0] -0x00000688 ADDI R19 R59 0x78 ;; [80, 79, 176, 120] -0x0000068c MCPI R19 R57 0x18 ;; [96, 79, 144, 24] -0x00000690 ADDI R19 R59 0x78 ;; [80, 79, 176, 120] -0x00000694 MCPI R59 R19 0x18 ;; [96, 237, 48, 24] -0x00000698 ADDI R19 R59 0x30 ;; [80, 79, 176, 48] -0x0000069c MCPI R19 R59 0x18 ;; [96, 79, 176, 24] -0x000006a0 LW R19 R59 0x6 ;; [93, 79, 176, 6] -0x000006a4 LW R23 R59 0x7 ;; [93, 95, 176, 7] -0x000006a8 LW R20 R59 0x8 ;; [93, 83, 176, 8] -0x000006ac MOVI R21 0x8 ;; [114, 84, 0, 8] -0x000006b0 ADD R21 R20 R21 ;; [16, 85, 69, 64] -0x000006b4 GT R22 R21 R23 ;; [21, 89, 85, 192] -0x000006b8 JNZF R22 $zero 0x1 ;; [118, 88, 0, 1] -0x000006bc JMPF $zero 0x7 ;; [116, 0, 0, 7] -0x000006c0 MOVI R22 0x2 ;; [114, 88, 0, 2] -0x000006c4 MUL R22 R23 R22 ;; [27, 89, 117, 128] -0x000006c8 MOVI R23 0x8 ;; [114, 92, 0, 8] -0x000006cc ADD R23 R22 R23 ;; [16, 93, 101, 192] -0x000006d0 ALOC R23 ;; [38, 92, 0, 0] -0x000006d4 MCP $hp R19 R20 ;; [40, 29, 53, 0] -0x000006d8 MOVE R19 $hp ;; [26, 76, 112, 0] -0x000006dc ADD R20 R19 R20 ;; [16, 81, 53, 0] -0x000006e0 SW R20 $writable 0x0 ;; [95, 81, 0, 0] -0x000006e4 ADDI $writable R59 0x48 ;; [80, 67, 176, 72] -0x000006e8 SW R59 R19 0x9 ;; [95, 237, 48, 9] -0x000006ec SW R59 R23 0xa ;; [95, 237, 112, 10] -0x000006f0 SW R59 R21 0xb ;; [95, 237, 80, 11] -0x000006f4 ADDI R19 R59 0x18 ;; [80, 79, 176, 24] -0x000006f8 MCPI R19 $writable 0x18 ;; [96, 77, 0, 24] -0x000006fc ADDI $writable R59 0x60 ;; [80, 67, 176, 96] -0x00000700 MCPI $writable R19 0x18 ;; [96, 65, 48, 24] -0x00000704 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x00000708 CFSI 0x90 ;; [146, 0, 0, 144] -0x0000070c MOVE R62 R18 ;; [26, 249, 32, 0] -0x00000710 POPH 0x80000 ;; [152, 8, 0, 0] -0x00000714 POPL 0xff ;; [151, 0, 0, 255] -0x00000718 JAL $zero R62 0x0 ;; [153, 3, 224, 0] -0x0000071c PSHL 0xf ;; [149, 0, 0, 15] -0x00000720 PSHH 0x80000 ;; [150, 8, 0, 0] -0x00000724 MOVE R59 $sp ;; [26, 236, 80, 0] -0x00000728 CFEI 0x48 ;; [145, 0, 0, 72] -0x0000072c MOVE $writable R58 ;; [26, 67, 160, 0] -0x00000730 MOVE R17 R62 ;; [26, 71, 224, 0] -0x00000734 MOVI R18 0x400 ;; [114, 72, 4, 0] -0x00000738 ALOC R18 ;; [38, 72, 0, 0] -0x0000073c ADDI R18 R59 0x18 ;; [80, 75, 176, 24] -0x00000740 SW R59 $hp 0x3 ;; [95, 236, 112, 3] -0x00000744 MOVI R19 0x400 ;; [114, 76, 4, 0] -0x00000748 SW R59 R19 0x4 ;; [95, 237, 48, 4] -0x0000074c SW R59 $zero 0x5 ;; [95, 236, 0, 5] -0x00000750 MCPI R59 R18 0x18 ;; [96, 237, 32, 24] -0x00000754 ADDI R18 R59 0x30 ;; [80, 75, 176, 48] -0x00000758 MCPI R18 R59 0x18 ;; [96, 75, 176, 24] -0x0000075c MCPI $writable R18 0x18 ;; [96, 65, 32, 24] -0x00000760 CFSI 0x48 ;; [146, 0, 0, 72] -0x00000764 MOVE R62 R17 ;; [26, 249, 16, 0] -0x00000768 POPH 0x80000 ;; [152, 8, 0, 0] -0x0000076c POPL 0xf ;; [151, 0, 0, 15] -0x00000770 JAL $zero R62 0x0 ;; [153, 3, 224, 0] -0x00000774 PSHL 0xf ;; [149, 0, 0, 15] -0x00000778 PSHH 0x80000 ;; [150, 8, 0, 0] -0x0000077c MOVE R59 $sp ;; [26, 236, 80, 0] -0x00000780 CFEI 0x28 ;; [145, 0, 0, 40] -0x00000784 MOVE $writable R57 ;; [26, 67, 144, 0] -0x00000788 MOVE R17 R62 ;; [26, 71, 224, 0] -0x0000078c ADDI R18 R59 0x10 ;; [80, 75, 176, 16] -0x00000790 MCPI R18 R58 0x8 ;; [96, 75, 160, 8] -0x00000794 ADDI R18 R59 0x18 ;; [80, 75, 176, 24] -0x00000798 MCPI R18 $writable 0x10 ;; [96, 73, 0, 16] -0x0000079c LW $writable R59 0x3 ;; [93, 67, 176, 3] -0x000007a0 LW R18 R59 0x4 ;; [93, 75, 176, 4] -0x000007a4 SW R59 $writable 0x0 ;; [95, 237, 0, 0] -0x000007a8 SW R59 R18 0x1 ;; [95, 237, 32, 1] -0x000007ac LW $writable R59 0x0 ;; [93, 67, 176, 0] -0x000007b0 ADDI R18 R59 0x10 ;; [80, 75, 176, 16] -0x000007b4 MOVI R19 0x3 ;; [114, 76, 0, 3] -0x000007b8 MEQ $writable R18 $writable R19 ;; [41, 65, 36, 19] -0x000007bc MOVE R61 $writable ;; [26, 245, 0, 0] -0x000007c0 CFSI 0x28 ;; [146, 0, 0, 40] -0x000007c4 MOVE R62 R17 ;; [26, 249, 16, 0] -0x000007c8 POPH 0x80000 ;; [152, 8, 0, 0] -0x000007cc POPL 0xf ;; [151, 0, 0, 15] -0x000007d0 JAL $zero R62 0x0 ;; [153, 3, 224, 0] -0x000007d4 NOOP ;; [71, 0, 0, 0] +0x00000618 JAL R62 $pc 0x1f ;; [153, 248, 48, 31] +0x0000061c ADDI R18 R59 0x350 ;; [80, 75, 179, 80] +0x00000620 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] +0x00000624 ADDI R17 R59 0x350 ;; [80, 71, 179, 80] +0x00000628 ADDI R18 R59 0x1e8 ;; [80, 75, 177, 232] +0x0000062c MCPI R18 R17 0x18 ;; [96, 73, 16, 24] +0x00000630 ADDI R17 R59 0x170 ;; [80, 71, 177, 112] +0x00000634 MOVE R58 $writable ;; [26, 233, 0, 0] +0x00000638 MOVE R57 R18 ;; [26, 229, 32, 0] +0x0000063c MOVE R56 R17 ;; [26, 225, 16, 0] +0x00000640 JAL R62 $pc 0x15 ;; [153, 248, 48, 21] +0x00000644 ADDI $writable R59 0x380 ;; [80, 67, 179, 128] +0x00000648 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x0000064c ADDI $writable R59 0x380 ;; [80, 67, 179, 128] +0x00000650 ADDI R17 R59 0x260 ;; [80, 71, 178, 96] +0x00000654 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x00000658 ADDI $writable R59 0x3c8 ;; [80, 67, 179, 200] +0x0000065c MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x00000660 ADDI $writable R59 0x3c8 ;; [80, 67, 179, 200] +0x00000664 ADDI R17 R59 0x368 ;; [80, 71, 179, 104] +0x00000668 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x0000066c ADDI $writable R59 0x368 ;; [80, 67, 179, 104] +0x00000670 ADDI R17 R59 0x308 ;; [80, 71, 179, 8] +0x00000674 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x00000678 ADD R24 R24 $one ;; [16, 97, 128, 64] +0x0000067c JMPB $zero 0xf6 ;; [117, 0, 0, 246] +0x00000680 CFSI 0x4c0 ;; [146, 0, 4, 192] +0x00000684 MOVE R62 R19 ;; [26, 249, 48, 0] +0x00000688 POPH 0x80000 ;; [152, 8, 0, 0] +0x0000068c POPL 0x1ff ;; [151, 0, 1, 255] +0x00000690 JAL $zero R62 0x0 ;; [153, 3, 224, 0] +0x00000694 PSHL 0xff ;; [149, 0, 0, 255] +0x00000698 PSHH 0x80000 ;; [150, 8, 0, 0] +0x0000069c MOVE R59 $sp ;; [26, 236, 80, 0] +0x000006a0 CFEI 0x90 ;; [145, 0, 0, 144] +0x000006a4 MOVE $writable R58 ;; [26, 67, 160, 0] +0x000006a8 MOVE R17 R56 ;; [26, 71, 128, 0] +0x000006ac MOVE R18 R62 ;; [26, 75, 224, 0] +0x000006b0 ADDI R19 R59 0x78 ;; [80, 79, 176, 120] +0x000006b4 MCPI R19 R57 0x18 ;; [96, 79, 144, 24] +0x000006b8 ADDI R19 R59 0x78 ;; [80, 79, 176, 120] +0x000006bc MCPI R59 R19 0x18 ;; [96, 237, 48, 24] +0x000006c0 ADDI R19 R59 0x30 ;; [80, 79, 176, 48] +0x000006c4 MCPI R19 R59 0x18 ;; [96, 79, 176, 24] +0x000006c8 LW R19 R59 0x6 ;; [93, 79, 176, 6] +0x000006cc LW R23 R59 0x7 ;; [93, 95, 176, 7] +0x000006d0 LW R20 R59 0x8 ;; [93, 83, 176, 8] +0x000006d4 MOVI R21 0x8 ;; [114, 84, 0, 8] +0x000006d8 ADD R21 R20 R21 ;; [16, 85, 69, 64] +0x000006dc GT R22 R21 R23 ;; [21, 89, 85, 192] +0x000006e0 JNZF R22 $zero 0x1 ;; [118, 88, 0, 1] +0x000006e4 JMPF $zero 0x7 ;; [116, 0, 0, 7] +0x000006e8 MOVI R22 0x2 ;; [114, 88, 0, 2] +0x000006ec MUL R22 R23 R22 ;; [27, 89, 117, 128] +0x000006f0 MOVI R23 0x8 ;; [114, 92, 0, 8] +0x000006f4 ADD R23 R22 R23 ;; [16, 93, 101, 192] +0x000006f8 ALOC R23 ;; [38, 92, 0, 0] +0x000006fc MCP $hp R19 R20 ;; [40, 29, 53, 0] +0x00000700 MOVE R19 $hp ;; [26, 76, 112, 0] +0x00000704 ADD R20 R19 R20 ;; [16, 81, 53, 0] +0x00000708 SW R20 $writable 0x0 ;; [95, 81, 0, 0] +0x0000070c ADDI $writable R59 0x48 ;; [80, 67, 176, 72] +0x00000710 SW R59 R19 0x9 ;; [95, 237, 48, 9] +0x00000714 SW R59 R23 0xa ;; [95, 237, 112, 10] +0x00000718 SW R59 R21 0xb ;; [95, 237, 80, 11] +0x0000071c ADDI R19 R59 0x18 ;; [80, 79, 176, 24] +0x00000720 MCPI R19 $writable 0x18 ;; [96, 77, 0, 24] +0x00000724 ADDI $writable R59 0x60 ;; [80, 67, 176, 96] +0x00000728 MCPI $writable R19 0x18 ;; [96, 65, 48, 24] +0x0000072c MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x00000730 CFSI 0x90 ;; [146, 0, 0, 144] +0x00000734 MOVE R62 R18 ;; [26, 249, 32, 0] +0x00000738 POPH 0x80000 ;; [152, 8, 0, 0] +0x0000073c POPL 0xff ;; [151, 0, 0, 255] +0x00000740 JAL $zero R62 0x0 ;; [153, 3, 224, 0] +0x00000744 PSHL 0xf ;; [149, 0, 0, 15] +0x00000748 PSHH 0x80000 ;; [150, 8, 0, 0] +0x0000074c MOVE R59 $sp ;; [26, 236, 80, 0] +0x00000750 CFEI 0x48 ;; [145, 0, 0, 72] +0x00000754 MOVE $writable R58 ;; [26, 67, 160, 0] +0x00000758 MOVE R17 R62 ;; [26, 71, 224, 0] +0x0000075c MOVI R18 0x400 ;; [114, 72, 4, 0] +0x00000760 ALOC R18 ;; [38, 72, 0, 0] +0x00000764 ADDI R18 R59 0x18 ;; [80, 75, 176, 24] +0x00000768 SW R59 $hp 0x3 ;; [95, 236, 112, 3] +0x0000076c MOVI R19 0x400 ;; [114, 76, 4, 0] +0x00000770 SW R59 R19 0x4 ;; [95, 237, 48, 4] +0x00000774 SW R59 $zero 0x5 ;; [95, 236, 0, 5] +0x00000778 MCPI R59 R18 0x18 ;; [96, 237, 32, 24] +0x0000077c ADDI R18 R59 0x30 ;; [80, 75, 176, 48] +0x00000780 MCPI R18 R59 0x18 ;; [96, 75, 176, 24] +0x00000784 MCPI $writable R18 0x18 ;; [96, 65, 32, 24] +0x00000788 CFSI 0x48 ;; [146, 0, 0, 72] +0x0000078c MOVE R62 R17 ;; [26, 249, 16, 0] +0x00000790 POPH 0x80000 ;; [152, 8, 0, 0] +0x00000794 POPL 0xf ;; [151, 0, 0, 15] +0x00000798 JAL $zero R62 0x0 ;; [153, 3, 224, 0] +0x0000079c PSHL 0xf ;; [149, 0, 0, 15] +0x000007a0 PSHH 0x80000 ;; [150, 8, 0, 0] +0x000007a4 MOVE R59 $sp ;; [26, 236, 80, 0] +0x000007a8 CFEI 0x28 ;; [145, 0, 0, 40] +0x000007ac MOVE $writable R57 ;; [26, 67, 144, 0] +0x000007b0 MOVE R17 R62 ;; [26, 71, 224, 0] +0x000007b4 ADDI R18 R59 0x10 ;; [80, 75, 176, 16] +0x000007b8 MCPI R18 R58 0x8 ;; [96, 75, 160, 8] +0x000007bc ADDI R18 R59 0x18 ;; [80, 75, 176, 24] +0x000007c0 MCPI R18 $writable 0x10 ;; [96, 73, 0, 16] +0x000007c4 LW $writable R59 0x3 ;; [93, 67, 176, 3] +0x000007c8 LW R18 R59 0x4 ;; [93, 75, 176, 4] +0x000007cc SW R59 $writable 0x0 ;; [95, 237, 0, 0] +0x000007d0 SW R59 R18 0x1 ;; [95, 237, 32, 1] +0x000007d4 LW $writable R59 0x0 ;; [93, 67, 176, 0] +0x000007d8 ADDI R18 R59 0x10 ;; [80, 75, 176, 16] +0x000007dc MOVI R19 0x3 ;; [114, 76, 0, 3] +0x000007e0 MEQ $writable R18 $writable R19 ;; [41, 65, 36, 19] +0x000007e4 MOVE R61 $writable ;; [26, 245, 0, 0] +0x000007e8 CFSI 0x28 ;; [146, 0, 0, 40] +0x000007ec MOVE R62 R17 ;; [26, 249, 16, 0] +0x000007f0 POPH 0x80000 ;; [152, 8, 0, 0] +0x000007f4 POPL 0xf ;; [151, 0, 0, 15] +0x000007f8 JAL $zero R62 0x0 ;; [153, 3, 224, 0] +0x000007fc NOOP ;; [71, 0, 0, 0] .data_section: -0x000007d8 .word i3647243719605075626, as hex be bytes ([32, 9D, 9C, D6, CC, 55, BE, AA]) -0x000007e0 .bytes as hex ([73, 65, 74]), len i3, as ascii "set" -0x000007e8 .bytes as hex ([61, 64, 64]), len i3, as ascii "add" -0x000007f0 .word i18446744073709486084, as hex be bytes ([FF, FF, FF, FF, FF, FF, 00, 04]) -0x000007f8 .word i14757395258967588866, as hex be bytes ([CC, CC, CC, CC, CC, CC, 00, 02]) +0x00000800 .word i3647243719605075626, as hex be bytes ([32, 9D, 9C, D6, CC, 55, BE, AA]) +0x00000808 .bytes as hex ([73, 65, 74]), len i3, as ascii "set" +0x00000810 .bytes as hex ([61, 64, 64]), len i3, as ascii "add" +0x00000818 .word i18446744073709486084, as hex be bytes ([FF, FF, FF, FF, FF, FF, 00, 04]) +0x00000820 .word i14757395258967588866, as hex be bytes ([CC, CC, CC, CC, CC, CC, 00, 02]) ;; --- END OF TARGET BYTECODE --- - Finished release [optimized + fuel] target(s) [2.048 KB] in ??? + Finished release [optimized + fuel] target(s) [2.088 KB] in ??? diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panic_handling_in_unit_tests/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panic_handling_in_unit_tests/stdout.snap index 053cd575780..00eda9497c0 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panic_handling_in_unit_tests/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panic_handling_in_unit_tests/stdout.snap @@ -1,5 +1,6 @@ --- source: test/src/snapshot/mod.rs +snapshot_kind: text --- > forc test --path test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panic_handling_in_unit_tests --logs --raw-logs --dbgs --reverts passing_ exit status: 0 @@ -18,12 +19,12 @@ warning: Error message is empty ____ Compiled script "panic_handling_in_unit_tests" with 1 warning. - Finished debug [unoptimized + fuel] target(s) [8.72 KB] in ??? + Finished debug [unoptimized + fuel] target(s) [8.168 KB] in ??? Running 2 tests, filtered 18 tests tested -- panic_handling_in_unit_tests - test passing_dbgs_and_logs ... ok (???, 4424 gas) + test passing_dbgs_and_logs ... ok (???, 4362 gas) debug output: [src/main.sw:23:13] "This is a passing test containing `__dbg` outputs." = "This is a passing test containing `__dbg` outputs." [src/main.sw:25:13] x = 42 @@ -31,7 +32,7 @@ tested -- panic_handling_in_unit_tests AsciiString { data: "This is a log from the passing test." }, log rb: 10098701174489624218 42, log rb: 1515152261580153489 raw logs: -[{"LogData":{"data":"0000000000000024546869732069732061206c6f672066726f6d207468652070617373696e6720746573742e","digest":"29d742ad9093cdf81404ff756467a44448729b85ab3c0d65197829fb61d2dd29","id":"0000000000000000000000000000000000000000000000000000000000000000","is":10368,"len":44,"pc":10820,"ptr":67107840,"ra":0,"rb":10098701174489624218}},{"LogData":{"data":"000000000000002a","digest":"a6bb133cb1e3638ad7b8a3ff0539668e9e56f9b850ef1b2a810f5422eaa6c323","id":"0000000000000000000000000000000000000000000000000000000000000000","is":10368,"len":8,"pc":15948,"ptr":67107832,"ra":0,"rb":1515152261580153489}}] +[{"LogData":{"data":"0000000000000024546869732069732061206c6f672066726f6d207468652070617373696e6720746573742e","digest":"29d742ad9093cdf81404ff756467a44448729b85ab3c0d65197829fb61d2dd29","id":"0000000000000000000000000000000000000000000000000000000000000000","is":10368,"len":44,"pc":10820,"ptr":67107840,"ra":0,"rb":10098701174489624218}},{"LogData":{"data":"000000000000002a","digest":"a6bb133cb1e3638ad7b8a3ff0539668e9e56f9b850ef1b2a810f5422eaa6c323","id":"0000000000000000000000000000000000000000000000000000000000000000","is":10368,"len":8,"pc":15672,"ptr":67107832,"ra":0,"rb":1515152261580153489}}] test passing_no_dbgs_or_logs ... ok (???, 74 gas) test result: OK. 2 passed; 0 failed; finished in ??? @@ -55,31 +56,31 @@ warning: Error message is empty ____ Compiled script "panic_handling_in_unit_tests" with 1 warning. - Finished debug [unoptimized + fuel] target(s) [8.72 KB] in ??? + Finished debug [unoptimized + fuel] target(s) [8.168 KB] in ??? Running 20 tests, filtered 0 tests tested -- panic_handling_in_unit_tests - test passing_dbgs_and_logs ... ok (???, 4424 gas) + test passing_dbgs_and_logs ... ok (???, 4362 gas) test passing_no_dbgs_or_logs ... ok (???, 74 gas) test failing_revert_intrinsic ... FAILED (???, 79 gas) - test failing_revert_function_with_dbgs_and_logs ... FAILED (???, 4500 gas) + test failing_revert_function_with_dbgs_and_logs ... FAILED (???, 4470 gas) test failing_error_signal_assert ... FAILED (???, 792 gas) - test failing_error_signal_assert_eq ... FAILED (???, 3104 gas) - test failing_error_signal_assert_ne ... FAILED (???, 3094 gas) - test failing_error_signal_require_str_error ... FAILED (???, 1006 gas) - test failing_error_signal_require_enum_error ... FAILED (???, 1133 gas) - test failing_panic_no_arg ... FAILED (???, 657 gas) - test failing_panic_unit_arg ... FAILED (???, 657 gas) + test failing_error_signal_assert_eq ... FAILED (???, 3010 gas) + test failing_error_signal_assert_ne ... FAILED (???, 3000 gas) + test failing_error_signal_require_str_error ... FAILED (???, 976 gas) + test failing_error_signal_require_enum_error ... FAILED (???, 1103 gas) + test failing_panic_no_arg ... FAILED (???, 771 gas) + test failing_panic_unit_arg ... FAILED (???, 771 gas) test failing_panic_const_eval_str_arg ... FAILED (???, 79 gas) test failing_panic_const_eval_empty_str_arg ... FAILED (???, 79 gas) test failing_panic_const_eval_whitespace_str_arg ... FAILED (???, 79 gas) - test failing_panic_non_const_eval_str_arg ... FAILED (???, 987 gas) - test failing_panic_non_const_eval_str_empty_arg ... FAILED (???, 969 gas) - test failing_panic_non_const_eval_str_whitespace_arg ... FAILED (???, 973 gas) - test failing_panic_error_enum_arg ... FAILED (???, 1103 gas) - test failing_panic_error_enum_arg_with_empty_msg ... FAILED (???, 1260 gas) - test failing_panic_error_enum_arg_with_whitespace_msg ... FAILED (???, 1289 gas) + test failing_panic_non_const_eval_str_arg ... FAILED (???, 957 gas) + test failing_panic_non_const_eval_str_empty_arg ... FAILED (???, 939 gas) + test failing_panic_non_const_eval_str_whitespace_arg ... FAILED (???, 943 gas) + test failing_panic_error_enum_arg ... FAILED (???, 1073 gas) + test failing_panic_error_enum_arg_with_empty_msg ... FAILED (???, 1230 gas) + test failing_panic_error_enum_arg_with_whitespace_msg ... FAILED (???, 1259 gas) failures: test failing_revert_intrinsic, "test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panic_handling_in_unit_tests/src/main.sw":34 @@ -149,7 +150,7 @@ AsciiString { data: "We will get logged the asserted values and this message." } "id": "0000000000000000000000000000000000000000000000000000000000000000", "is": 10368, "len": 8, - "pc": 15948, + "pc": 15672, "ptr": 67107832, "ra": 0, "rb": 1515152261580153489 @@ -162,7 +163,7 @@ AsciiString { data: "We will get logged the asserted values and this message." } "id": "0000000000000000000000000000000000000000000000000000000000000000", "is": 10368, "len": 8, - "pc": 15948, + "pc": 15672, "ptr": 67107824, "ra": 0, "rb": 1515152261580153489 @@ -202,7 +203,7 @@ AsciiString { data: "We will get logged the asserted values and this message." } "id": "0000000000000000000000000000000000000000000000000000000000000000", "is": 10368, "len": 8, - "pc": 15948, + "pc": 15672, "ptr": 67107832, "ra": 0, "rb": 1515152261580153489 @@ -215,7 +216,7 @@ AsciiString { data: "We will get logged the asserted values and this message." } "id": "0000000000000000000000000000000000000000000000000000000000000000", "is": 10368, "len": 8, - "pc": 15948, + "pc": 15672, "ptr": 67107824, "ra": 0, "rb": 1515152261580153489 @@ -281,13 +282,13 @@ B(true), log rb: 8516346929033386016 [ { "LogData": { - "data": "00", - "digest": "6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d", + "data": "", + "digest": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "id": "0000000000000000000000000000000000000000000000000000000000000000", "is": 10368, - "len": 1, + "len": 0, "pc": 13204, - "ptr": 67108863, + "ptr": 67107840, "ra": 0, "rb": 3330666440490685604 } @@ -306,13 +307,13 @@ B(true), log rb: 8516346929033386016 [ { "LogData": { - "data": "00", - "digest": "6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d", + "data": "", + "digest": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "id": "0000000000000000000000000000000000000000000000000000000000000000", "is": 10368, - "len": 1, + "len": 0, "pc": 13256, - "ptr": 67108863, + "ptr": 67107840, "ra": 0, "rb": 3330666440490685604 } diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_contract/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_contract/stdout.snap index 28d644621b1..078424290d6 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_contract/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_contract/stdout.snap @@ -1,5 +1,6 @@ --- source: test/src/snapshot/mod.rs +snapshot_kind: text --- > forc test --path test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_contract --test-threads 1 --logs --reverts exit status: 0 @@ -8,17 +9,17 @@ output: Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling library panicking_lib (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib) Compiling contract panicking_contract (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_contract) - Finished debug [unoptimized + fuel] target(s) [9.088 KB] in ??? + Finished debug [unoptimized + fuel] target(s) [8.656 KB] in ??? Running 12 tests, filtered 0 tests tested -- panicking_contract - test test_panicking_in_contract_self_impl ... ok (???, 11141 gas) + test test_panicking_in_contract_self_impl ... ok (???, 11201 gas) revert code: 828000000000000c ├─ panic message: panicking in contract self impl ├─ panicked: in ::panicking_in_contract_self_impl │ └─ at panicking_contract@1.2.3, src/main.sw:22:9 - test test_directly_panicking_method ... ok (???, 12176 gas) + test test_directly_panicking_method ... ok (???, 12206 gas) revert code: 820000000000000b ├─ panic message: Error C. ├─ panic value: C(true) @@ -26,7 +27,7 @@ tested -- panicking_contract │ └─ at panicking_contract@1.2.3, src/main.sw:28:9 decoded log values: C(true), log rb: 5503570629422409978 - test test_nested_panic_inlined ... ok (???, 12910 gas) + test test_nested_panic_inlined ... ok (???, 12940 gas) revert code: 8000000000c01001 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]) @@ -38,7 +39,7 @@ C(true), log rb: 5503570629422409978 └─ at panicking_contract@1.2.3, src/main.sw:32:9 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 5503570629422409978 - test test_nested_panic_inlined_same_revert_code ... ok (???, 12910 gas) + test test_nested_panic_inlined_same_revert_code ... ok (???, 12940 gas) revert code: 8000000000c01001 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]) @@ -50,7 +51,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_contract@1.2.3, src/main.sw:32:9 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 5503570629422409978 - test test_nested_panic_non_inlined ... ok (???, 13020 gas) + test test_nested_panic_non_inlined ... ok (???, 13050 gas) revert code: 8180000002804808 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -62,7 +63,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_contract@1.2.3, src/main.sw:40:9 decoded log values: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]), log rb: 5503570629422409978 - test test_nested_panic_non_inlined_same_revert_code ... ok (???, 13020 gas) + test test_nested_panic_non_inlined_same_revert_code ... ok (???, 13050 gas) revert code: 8180000002804808 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -74,7 +75,7 @@ E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { d └─ at panicking_contract@1.2.3, src/main.sw:40:9 decoded log values: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]), log rb: 5503570629422409978 - test test_generic_panic_with_unit ... ok (???, 11657 gas) + test test_generic_panic_with_unit ... ok (???, 11831 gas) revert code: 8100000000003806 ├─ panic value: () ├─ panicked: in panicking_lib::generic_panic @@ -83,7 +84,7 @@ E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { d └─ at panicking_contract@1.2.3, src/main.sw:48:9 decoded log values: (), log rb: 3330666440490685604 - test test_generic_panic_with_unit_same_revert_code ... ok (???, 11657 gas) + test test_generic_panic_with_unit_same_revert_code ... ok (???, 11831 gas) revert code: 8100000000003806 ├─ panic value: () ├─ panicked: in panicking_lib::generic_panic @@ -92,7 +93,7 @@ E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { d └─ at panicking_contract@1.2.3, src/main.sw:48:9 decoded log values: (), log rb: 3330666440490685604 - test test_generic_panic_with_str ... ok (???, 11960 gas) + test test_generic_panic_with_str ... ok (???, 11990 gas) revert code: 8080000000002804 ├─ panic message: generic panic with string ├─ panicked: in panicking_lib::generic_panic @@ -101,7 +102,7 @@ E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { d └─ at panicking_contract@1.2.3, src/main.sw:56:9 decoded log values: AsciiString { data: "generic panic with string" }, log rb: 10098701174489624218 - test test_generic_panic_with_different_str_same_revert_code ... ok (???, 12183 gas) + test test_generic_panic_with_different_str_same_revert_code ... ok (???, 12213 gas) revert code: 808000000000d019 ├─ panic message: generic panic with different string ├─ panicked: in panicking_lib::generic_panic @@ -110,7 +111,7 @@ AsciiString { data: "generic panic with string" }, log rb: 10098701174489624218 └─ at panicking_contract@1.2.3, src/main.sw:60:9 decoded log values: AsciiString { data: "generic panic with different string" }, log rb: 10098701174489624218 - test test_generic_panic_with_error_type_enum ... ok (???, 12071 gas) + test test_generic_panic_with_error_type_enum ... ok (???, 12101 gas) revert code: 830000000000700d ├─ panic message: Error A. ├─ panic value: A @@ -120,7 +121,7 @@ AsciiString { data: "generic panic with different string" }, log rb: 10098701174 └─ at panicking_contract@1.2.3, src/main.sw:64:9 decoded log values: A, log rb: 5503570629422409978 - test test_generic_panic_with_error_type_enum_different_variant_same_revert_code ... ok (???, 12340 gas) + test test_generic_panic_with_error_type_enum_different_variant_same_revert_code ... ok (???, 12370 gas) revert code: 830000000000e01b ├─ panic message: Error B. ├─ panic value: B(42) @@ -142,17 +143,17 @@ output: Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling library panicking_lib (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib) Compiling contract panicking_contract (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_contract) - Finished release [optimized + fuel] target(s) [6.496 KB] in ??? + Finished release [optimized + fuel] target(s) [6.472 KB] in ??? Running 12 tests, filtered 0 tests tested -- panicking_contract - test test_panicking_in_contract_self_impl ... ok (???, 10377 gas) + test test_panicking_in_contract_self_impl ... ok (???, 10464 gas) revert code: 8280000000000000 ├─ panic message: panicking in contract self impl └─ panicked: in ::panicking_in_contract_self_impl └─ at panicking_contract@1.2.3, src/main.sw:22:9 - test test_directly_panicking_method ... ok (???, 11297 gas) + test test_directly_panicking_method ... ok (???, 11384 gas) revert code: 8200000000000000 ├─ panic message: Error C. ├─ panic value: C(true) @@ -160,7 +161,7 @@ tested -- panicking_contract └─ at panicking_contract@1.2.3, src/main.sw:28:9 decoded log values: C(true), log rb: 5503570629422409978 - test test_nested_panic_inlined ... ok (???, 11953 gas) + test test_nested_panic_inlined ... ok (???, 12040 gas) revert code: 8000000000000000 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]) @@ -168,7 +169,7 @@ C(true), log rb: 5503570629422409978 └─ at panicking_lib, src/lib.sw:35:5 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 5503570629422409978 - test test_nested_panic_inlined_same_revert_code ... ok (???, 11953 gas) + test test_nested_panic_inlined_same_revert_code ... ok (???, 12040 gas) revert code: 8000000000000000 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]) @@ -176,7 +177,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_lib, src/lib.sw:35:5 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 5503570629422409978 - test test_nested_panic_non_inlined ... ok (???, 12009 gas) + test test_nested_panic_non_inlined ... ok (???, 12098 gas) revert code: 8180000000000000 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -184,7 +185,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_lib, src/lib.sw:41:9 decoded log values: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]), log rb: 5503570629422409978 - test test_nested_panic_non_inlined_same_revert_code ... ok (???, 12009 gas) + test test_nested_panic_non_inlined_same_revert_code ... ok (???, 12098 gas) revert code: 8180000000000000 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -192,35 +193,35 @@ E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { d └─ at panicking_lib, src/lib.sw:41:9 decoded log values: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]), log rb: 5503570629422409978 - test test_generic_panic_with_unit ... ok (???, 10863 gas) + test test_generic_panic_with_unit ... ok (???, 11046 gas) revert code: 8100000000000000 ├─ panic value: () └─ panicked: in panicking_lib::generic_panic └─ at panicking_lib, src/lib.sw:74:5 decoded log values: (), log rb: 3330666440490685604 - test test_generic_panic_with_unit_same_revert_code ... ok (???, 10863 gas) + test test_generic_panic_with_unit_same_revert_code ... ok (???, 11046 gas) revert code: 8100000000000000 ├─ panic value: () └─ panicked: in panicking_lib::generic_panic └─ at panicking_lib, src/lib.sw:74:5 decoded log values: (), log rb: 3330666440490685604 - test test_generic_panic_with_str ... ok (???, 11144 gas) + test test_generic_panic_with_str ... ok (???, 11231 gas) revert code: 8080000000000000 ├─ panic message: generic panic with string └─ panicked: in panicking_lib::generic_panic └─ at panicking_lib, src/lib.sw:74:5 decoded log values: AsciiString { data: "generic panic with string" }, log rb: 10098701174489624218 - test test_generic_panic_with_different_str_same_revert_code ... ok (???, 11227 gas) + test test_generic_panic_with_different_str_same_revert_code ... ok (???, 11314 gas) revert code: 8080000000000000 ├─ panic message: generic panic with different string └─ panicked: in panicking_lib::generic_panic └─ at panicking_lib, src/lib.sw:74:5 decoded log values: AsciiString { data: "generic panic with different string" }, log rb: 10098701174489624218 - test test_generic_panic_with_error_type_enum ... ok (???, 11202 gas) + test test_generic_panic_with_error_type_enum ... ok (???, 11289 gas) revert code: 8300000000000000 ├─ panic message: Error A. ├─ panic value: A @@ -228,7 +229,7 @@ AsciiString { data: "generic panic with different string" }, log rb: 10098701174 └─ at panicking_lib, src/lib.sw:74:5 decoded log values: A, log rb: 5503570629422409978 - test test_generic_panic_with_error_type_enum_different_variant_same_revert_code ... ok (???, 11349 gas) + test test_generic_panic_with_error_type_enum_different_variant_same_revert_code ... ok (???, 11436 gas) revert code: 8300000000000000 ├─ panic message: Error B. ├─ panic value: B(42) diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib/stdout.snap index 219f8ad09ec..e135261c0d9 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib/stdout.snap @@ -1,5 +1,6 @@ --- source: test/src/snapshot/mod.rs +snapshot_kind: text --- > forc test --path test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib --test-threads 1 --logs --reverts exit status: 0 @@ -7,12 +8,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling library panicking_lib (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib) - Finished debug [unoptimized + fuel] target(s) [7.824 KB] in ??? + Finished debug [unoptimized + fuel] target(s) [6.928 KB] in ??? Running 18 tests, filtered 0 tests tested -- panicking_lib - test test_nested_panic_inlined ... ok (???, 2006 gas) + test test_nested_panic_inlined ... ok (???, 1976 gas) revert code: 8000000000001001 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]) @@ -24,7 +25,7 @@ tested -- panicking_lib └─ at panicking_lib, src/lib.sw:55:5 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 2721958641300806892 - test test_nested_panic_inlined_same_revert_code ... ok (???, 2006 gas) + test test_nested_panic_inlined_same_revert_code ... ok (???, 1976 gas) revert code: 8000000000001801 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]) @@ -36,7 +37,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_lib, src/lib.sw:60:5 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 2721958641300806892 - test test_nested_panic_non_inlined ... ok (???, 2050 gas) + test test_nested_panic_non_inlined ... ok (???, 2020 gas) revert code: 8080000000002804 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -48,7 +49,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_lib, src/lib.sw:65:5 decoded log values: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]), log rb: 2721958641300806892 - test test_nested_panic_non_inlined_same_revert_code ... ok (???, 2050 gas) + test test_nested_panic_non_inlined_same_revert_code ... ok (???, 2020 gas) revert code: 8080000000003004 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -60,7 +61,7 @@ E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { d └─ at panicking_lib, src/lib.sw:70:5 decoded log values: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]), log rb: 2721958641300806892 - test test_generic_panic_with_unit ... ok (???, 673 gas) + test test_generic_panic_with_unit ... ok (???, 787 gas) revert code: 8100000000000007 ├─ panic value: () ├─ panicked: in panicking_lib::generic_panic @@ -69,7 +70,7 @@ E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { d └─ at panicking_lib, src/lib.sw:83:5 decoded log values: (), log rb: 3330666440490685604 - test test_generic_panic_with_unit_same_revert_code ... ok (???, 673 gas) + test test_generic_panic_with_unit_same_revert_code ... ok (???, 787 gas) revert code: 8100000000000008 ├─ panic value: () ├─ panicked: in panicking_lib::generic_panic @@ -78,7 +79,7 @@ E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { d └─ at panicking_lib, src/lib.sw:88:5 decoded log values: (), log rb: 3330666440490685604 - test test_generic_panic_with_str ... ok (???, 982 gas) + test test_generic_panic_with_str ... ok (???, 952 gas) revert code: 8180000000000009 ├─ panic message: generic panic with string ├─ panicked: in panicking_lib::generic_panic @@ -87,7 +88,7 @@ E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { d └─ at panicking_lib, src/lib.sw:93:5 decoded log values: AsciiString { data: "generic panic with string" }, log rb: 10098701174489624218 - test test_generic_panic_with_different_str_same_revert_code ... ok (???, 983 gas) + test test_generic_panic_with_different_str_same_revert_code ... ok (???, 953 gas) revert code: 818000000000000a ├─ panic message: generic panic different string ├─ panicked: in panicking_lib::generic_panic @@ -96,7 +97,7 @@ AsciiString { data: "generic panic with string" }, log rb: 10098701174489624218 └─ at panicking_lib, src/lib.sw:98:5 decoded log values: AsciiString { data: "generic panic different string" }, log rb: 10098701174489624218 - test test_generic_panic_with_error_type_enum_variant ... ok (???, 1019 gas) + test test_generic_panic_with_error_type_enum_variant ... ok (???, 989 gas) revert code: 820000000000000b ├─ panic message: Error A. ├─ panic value: A @@ -106,7 +107,7 @@ AsciiString { data: "generic panic different string" }, log rb: 1009870117448962 └─ at panicking_lib, src/lib.sw:103:5 decoded log values: A, log rb: 2721958641300806892 - test test_generic_panic_with_error_type_enum_different_variant_same_revert_code ... ok (???, 1019 gas) + test test_generic_panic_with_error_type_enum_different_variant_same_revert_code ... ok (???, 989 gas) revert code: 820000000000000c ├─ panic message: Error A. ├─ panic value: A @@ -116,14 +117,14 @@ A, log rb: 2721958641300806892 └─ at panicking_lib, src/lib.sw:108:5 decoded log values: A, log rb: 2721958641300806892 - test test_panic_without_arg ... ok (???, 657 gas) + test test_panic_without_arg ... ok (???, 771 gas) revert code: 8280000000000000 ├─ panic value: () └─ panicked: in panicking_lib::test_panic_without_arg └─ at panicking_lib, src/lib.sw:113:5 decoded log values: (), log rb: 3330666440490685604 - test test_panic_with_unit ... ok (???, 657 gas) + test test_panic_with_unit ... ok (???, 771 gas) revert code: 8300000000000000 ├─ panic value: () └─ panicked: in panicking_lib::test_panic_with_unit @@ -135,7 +136,7 @@ A, log rb: 2721958641300806892 ├─ panic message: panic with string └─ panicked: in panicking_lib::test_panic_with_str └─ at panicking_lib, src/lib.sw:123:5 - test test_panic_with_error_type_enum ... ok (???, 1219 gas) + test test_panic_with_error_type_enum ... ok (???, 1189 gas) revert code: 8400000000000000 ├─ panic message: Error C. ├─ panic value: C(true) @@ -143,28 +144,28 @@ A, log rb: 2721958641300806892 └─ at panicking_lib, src/lib.sw:128:5 decoded log values: C(true), log rb: 2721958641300806892 - test test_panic_with_generic_error_type_enum ... ok (???, 1082 gas) + test test_panic_with_generic_error_type_enum ... ok (???, 1050 gas) revert code: 8480000000000000 ├─ panic value: A(42) └─ panicked: in panicking_lib::test_panic_with_generic_error_type_enum └─ at panicking_lib, src/lib.sw:133:5 decoded log values: A(42), log rb: 12408470889216862137 - test test_panic_with_nested_generic_error_type ... ok (???, 1674 gas) + test test_panic_with_nested_generic_error_type ... ok (???, 1644 gas) revert code: 8500000000000000 ├─ panic value: B(B(C(true))) └─ panicked: in panicking_lib::test_panic_with_nested_generic_error_type └─ at panicking_lib, src/lib.sw:138:5 decoded log values: B(B(C(true))), log rb: 14988555917426256081 - test test_panic_with_generic_error_type_enum_with_abi_encode ... ok (???, 1082 gas) + test test_panic_with_generic_error_type_enum_with_abi_encode ... ok (???, 1050 gas) revert code: 8580000000000000 ├─ panic value: A(42) └─ panicked: in panicking_lib::test_panic_with_generic_error_type_enum_with_abi_encode └─ at panicking_lib, src/lib.sw:143:5 decoded log values: A(42), log rb: 17388243649088655852 - test test_panic_with_nested_generic_error_type_enum_with_abi_encode ... ok (???, 1674 gas) + test test_panic_with_nested_generic_error_type_enum_with_abi_encode ... ok (???, 1644 gas) revert code: 8600000000000000 ├─ panic value: B(B(C(true))) └─ panicked: in panicking_lib::test_panic_with_nested_generic_error_type_enum_with_abi_encode @@ -219,14 +220,14 @@ E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { d └─ at panicking_lib, src/lib.sw:41:9 decoded log values: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]), log rb: 2721958641300806892 - test test_generic_panic_with_unit ... ok (???, 599 gas) + test test_generic_panic_with_unit ... ok (???, 701 gas) revert code: 8100000000000000 ├─ panic value: () └─ panicked: in panicking_lib::generic_panic └─ at panicking_lib, src/lib.sw:74:5 decoded log values: (), log rb: 3330666440490685604 - test test_generic_panic_with_unit_same_revert_code ... ok (???, 599 gas) + test test_generic_panic_with_unit_same_revert_code ... ok (???, 701 gas) revert code: 8100000000000000 ├─ panic value: () └─ panicked: in panicking_lib::generic_panic @@ -263,14 +264,14 @@ A, log rb: 2721958641300806892 └─ at panicking_lib, src/lib.sw:74:5 decoded log values: A, log rb: 2721958641300806892 - test test_panic_without_arg ... ok (???, 599 gas) + test test_panic_without_arg ... ok (???, 701 gas) revert code: 8280000000000000 ├─ panic value: () └─ panicked: in panicking_lib::test_panic_without_arg └─ at panicking_lib, src/lib.sw:113:5 decoded log values: (), log rb: 3330666440490685604 - test test_panic_with_unit ... ok (???, 599 gas) + test test_panic_with_unit ... ok (???, 701 gas) revert code: 8300000000000000 ├─ panic value: () └─ panicked: in panicking_lib::test_panic_with_unit diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_script/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_script/stdout.snap index 5b6837626e2..157ee5bb111 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_script/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_script/stdout.snap @@ -1,5 +1,6 @@ --- source: test/src/snapshot/mod.rs +snapshot_kind: text --- > forc test --path test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_script --test-threads 1 --logs --reverts exit status: 0 @@ -8,12 +9,12 @@ output: Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling library panicking_lib (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib) Compiling script panicking_script (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_script) - Finished debug [unoptimized + fuel] target(s) [4.224 KB] in ??? + Finished debug [unoptimized + fuel] target(s) [3.84 KB] in ??? Running 11 tests, filtered 0 tests tested -- panicking_script - test test_panic_in_main ... ok (???, 1141 gas) + test test_panic_in_main ... ok (???, 1111 gas) revert code: 8000000000000000 ├─ panic message: Error C. ├─ panic value: C(true) @@ -21,7 +22,7 @@ tested -- panicking_script └─ at panicking_script, src/main.sw:6:5 decoded log values: C(true), log rb: 5503570629422409978 - test test_nested_panic_inlined ... ok (???, 1960 gas) + test test_nested_panic_inlined ... ok (???, 1930 gas) revert code: 8080000000001001 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]) @@ -33,7 +34,7 @@ C(true), log rb: 5503570629422409978 └─ at panicking_script, src/main.sw:16:5 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 5503570629422409978 - test test_nested_panic_inlined_same_revert_code ... ok (???, 1960 gas) + test test_nested_panic_inlined_same_revert_code ... ok (???, 1930 gas) revert code: 8080000000001801 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]) @@ -45,7 +46,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_script, src/main.sw:21:5 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 5503570629422409978 - test test_nested_panic_non_inlined ... ok (???, 2002 gas) + test test_nested_panic_non_inlined ... ok (???, 1972 gas) revert code: 8100000000002804 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -57,7 +58,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_script, src/main.sw:26:5 decoded log values: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]), log rb: 5503570629422409978 - test test_nested_panic_non_inlined_same_revert_code ... ok (???, 2002 gas) + test test_nested_panic_non_inlined_same_revert_code ... ok (???, 1972 gas) revert code: 8100000000003004 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -69,7 +70,7 @@ E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { d └─ at panicking_script, src/main.sw:31:5 decoded log values: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]), log rb: 5503570629422409978 - test test_generic_panic_with_unit ... ok (???, 661 gas) + test test_generic_panic_with_unit ... ok (???, 775 gas) revert code: 8180000000000007 ├─ panic value: () ├─ panicked: in panicking_lib::generic_panic @@ -78,7 +79,7 @@ E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { d └─ at panicking_script, src/main.sw:36:5 decoded log values: (), log rb: 3330666440490685604 - test test_generic_panic_with_unit_same_revert_code ... ok (???, 661 gas) + test test_generic_panic_with_unit_same_revert_code ... ok (???, 775 gas) revert code: 8180000000000008 ├─ panic value: () ├─ panicked: in panicking_lib::generic_panic @@ -87,7 +88,7 @@ E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { d └─ at panicking_script, src/main.sw:41:5 decoded log values: (), log rb: 3330666440490685604 - test test_generic_panic_with_str ... ok (???, 982 gas) + test test_generic_panic_with_str ... ok (???, 952 gas) revert code: 8200000000000009 ├─ panic message: generic panic with string ├─ panicked: in panicking_lib::generic_panic @@ -96,7 +97,7 @@ E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { d └─ at panicking_script, src/main.sw:46:5 decoded log values: AsciiString { data: "generic panic with string" }, log rb: 10098701174489624218 - test test_generic_panic_with_different_str_same_revert_code ... ok (???, 985 gas) + test test_generic_panic_with_different_str_same_revert_code ... ok (???, 955 gas) revert code: 820000000000000a ├─ panic message: generic panic with different string ├─ panicked: in panicking_lib::generic_panic @@ -105,7 +106,7 @@ AsciiString { data: "generic panic with string" }, log rb: 10098701174489624218 └─ at panicking_script, src/main.sw:51:5 decoded log values: AsciiString { data: "generic panic with different string" }, log rb: 10098701174489624218 - test test_generic_panic_with_error_type_enum ... ok (???, 971 gas) + test test_generic_panic_with_error_type_enum ... ok (???, 941 gas) revert code: 828000000000000b ├─ panic message: Error A. ├─ panic value: A @@ -115,7 +116,7 @@ AsciiString { data: "generic panic with different string" }, log rb: 10098701174 └─ at panicking_script, src/main.sw:56:5 decoded log values: A, log rb: 5503570629422409978 - test test_generic_panic_with_error_type_enum_different_variant_same_revert_code ... ok (???, 1108 gas) + test test_generic_panic_with_error_type_enum_different_variant_same_revert_code ... ok (???, 1078 gas) revert code: 828000000000000c ├─ panic message: Error B. ├─ panic value: B(42) @@ -137,7 +138,7 @@ output: Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling library panicking_lib (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib) Compiling script panicking_script (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_script) - Finished release [optimized + fuel] target(s) [3.216 KB] in ??? + Finished release [optimized + fuel] target(s) [3.208 KB] in ??? Running 11 tests, filtered 0 tests tested -- panicking_script @@ -182,14 +183,14 @@ E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { d └─ at panicking_lib, src/lib.sw:41:9 decoded log values: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]), log rb: 5503570629422409978 - test test_generic_panic_with_unit ... ok (???, 591 gas) + test test_generic_panic_with_unit ... ok (???, 687 gas) revert code: 8180000000000000 ├─ panic value: () └─ panicked: in panicking_lib::generic_panic └─ at panicking_lib, src/lib.sw:74:5 decoded log values: (), log rb: 3330666440490685604 - test test_generic_panic_with_unit_same_revert_code ... ok (???, 591 gas) + test test_generic_panic_with_unit_same_revert_code ... ok (???, 687 gas) revert code: 8180000000000000 ├─ panic value: () └─ panicked: in panicking_lib::generic_panic diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/panic_in_non_statement_positions/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/panic_in_non_statement_positions/stdout.snap index ae1fdd7d81a..69823175843 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/panic_in_non_statement_positions/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/panic_in_non_statement_positions/stdout.snap @@ -1,5 +1,6 @@ --- source: test/src/snapshot/mod.rs +snapshot_kind: text --- > forc test --path test/src/e2e_vm_tests/test_programs/should_pass/panic_in_non_statement_positions --logs --test-threads 1 exit status: 0 @@ -286,57 +287,57 @@ warning ____ Compiled library "panic_in_non_statement_positions" with 23 warnings. - Finished debug [unoptimized + fuel] target(s) [1.984 KB] in ??? + Finished debug [unoptimized + fuel] target(s) [1.856 KB] in ??? Running 16 tests, filtered 0 tests tested -- panic_in_non_statement_positions - test in_init ... ok (???, 675 gas) + test in_init ... ok (???, 1015 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_array ... ok (???, 675 gas) + test in_array ... ok (???, 1015 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_length_1_array ... ok (???, 675 gas) + test in_length_1_array ... ok (???, 1015 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_length_2_array_first ... ok (???, 675 gas) + test in_length_2_array_first ... ok (???, 1015 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_length_2_array_second ... ok (???, 675 gas) + test in_length_2_array_second ... ok (???, 1015 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_tuple ... ok (???, 675 gas) + test in_tuple ... ok (???, 1015 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_struct ... ok (???, 675 gas) + test in_struct ... ok (???, 1015 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_parentheses ... ok (???, 675 gas) + test in_parentheses ... ok (???, 1015 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_if_condition ... ok (???, 675 gas) + test in_if_condition ... ok (???, 1015 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_while_condition ... ok (???, 675 gas) + test in_while_condition ... ok (???, 1015 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_enum ... ok (???, 675 gas) + test in_enum ... ok (???, 1015 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_enum_multivariant ... ok (???, 675 gas) + test in_enum_multivariant ... ok (???, 1015 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_fun_arg ... ok (???, 675 gas) + test in_fun_arg ... ok (???, 1015 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_lazy_and ... ok (???, 675 gas) + test in_lazy_and ... ok (???, 1015 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_lazy_or ... ok (???, 675 gas) + test in_lazy_or ... ok (???, 1015 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_match_scrutinee ... ok (???, 675 gas) + test in_match_scrutinee ... ok (???, 1015 gas) decoded log values: E(42), log rb: 5087777005172090899 diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call/stdout.snap index 5bdfdeed818..7d34101c64d 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call/stdout.snap @@ -1,84 +1,71 @@ --- source: test/src/snapshot/mod.rs +snapshot_kind: text --- > forc test --path test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call --release --experimental const_generics -exit status: 101 +exit status: 0 output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [25.064 KB] in ??? + Finished release [optimized + fuel] target(s) [26.672 KB] in ??? Running 29 tests, filtered 0 tests tested -- const_of_contract_call - test cost_of_in_bool ... ok (???, 11883 gas) - test cost_of_in_u8 ... ok (???, 11848 gas) - test cost_of_in_u16 ... ok (???, 12160 gas) - test cost_of_in_u32 ... ok (???, 12413 gas) - test cost_of_in_u64 ... ok (???, 11619 gas) - test cost_of_in_u256 ... ok (???, 11700 gas) - test cost_of_in_b256 ... ok (???, 11682 gas) - test cost_of_in_str_0 ... ok (???, 11736 gas) - test cost_of_in_str_1 ... ok (???, 12331 gas) - test cost_of_in_str_8 ... ok (???, 11871 gas) - test cost_of_in_str_16 ... ok (???, 11864 gas) - test cost_of_in_str_32 ... ok (???, 11878 gas) - test cost_of_in_array_0 ... FAILED (???, 11499 gas) - test cost_of_in_array_1 ... ok (???, 11764 gas) - test cost_of_in_array_8 ... ok (???, 12953 gas) - test cost_of_in_array_16 ... ok (???, 12963 gas) - test cost_of_in_array_32 ... ok (???, 14232 gas) - test cost_of_in_array_64 ... ok (???, 16762 gas) - test cost_of_in_tuple_0 ... ok (???, 11454 gas) - test cost_of_in_tuple_1 ... ok (???, 11760 gas) - test cost_of_in_tuple_2 ... ok (???, 11835 gas) - test cost_of_in_tuple_3 ... ok (???, 11877 gas) - test cost_of_in_tuple_4 ... ok (???, 11833 gas) - test in_struct_u64 ... ok (???, 11771 gas) - test in_struct_u64_u64 ... ok (???, 11822 gas) - test in_struct_u64_u64_u64 ... ok (???, 11871 gas) - test in_enum_u64 ... ok (???, 11751 gas) - test in_enum_u64_u64 ... ok (???, 11748 gas) - test in_enum_u64_u64_u64 ... ok (???, 11764 gas) - - failures: - test cost_of_in_array_0, "test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call/src/main.sw":347 - revert code: 0 - - - -test result: FAILED. 28 passed; 1 failed; finished in ??? + test cost_of_in_bool ... ok (???, 11683 gas) + test cost_of_in_u8 ... ok (???, 11496 gas) + test cost_of_in_u16 ... ok (???, 11903 gas) + test cost_of_in_u32 ... ok (???, 12156 gas) + test cost_of_in_u64 ... ok (???, 11534 gas) + test cost_of_in_u256 ... ok (???, 11684 gas) + test cost_of_in_b256 ... ok (???, 11666 gas) + test cost_of_in_str_0 ... ok (???, 11893 gas) + test cost_of_in_str_1 ... ok (???, 12072 gas) + test cost_of_in_str_8 ... ok (???, 12091 gas) + test cost_of_in_str_16 ... ok (???, 12084 gas) + test cost_of_in_str_32 ... ok (???, 12098 gas) + test cost_of_in_array_0 ... ok (???, 11520 gas) + test cost_of_in_array_1 ... ok (???, 11798 gas) + test cost_of_in_array_8 ... ok (???, 13591 gas) + test cost_of_in_array_16 ... ok (???, 14481 gas) + test cost_of_in_array_32 ... ok (???, 17367 gas) + test cost_of_in_array_64 ... ok (???, 23177 gas) + test cost_of_in_tuple_0 ... ok (???, 11516 gas) + test cost_of_in_tuple_1 ... ok (???, 11999 gas) + test cost_of_in_tuple_2 ... ok (???, 12277 gas) + test cost_of_in_tuple_3 ... ok (???, 12529 gas) + test cost_of_in_tuple_4 ... ok (???, 12831 gas) + test in_struct_u64 ... ok (???, 11985 gas) + test in_struct_u64_u64 ... ok (???, 12264 gas) + test in_struct_u64_u64_u64 ... ok (???, 12523 gas) + test in_enum_u64 ... ok (???, 12338 gas) + test in_enum_u64_u64 ... ok (???, 12343 gas) + test in_enum_u64_u64_u64 ... ok (???, 12359 gas) + +test result: OK. 29 passed; 0 failed; finished in ??? Finished in ??? -error: Some tests failed. > Block: ARRAY0 > replace-file src/main.sw "fn cost_of_in" "fn isolated_cost_of_in" > forc test --path test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call --release --experimental const_generics -exit status: 101 +exit status: 0 output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [952 B] in ??? + Finished release [optimized + fuel] target(s) [1.216 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_array_0 ... FAILED (???, 10293 gas) - - failures: - test isolated_cost_of_in_array_0, "test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call/src/main.sw":175 - revert code: 0 - + test isolated_cost_of_in_array_0 ... ok (???, 10398 gas) - -test result: FAILED. 0 passed; 1 failed; finished in ??? +test result: OK. 1 passed; 0 failed; finished in ??? Finished in ??? -error: Some tests failed. > Block: ARRAY1 > replace-file src/main.sw "fn cost_of_in" "fn isolated_cost_of_in" @@ -89,12 +76,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.096 KB] in ??? + Finished release [optimized + fuel] target(s) [1.384 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_array_1 ... ok (???, 10540 gas) + test isolated_cost_of_in_array_1 ... ok (???, 10617 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -109,12 +96,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.12 KB] in ??? + Finished release [optimized + fuel] target(s) [1.416 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_array_16 ... ok (???, 11742 gas) + test isolated_cost_of_in_array_16 ... ok (???, 12657 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -129,12 +116,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.12 KB] in ??? + Finished release [optimized + fuel] target(s) [1.416 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_array_32 ... ok (???, 13003 gas) + test isolated_cost_of_in_array_32 ... ok (???, 14816 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -149,12 +136,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.12 KB] in ??? + Finished release [optimized + fuel] target(s) [1.472 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_array_64 ... ok (???, 15527 gas) + test isolated_cost_of_in_array_64 ... ok (???, 19160 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -169,12 +156,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.248 KB] in ??? + Finished release [optimized + fuel] target(s) [1.544 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_array_8 ... ok (???, 11726 gas) + test isolated_cost_of_in_array_8 ... ok (???, 12128 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -189,12 +176,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.032 KB] in ??? + Finished release [optimized + fuel] target(s) [1.256 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_b256 ... ok (???, 10489 gas) + test isolated_cost_of_in_b256 ... ok (???, 10550 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -209,12 +196,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.376 KB] in ??? + Finished release [optimized + fuel] target(s) [1.192 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_bool ... ok (???, 10663 gas) + test isolated_cost_of_in_bool ... ok (???, 10534 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -229,12 +216,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.064 KB] in ??? + Finished release [optimized + fuel] target(s) [1.504 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test in_enum_u64 ... ok (???, 10504 gas) + test in_enum_u64 ... ok (???, 11131 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -249,12 +236,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.104 KB] in ??? + Finished release [optimized + fuel] target(s) [1.608 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test in_enum_u64_u64 ... ok (???, 10516 gas) + test in_enum_u64_u64 ... ok (???, 11161 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -269,12 +256,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.176 KB] in ??? + Finished release [optimized + fuel] target(s) [1.752 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test in_enum_u64_u64_u64 ... ok (???, 10524 gas) + test in_enum_u64_u64_u64 ... ok (???, 11182 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -289,12 +276,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [928 B] in ??? + Finished release [optimized + fuel] target(s) [1.184 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_str_0 ... ok (???, 10456 gas) + test isolated_cost_of_in_str_0 ... ok (???, 10662 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -309,12 +296,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.592 KB] in ??? + Finished release [optimized + fuel] target(s) [1.424 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_str_1 ... ok (???, 11006 gas) + test isolated_cost_of_in_str_1 ... ok (???, 10858 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -329,12 +316,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.144 KB] in ??? + Finished release [optimized + fuel] target(s) [1.472 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_str_16 ... ok (???, 10604 gas) + test isolated_cost_of_in_str_16 ... ok (???, 10877 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -349,12 +336,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.16 KB] in ??? + Finished release [optimized + fuel] target(s) [1.488 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_str_32 ... ok (???, 10611 gas) + test isolated_cost_of_in_str_32 ... ok (???, 10882 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -369,12 +356,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.112 KB] in ??? + Finished release [optimized + fuel] target(s) [1.44 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_str_8 ... ok (???, 10600 gas) + test isolated_cost_of_in_str_8 ... ok (???, 10873 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -389,12 +376,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.016 KB] in ??? + Finished release [optimized + fuel] target(s) [1.352 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test in_struct_u64 ... ok (???, 10454 gas) + test in_struct_u64 ... ok (???, 10744 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -409,12 +396,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.064 KB] in ??? + Finished release [optimized + fuel] target(s) [1.456 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test in_struct_u64_u64 ... ok (???, 10493 gas) + test in_struct_u64_u64 ... ok (???, 11072 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -429,12 +416,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.096 KB] in ??? + Finished release [optimized + fuel] target(s) [1.512 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test in_struct_u64_u64_u64 ... ok (???, 10530 gas) + test in_struct_u64_u64_u64 ... ok (???, 11335 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -449,12 +436,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [712 B] in ??? + Finished release [optimized + fuel] target(s) [832 B] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_tuple_0 ... ok (???, 10236 gas) + test isolated_cost_of_in_tuple_0 ... ok (???, 10321 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -469,12 +456,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [976 B] in ??? + Finished release [optimized + fuel] target(s) [1.312 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_tuple_1 ... ok (???, 10423 gas) + test isolated_cost_of_in_tuple_1 ... ok (???, 10713 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -489,12 +476,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.048 KB] in ??? + Finished release [optimized + fuel] target(s) [1.44 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_tuple_2 ... ok (???, 10492 gas) + test isolated_cost_of_in_tuple_2 ... ok (???, 11071 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -509,12 +496,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.08 KB] in ??? + Finished release [optimized + fuel] target(s) [1.496 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_tuple_3 ... ok (???, 10529 gas) + test isolated_cost_of_in_tuple_3 ... ok (???, 11335 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -529,12 +516,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.112 KB] in ??? + Finished release [optimized + fuel] target(s) [1.56 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_tuple_4 ... ok (???, 10564 gas) + test isolated_cost_of_in_tuple_4 ... ok (???, 11596 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -549,12 +536,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.448 KB] in ??? + Finished release [optimized + fuel] target(s) [1.28 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_u16 ... ok (???, 10932 gas) + test isolated_cost_of_in_u16 ... ok (???, 10783 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -569,12 +556,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.032 KB] in ??? + Finished release [optimized + fuel] target(s) [1.256 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_u256 ... ok (???, 10489 gas) + test isolated_cost_of_in_u256 ... ok (???, 10550 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -589,12 +576,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.56 KB] in ??? + Finished release [optimized + fuel] target(s) [1.384 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_u32 ... ok (???, 11175 gas) + test isolated_cost_of_in_u32 ... ok (???, 11026 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -609,12 +596,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [896 B] in ??? + Finished release [optimized + fuel] target(s) [952 B] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_u64 ... ok (???, 10377 gas) + test isolated_cost_of_in_u64 ... ok (???, 10362 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -629,12 +616,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.344 KB] in ??? + Finished release [optimized + fuel] target(s) [984 B] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_u8 ... ok (???, 10647 gas) + test isolated_cost_of_in_u8 ... ok (???, 10353 gas) test result: OK. 1 passed; 0 failed; finished in ??? From 48a20ee94a461910f4df87f6b848475fef503f99 Mon Sep 17 00:00:00 2001 From: Daniel Frederico Lins Leite Date: Thu, 20 Nov 2025 19:28:21 -0300 Subject: [PATCH 09/27] update tests --- .../json_abi_oracle_new_encoding.release.json | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_consts/json_abi_oracle_new_encoding.release.json b/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_consts/json_abi_oracle_new_encoding.release.json index de41503e97e..0a2f1027b93 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_consts/json_abi_oracle_new_encoding.release.json +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_consts/json_abi_oracle_new_encoding.release.json @@ -63,97 +63,97 @@ "concreteTypeId": "b760f44fa5965c2474a3b471467a22c43185152129295af588b022ae50b50903", "indirect": false, "name": "BOOL", - "offset": 4704 + "offset": 4472 }, { "concreteTypeId": "c89951a24c6ca28c13fd1cfdc646b2b656d69e61a92b91023be7eb58eb914b6b", "indirect": false, "name": "U8", - "offset": 4896 + "offset": 4664 }, { "concreteTypeId": "c89951a24c6ca28c13fd1cfdc646b2b656d69e61a92b91023be7eb58eb914b6b", "indirect": false, "name": "ANOTHER_U8", - "offset": 4632 + "offset": 4400 }, { "concreteTypeId": "29881aad8730c5ab11d275376323d8e4ff4179aae8ccb6c13fe4902137e162ef", "indirect": false, "name": "U16", - "offset": 4840 + "offset": 4608 }, { "concreteTypeId": "d7649d428b9ff33d188ecbf38a7e4d8fd167fa01b2e10fe9a8f9308e52f1d7cc", "indirect": false, "name": "U32", - "offset": 4880 + "offset": 4648 }, { "concreteTypeId": "d7649d428b9ff33d188ecbf38a7e4d8fd167fa01b2e10fe9a8f9308e52f1d7cc", "indirect": false, "name": "U64", - "offset": 4888 + "offset": 4656 }, { "concreteTypeId": "1b5759d94094368cfd443019e7ca5ec4074300e544e5ea993a979f5da627261e", "indirect": false, "name": "U256", - "offset": 4848 + "offset": 4616 }, { "concreteTypeId": "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b", "indirect": false, "name": "B256", - "offset": 4672 + "offset": 4440 }, { "concreteTypeId": "81fc10c4681a3271cf2d66b2ec6fbc8ed007a442652930844fcf11818c295bff", "indirect": false, "name": "CONFIGURABLE_STRUCT", - "offset": 4792 + "offset": 4560 }, { "concreteTypeId": "a2922861f03be8a650595dd76455b95383a61b46dd418f02607fa2e00dc39d5c", "indirect": false, "name": "CONFIGURABLE_ENUM_A", - "offset": 4712 + "offset": 4480 }, { "concreteTypeId": "a2922861f03be8a650595dd76455b95383a61b46dd418f02607fa2e00dc39d5c", "indirect": false, "name": "CONFIGURABLE_ENUM_B", - "offset": 4752 + "offset": 4520 }, { "concreteTypeId": "4926d35d1a5157936b0a29bc126b8aace6d911209a5c130e9b716b0c73643ea6", "indirect": false, "name": "ARRAY_BOOL", - "offset": 4640 + "offset": 4408 }, { "concreteTypeId": "776fb5a3824169d6736138565fdc20aad684d9111266a5ff6d5c675280b7e199", "indirect": false, "name": "ARRAY_U64", - "offset": 4648 + "offset": 4416 }, { "concreteTypeId": "c998ca9a5f221fe7b5c66ae70c8a9562b86d964408b00d17f883c906bc1fe4be", "indirect": false, "name": "TUPLE_BOOL_U64", - "offset": 4824 + "offset": 4592 }, { "concreteTypeId": "94f0fa95c830be5e4f711963e83259fe7e8bc723278ab6ec34449e791a99b53a", "indirect": false, "name": "STR_4", - "offset": 4816 + "offset": 4584 }, { "concreteTypeId": "c89951a24c6ca28c13fd1cfdc646b2b656d69e61a92b91023be7eb58eb914b6b", "indirect": false, "name": "NOT_USED", - "offset": 4808 + "offset": 4576 } ], "encodingVersion": "1", From 83f7bd0a18329570e06dfedb7eaa3ed632245056 Mon Sep 17 00:00:00 2001 From: Daniel Frederico Lins Leite Date: Thu, 20 Nov 2025 20:09:36 -0300 Subject: [PATCH 10/27] update tests --- .../u256/u256_abi/json_abi_oracle_new_encoding.release.json | 2 +- test/update-contract-ids.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/u256/u256_abi/json_abi_oracle_new_encoding.release.json b/test/src/e2e_vm_tests/test_programs/should_pass/language/u256/u256_abi/json_abi_oracle_new_encoding.release.json index 99f2b158158..a5ce1fa3e6b 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/u256/u256_abi/json_abi_oracle_new_encoding.release.json +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/u256/u256_abi/json_abi_oracle_new_encoding.release.json @@ -10,7 +10,7 @@ "concreteTypeId": "1b5759d94094368cfd443019e7ca5ec4074300e544e5ea993a979f5da627261e", "indirect": false, "name": "SOME_U256", - "offset": 384 + "offset": 304 } ], "encodingVersion": "1", diff --git a/test/update-contract-ids.sh b/test/update-contract-ids.sh index c4fa4b41647..809d08bd6e2 100755 --- a/test/update-contract-ids.sh +++ b/test/update-contract-ids.sh @@ -72,7 +72,7 @@ $grep --include \*.sw -Hno "// AUTO-CONTRACT-ID" . -R | while read line ; do echo -e "${BOLD_WHITE}$PROJ${NC}" pushd "$FOLDER/.." >> /dev/null - CONTRACT_ID=$(cargo r -p forc --release -- contract-id --path $CONTRACT_ARGS 2> /dev/null | $grep -oP '0x[a-zA-Z0-9]{64}') + CONTRACT_ID=$(/home/xunilrj/sway/target/release/forc contract-id --path $CONTRACT_ARGS 2> /dev/null | $grep -oP '0x[a-zA-Z0-9]{64}') if [[ $CONTRACT_ID ]]; then popd >> /dev/null @@ -105,7 +105,7 @@ $grep --include \*.sw -Hno "// AUTO-CONTRACT-ID" . -R | while read line ; do fi else echo -e " ${BOLD_RED}error${NC}" - cargo r -p forc --release -- contract-id --release + /home/xunilrj/sway/target/release/forc contract-id --release popd >> /dev/null fi fi From 94cb3917cba9224c942e551f5e27063e4ef2024c Mon Sep 17 00:00:00 2001 From: Daniel Frederico Lins Leite Date: Thu, 20 Nov 2025 20:10:40 -0300 Subject: [PATCH 11/27] update tests --- .../array_of_structs_caller/src/main.sw | 2 +- .../require_contract_deployment/asset_ops_test/src/main.sw | 4 ++-- .../require_contract_deployment/bal_opcode/src/main.sw | 2 +- .../call_abi_with_tuples/src/main.sw | 2 +- .../call_basic_storage/src/main.sw | 2 +- .../call_contract_with_type_aliases/src/main.sw | 2 +- .../call_increment_contract/src/main.sw | 2 +- .../require_contract_deployment/call_storage_enum/src/main.sw | 2 +- .../require_contract_deployment/caller_auth_test/src/main.sw | 2 +- .../caller_context_test/src/main.sw | 2 +- .../nested_struct_args_caller/src/main.sw | 2 +- .../storage_access_caller/src/main.sw | 2 +- 12 files changed, 13 insertions(+), 13 deletions(-) diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/array_of_structs_caller/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/array_of_structs_caller/src/main.sw index 1edcc889e75..1d8562bb38a 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/array_of_structs_caller/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/array_of_structs_caller/src/main.sw @@ -6,7 +6,7 @@ use std::hash::*; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0x14ed3cd06c2947248f69d54bfa681fe40d26267be84df7e19e253622b7921bbe; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0x86d1768b626182f734e91a9f5329519485e8afbae7a5ec3bf772c8c6b7ccff19; // AUTO-CONTRACT-ID ../../test_contracts/array_of_structs_contract --release +const CONTRACT_ID = 0x1e1d89d5875879e9808a9aaa6355daf06caab07644c9e6e017cee6978714fe3e; // AUTO-CONTRACT-ID ../../test_contracts/array_of_structs_contract --release fn get_address() -> Option { Some(CONTRACT_ID.into()) diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/asset_ops_test/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/asset_ops_test/src/main.sw index 1d7d058f6a0..5aeba8134f9 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/asset_ops_test/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/asset_ops_test/src/main.sw @@ -9,12 +9,12 @@ use test_fuel_coin_abi::*; #[cfg(experimental_new_encoding = false)] const FUEL_COIN_CONTRACT_ID = 0xec2277ebe007ade87e3d797c3b1e070dcd542d5ef8f038b471f262ef9cebc87c; #[cfg(experimental_new_encoding = true)] -const FUEL_COIN_CONTRACT_ID = 0x445492d9a4b189add3229725dd4be67335748feafa80de945e03616ae915548f; // AUTO-CONTRACT-ID ../../test_contracts/test_fuel_coin_contract --release +const FUEL_COIN_CONTRACT_ID = 0x019a2c24d20edd8a4e657f29f2ef0442886fad8d58fc8f148c4b4f7cf698f6f9; // AUTO-CONTRACT-ID ../../test_contracts/test_fuel_coin_contract --release #[cfg(experimental_new_encoding = false)] const BALANCE_CONTRACT_ID = 0xf6cd545152ac83225e8e7df2efb5c6fa6e37bc9b9e977b5ea8103d28668925df; #[cfg(experimental_new_encoding = true)] -const BALANCE_CONTRACT_ID = 0x65edc923c4978fdeb1735cbc0b68da894ef962883dac36a072954ae71688cec5; // AUTO-CONTRACT-ID ../../test_contracts/balance_test_contract --release +const BALANCE_CONTRACT_ID = 0x5f15eb17bbad0c13e6c654891bb3026de5c5bab5a9e430c2512fb07cada88bde; // AUTO-CONTRACT-ID ../../test_contracts/balance_test_contract --release fn main() -> bool { let default_gas = 1_000_000_000_000; diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/bal_opcode/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/bal_opcode/src/main.sw index b9c23182408..41d4cd7aede 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/bal_opcode/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/bal_opcode/src/main.sw @@ -5,7 +5,7 @@ use balance_test_abi::BalanceTest; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0xf6cd545152ac83225e8e7df2efb5c6fa6e37bc9b9e977b5ea8103d28668925df; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0x65edc923c4978fdeb1735cbc0b68da894ef962883dac36a072954ae71688cec5; // AUTO-CONTRACT-ID ../../test_contracts/balance_test_contract --release +const CONTRACT_ID = 0x5f15eb17bbad0c13e6c654891bb3026de5c5bab5a9e430c2512fb07cada88bde; // AUTO-CONTRACT-ID ../../test_contracts/balance_test_contract --release fn main() -> bool { let balance_test_contract = abi(BalanceTest, CONTRACT_ID); diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_abi_with_tuples/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_abi_with_tuples/src/main.sw index e02babfc1e7..1889abd6d4e 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_abi_with_tuples/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_abi_with_tuples/src/main.sw @@ -6,7 +6,7 @@ use abi_with_tuples::{MyContract, Location, Person}; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0xfdc14550c8aee742cd556d0ab7f378b7be0d3b1e6e086c097352e94590d4ed02; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0x77af75bf25a0f69c8430eaae5adbd2dcca0e5a04ce635b0b0a8112f9b567831d; // AUTO-CONTRACT-ID ../../test_contracts/abi_with_tuples_contract --release +const CONTRACT_ID = 0x068c2cf8b47b8a5fdd51cc392f2da252dc5f37973e055022ba2bdf65d4e9fa2e; // AUTO-CONTRACT-ID ../../test_contracts/abi_with_tuples_contract --release fn main() -> bool { let the_abi = abi(MyContract, CONTRACT_ID); diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_basic_storage/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_basic_storage/src/main.sw index 9ca07d2bf2e..1024cb5ab20 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_basic_storage/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_basic_storage/src/main.sw @@ -4,7 +4,7 @@ use basic_storage_abi::{BasicStorage, Quad}; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0x94db39f409a31b9f2ebcadeea44378e419208c20de90f5d8e1e33dc1523754cb; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0x28dd1312e27716e2175cad2bed614ce2f930fe93dc250a5f57ae11adccc9ec76; // AUTO-CONTRACT-ID ../../test_contracts/basic_storage --release +const CONTRACT_ID = 0xd0d47213c317fcd05e487f919298c1cda7f4408f6837cac9a63738ebefd5105b; // AUTO-CONTRACT-ID ../../test_contracts/basic_storage --release fn main() -> u64 { let addr = abi(BasicStorage, CONTRACT_ID); diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_contract_with_type_aliases/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_contract_with_type_aliases/src/main.sw index 2b80f087698..5510a3fe600 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_contract_with_type_aliases/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_contract_with_type_aliases/src/main.sw @@ -5,7 +5,7 @@ use contract_with_type_aliases_abi::*; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0x0cbeb6efe3104b460be769bdc4ea101ebf16ccc16f2d7b667ec3e1c7f5ce35b5; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0x304b67013ddf3ed734c82f355bac758b59be9f2c1f9a220279f0480a3b2ea4c1; // AUTO-CONTRACT-ID ../../test_contracts/contract_with_type_aliases --release +const CONTRACT_ID = 0x4db16ddb761462809edf79a19b39b80997a2dbf6b5b4005fc242de45aafa8304; // AUTO-CONTRACT-ID ../../test_contracts/contract_with_type_aliases --release fn main() { let caller = abi(MyContract, CONTRACT_ID); diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_increment_contract/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_increment_contract/src/main.sw index 7055ffb1118..e83141b2635 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_increment_contract/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_increment_contract/src/main.sw @@ -6,7 +6,7 @@ use dynamic_contract_call::*; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0xd1b4047af7ef111c023ab71069e01dc2abfde487c0a0ce1268e4f447e6c6e4c2; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0x16654cef591c88cf55f8363e17d2beee62a11c2453b64fa30099d4e33e7fcd4f; // AUTO-CONTRACT-ID ../../test_contracts/increment_contract --release +const CONTRACT_ID = 0xd2ab0bac5310cec9f8efadf63b24f9f49c3bd575ed3d31ba6b1a7a597bc3f016; // AUTO-CONTRACT-ID ../../test_contracts/increment_contract --release fn main() -> bool { let the_abi = abi(Incrementor, CONTRACT_ID); diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_storage_enum/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_storage_enum/src/main.sw index e38cf87e97f..1b7166ec58c 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_storage_enum/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_storage_enum/src/main.sw @@ -5,7 +5,7 @@ use storage_enum_abi::*; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0xc601d11767195485a6654d566c67774134668863d8c797a8c69e8778fb1f89e9; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0xa09470dbde832b54231e8fca6ce5fb7a8bf051f56c7d0ea0b0b3101983954c5d; // AUTO-CONTRACT-ID ../../test_contracts/storage_enum_contract --release +const CONTRACT_ID = 0x2cce8767f39272b1321b7847f2e78b23ba475e526837c6af803d16eaeeb07488; // AUTO-CONTRACT-ID ../../test_contracts/storage_enum_contract --release fn main() -> u64 { let caller = abi(StorageEnum, CONTRACT_ID); diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/caller_auth_test/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/caller_auth_test/src/main.sw index dcd6924884f..f993e40564a 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/caller_auth_test/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/caller_auth_test/src/main.sw @@ -5,7 +5,7 @@ use auth_testing_abi::AuthTesting; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0xc2eec20491b53aab7232cbd27c31d15417b4e9daf0b89c74cc242ef1295f681f; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0x964987560d5b794c9f2cf9a10604d749ac147ec7d5fdd7383d3e41080c5da2f3; // AUTO-CONTRACT-ID ../../test_contracts/auth_testing_contract --release +const CONTRACT_ID = 0x251dd84ae6824faa56ef5d28b173a30a13ec60927ae9a263d49a782562869a53; // AUTO-CONTRACT-ID ../../test_contracts/auth_testing_contract --release // should be false in the case of a script fn main() -> bool { diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/caller_context_test/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/caller_context_test/src/main.sw index 40f2885f529..3557ca6ab73 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/caller_context_test/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/caller_context_test/src/main.sw @@ -6,7 +6,7 @@ use context_testing_abi::*; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0x6054c11cda000f5990373a4d61929396165be4dfdd61d5b7bd26da60ab0d8577; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0xb3188335bdfa33e8f457a571c8b38b9f0d83e9eef0ad66a50a46b34a8ae228d6; // AUTO-CONTRACT-ID ../../test_contracts/context_testing_contract --release +const CONTRACT_ID = 0x8c0a8521084c52e50d9fdb160c37d7794f667b6392b1a137c3d2e723f41bac68; // AUTO-CONTRACT-ID ../../test_contracts/context_testing_contract --release fn main() -> bool { let gas: u64 = u64::max(); diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/nested_struct_args_caller/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/nested_struct_args_caller/src/main.sw index 9496f1b7804..95f57ce0715 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/nested_struct_args_caller/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/nested_struct_args_caller/src/main.sw @@ -5,7 +5,7 @@ use nested_struct_args_abi::*; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0xe63d33a1b3a6903808b379f6a41a72fa8a370e8b76626775e7d9d2f9c4c5da40; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0xd24a80a26cf5857cb572fd82019bcf029724615d401621c41ae2bfb7ba17df2b; // AUTO-CONTRACT-ID ../../test_contracts/nested_struct_args_contract --release +const CONTRACT_ID = 0x21c061779100f9201d1d42d858f3b7974729ecf2db59b212dee596882a6b5ac5; // AUTO-CONTRACT-ID ../../test_contracts/nested_struct_args_contract --release fn main() -> bool { let caller = abi(NestedStructArgs, CONTRACT_ID); diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/storage_access_caller/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/storage_access_caller/src/main.sw index 350b460296d..6c42a3a24b1 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/storage_access_caller/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/storage_access_caller/src/main.sw @@ -6,7 +6,7 @@ use std::hash::*; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0x3bc28acd66d327b8c1b9624c1fabfc07e9ffa1b5d71c2832c3bfaaf8f4b805e9; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0xcb3b3354fd53ae49c831932c4a99b08821ee63ee7c9073a2a1e6a708dc883c61; // AUTO-CONTRACT-ID ../../test_contracts/storage_access_contract --release +const CONTRACT_ID = 0x41cb96888e22eb480abc7d14d2eb7e46e0b3577adbe9ddac6545a25322377eed; // AUTO-CONTRACT-ID ../../test_contracts/storage_access_contract --release fn main() -> bool { let caller = abi(StorageAccess, CONTRACT_ID); From bb0c2cc6b5198795b92f32671269c3404fd67d79 Mon Sep 17 00:00:00 2001 From: Daniel Frederico Lins Leite Date: Fri, 21 Nov 2025 10:11:40 -0300 Subject: [PATCH 12/27] auto-impl for is_trivial --- .../declaration/auto_impl/abi_encoding.rs | 101 +++++++++--------- .../ast_node/declaration/auto_impl/mod.rs | 6 +- .../json_abi_oracle_new_encoding.release.json | 32 +++--- 3 files changed, 68 insertions(+), 71 deletions(-) diff --git a/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs b/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs index f05478a627f..e75f00d8eb4 100644 --- a/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs +++ b/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs @@ -9,7 +9,7 @@ use crate::{ Engines, TypeInfo, TypeParameter, }; use itertools::Itertools; -use std::collections::BTreeMap; +use std::collections::{BTreeMap, BTreeSet}; use sway_error::{ error::CompileError, handler::{ErrorEmitted, Handler}, @@ -31,6 +31,7 @@ where name: &BaseIdent, type_parameters: &[TypeParameter], body: String, + is_trivial_body: &str, ) -> String { let type_parameters_declaration_expanded = self.generate_type_parameters_declaration_code(type_parameters, true); @@ -44,7 +45,7 @@ where if body.is_empty() { format!("#[allow(dead_code, deprecated)] impl{type_parameters_declaration_expanded} AbiEncode for {name}{type_parameters_declaration}{type_parameters_constraints} {{ #[allow(dead_code, deprecated)] - fn is_encode_trivial() -> bool {{ false }} + fn is_encode_trivial() -> bool {{ {is_trivial_body} }} #[allow(dead_code, deprecated)] fn abi_encode(self, buffer: Buffer) -> Buffer {{ buffer @@ -53,7 +54,7 @@ where } else { format!("#[allow(dead_code, deprecated)] impl{type_parameters_declaration_expanded} AbiEncode for {name}{type_parameters_declaration}{type_parameters_constraints} {{ #[allow(dead_code, deprecated)] - fn is_encode_trivial() -> bool {{ false }} + fn is_encode_trivial() -> bool {{ {is_trivial_body} }} #[allow(dead_code, deprecated)] fn abi_encode(self, buffer: Buffer) -> Buffer {{ {body} @@ -68,6 +69,7 @@ where name: &BaseIdent, type_parameters: &[TypeParameter], body: String, + is_trivial_body: &str, ) -> String { let type_parameters_declaration_expanded = self.generate_type_parameters_declaration_code(type_parameters, true); @@ -81,7 +83,7 @@ where if body == "Self { }" { format!("#[allow(dead_code, deprecated)] impl{type_parameters_declaration_expanded} AbiDecode for {name}{type_parameters_declaration}{type_parameters_constraints} {{ #[allow(dead_code, deprecated)] - fn is_decode_trivial() -> bool {{ false }} + fn is_decode_trivial() -> bool {{ {is_trivial_body} }} #[allow(dead_code, deprecated)] fn abi_decode(ref mut _buffer: BufferReader) -> Self {{ {body} @@ -90,7 +92,7 @@ where } else { format!("#[allow(dead_code, deprecated)] impl{type_parameters_declaration_expanded} AbiDecode for {name}{type_parameters_declaration}{type_parameters_constraints} {{ #[allow(dead_code, deprecated)] - fn is_decode_trivial() -> bool {{ false }} + fn is_decode_trivial() -> bool {{ {is_trivial_body} }} #[allow(dead_code, deprecated)] fn abi_decode(ref mut buffer: BufferReader) -> Self {{ {body} @@ -122,7 +124,7 @@ where code.push_str(&format!( "{field_name}: buffer.decode::<{field_type_name}>(),", field_name = f.name.as_raw_ident_str(), - field_type_name = Self::generate_type(engines, &f.type_argument)?, + field_type_name = Self::generate_type(engines, &f.type_argument), )); } @@ -144,7 +146,7 @@ where format!("{} => {}::{}, \n", x.tag, enum_name, name) }, _ => { - let variant_type_name = Self::generate_type(engines, &x.type_argument)?; + let variant_type_name = Self::generate_type(engines, &x.type_argument); format!("{tag_value} => {enum_name}::{variant_name}(buffer.decode::<{variant_type}>()), \n", tag_value = x.tag, enum_name = enum_name, @@ -221,11 +223,21 @@ where let implementing_for_decl_id = decl.to_struct_decl(&Handler::default(), engines).unwrap(); let struct_decl = self.ctx.engines().de().get(&implementing_for_decl_id); + let fields_types = struct_decl.fields.iter() + .map(|x| Self::generate_type(engines, &x.type_argument)) + .collect::>(); + let mut is_encode_trivial = "__runtime_mem_id::() == __encoding_mem_id::()".to_string(); + for field_type in fields_types { + is_encode_trivial.push_str(" && "); + is_encode_trivial.push_str(&format!("is_encode_trivial::<{}>()", field_type)); + } + let abi_encode_body = self.generate_abi_encode_struct_body(engines, &struct_decl); let abi_encode_code = self.generate_abi_encode_code( struct_decl.name(), &struct_decl.generic_parameters, abi_encode_body, + &is_encode_trivial, ); let abi_encode_node = self.parse_impl_trait_to_ty_ast_node( engines, @@ -234,11 +246,21 @@ where crate::build_config::DbgGeneration::None, ); + let fields_types = struct_decl.fields.iter() + .map(|x| Self::generate_type(engines, &x.type_argument)) + .collect::>(); + let mut is_decode_trivial = "__runtime_mem_id::() == __encoding_mem_id::()".to_string(); + for field_type in fields_types { + is_decode_trivial.push_str(" && "); + is_decode_trivial.push_str(&format!("is_decode_trivial::<{}>()", field_type)); + } + let abi_decode_body = self.generate_abi_decode_struct_body(engines, &struct_decl); let abi_decode_code = self.generate_abi_decode_code( struct_decl.name(), &struct_decl.generic_parameters, abi_decode_body?, + &is_decode_trivial, ); let abi_decode_node = self.parse_impl_trait_to_ty_ast_node( engines, @@ -268,11 +290,21 @@ where let enum_decl_id = decl.to_enum_id(&Handler::default(), engines).unwrap(); let enum_decl = self.ctx.engines().de().get(&enum_decl_id); + let fields_types = enum_decl.variants.iter() + .map(|x| Self::generate_type(engines, &x.type_argument)) + .collect::>(); + let mut is_encode_trivial = "__runtime_mem_id::() == __encoding_mem_id::()".to_string(); + for field_type in fields_types { + is_encode_trivial.push_str(" && "); + is_encode_trivial.push_str(&format!("is_encode_trivial::<{}>()", field_type)); + } + let abi_encode_body = self.generate_abi_encode_enum_body(engines, &enum_decl); let abi_encode_code = self.generate_abi_encode_code( enum_decl.name(), &enum_decl.generic_parameters, abi_encode_body, + &is_encode_trivial, ); let abi_encode_node = self.parse_impl_trait_to_ty_ast_node( engines, @@ -286,6 +318,7 @@ where enum_decl.name(), &enum_decl.generic_parameters, abi_decode_body?, + "false", ); let abi_decode_node = self.parse_impl_trait_to_ty_ast_node( engines, @@ -356,17 +389,10 @@ where } } - let Some(args_types) = decl + let args_types = decl .parameters .iter() - .map(|x| Self::generate_type(engines, &x.type_argument)) - .collect::>>() - else { - let err = handler.emit_err(CompileError::UnknownType { - span: Span::dummy(), - }); - return Err(err); - }; + .map(|x| Self::generate_type(engines, &x.type_argument)); let args_types = itertools::intersperse(args_types, ", ".into()).collect::(); let args_types = if args_types.is_empty() { @@ -384,12 +410,7 @@ where ) .collect::(); - let Some(return_type) = Self::generate_type(engines, &decl.return_type) else { - let err = handler.emit_err(CompileError::UnknownType { - span: Span::dummy(), - }); - return Err(err); - }; + let return_type = Self::generate_type(engines, &decl.return_type); let method_name = decl.name.as_str(); let offset = if let Some(offset) = method_names.find(method_name) { @@ -444,12 +465,7 @@ where let fallback = if let Some(fallback_fn) = fallback_fn { let fallback_fn = engines.de().get(&fallback_fn); - let Some(return_type) = Self::generate_type(engines, &fallback_fn.return_type) else { - let err = handler.emit_err(CompileError::UnknownType { - span: Span::dummy(), - }); - return Err(err); - }; + let return_type = Self::generate_type(engines, &fallback_fn.return_type); let method_name = fallback_fn.name.as_raw_ident_str(); match fallback_fn.purity { Purity::Pure => {} @@ -520,17 +536,10 @@ where decl: &TyFunctionDecl, handler: &Handler, ) -> Result { - let Some(args_types) = decl + let args_types = decl .parameters .iter() - .map(|x| Self::generate_type(engines, &x.type_argument)) - .collect::>>() - else { - let err = handler.emit_err(CompileError::UnknownType { - span: Span::dummy(), - }); - return Err(err); - }; + .map(|x| Self::generate_type(engines, &x.type_argument)); let args_types = itertools::intersperse(args_types, ", ".into()).collect::(); let expanded_args = itertools::intersperse( @@ -612,17 +621,10 @@ where decl: &TyFunctionDecl, handler: &Handler, ) -> Result { - let Some(args_types) = decl + let args_types = decl .parameters .iter() - .map(|x| Self::generate_type(engines, &x.type_argument)) - .collect::>>() - else { - let err = handler.emit_err(CompileError::UnknownType { - span: Span::dummy(), - }); - return Err(err); - }; + .map(|x| Self::generate_type(engines, &x.type_argument)); let args_types = itertools::intersperse(args_types, ", ".into()).collect::(); let args_types = if args_types.is_empty() { "()".into() @@ -639,12 +641,7 @@ where ) .collect::(); - let Some(return_type) = Self::generate_type(engines, &decl.return_type) else { - let err = handler.emit_err(CompileError::UnknownType { - span: Span::dummy(), - }); - return Err(err); - }; + let return_type = Self::generate_type(engines, &decl.return_type); let return_encode = if return_type == "()" { "__contract_ret(0, 0)".to_string() diff --git a/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/mod.rs b/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/mod.rs index 34f7888375b..30705c7d3e6 100644 --- a/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/mod.rs +++ b/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/mod.rs @@ -319,13 +319,13 @@ where /// The safest way would be to return a canonical fully qualified type path. /// We do not have a way to do this at the moment, so the best way is to use /// exactly what was typed by the user, to accommodate aliased imports. - fn generate_type(engines: &Engines, ta: &GenericTypeArgument) -> Option { + fn generate_type(engines: &Engines, ta: &GenericTypeArgument) -> String { match &*engines.te().get(ta.type_id) { // A special case for function return type. // When a function does not define a return type, the span points to the whole signature. - TypeInfo::Tuple(v) if v.is_empty() => Some("()".into()), + TypeInfo::Tuple(v) if v.is_empty() => "()".into(), // Otherwise, take the type from the span. - _ => Some(ta.span.as_str().to_string()), + _ => ta.span.as_str().to_string(), } } } diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_consts/json_abi_oracle_new_encoding.release.json b/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_consts/json_abi_oracle_new_encoding.release.json index 0a2f1027b93..dcbe9941ccc 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_consts/json_abi_oracle_new_encoding.release.json +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_consts/json_abi_oracle_new_encoding.release.json @@ -63,97 +63,97 @@ "concreteTypeId": "b760f44fa5965c2474a3b471467a22c43185152129295af588b022ae50b50903", "indirect": false, "name": "BOOL", - "offset": 4472 + "offset": 4608 }, { "concreteTypeId": "c89951a24c6ca28c13fd1cfdc646b2b656d69e61a92b91023be7eb58eb914b6b", "indirect": false, "name": "U8", - "offset": 4664 + "offset": 4800 }, { "concreteTypeId": "c89951a24c6ca28c13fd1cfdc646b2b656d69e61a92b91023be7eb58eb914b6b", "indirect": false, "name": "ANOTHER_U8", - "offset": 4400 + "offset": 4536 }, { "concreteTypeId": "29881aad8730c5ab11d275376323d8e4ff4179aae8ccb6c13fe4902137e162ef", "indirect": false, "name": "U16", - "offset": 4608 + "offset": 4744 }, { "concreteTypeId": "d7649d428b9ff33d188ecbf38a7e4d8fd167fa01b2e10fe9a8f9308e52f1d7cc", "indirect": false, "name": "U32", - "offset": 4648 + "offset": 4784 }, { "concreteTypeId": "d7649d428b9ff33d188ecbf38a7e4d8fd167fa01b2e10fe9a8f9308e52f1d7cc", "indirect": false, "name": "U64", - "offset": 4656 + "offset": 4792 }, { "concreteTypeId": "1b5759d94094368cfd443019e7ca5ec4074300e544e5ea993a979f5da627261e", "indirect": false, "name": "U256", - "offset": 4616 + "offset": 4752 }, { "concreteTypeId": "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b", "indirect": false, "name": "B256", - "offset": 4440 + "offset": 4576 }, { "concreteTypeId": "81fc10c4681a3271cf2d66b2ec6fbc8ed007a442652930844fcf11818c295bff", "indirect": false, "name": "CONFIGURABLE_STRUCT", - "offset": 4560 + "offset": 4696 }, { "concreteTypeId": "a2922861f03be8a650595dd76455b95383a61b46dd418f02607fa2e00dc39d5c", "indirect": false, "name": "CONFIGURABLE_ENUM_A", - "offset": 4480 + "offset": 4616 }, { "concreteTypeId": "a2922861f03be8a650595dd76455b95383a61b46dd418f02607fa2e00dc39d5c", "indirect": false, "name": "CONFIGURABLE_ENUM_B", - "offset": 4520 + "offset": 4656 }, { "concreteTypeId": "4926d35d1a5157936b0a29bc126b8aace6d911209a5c130e9b716b0c73643ea6", "indirect": false, "name": "ARRAY_BOOL", - "offset": 4408 + "offset": 4544 }, { "concreteTypeId": "776fb5a3824169d6736138565fdc20aad684d9111266a5ff6d5c675280b7e199", "indirect": false, "name": "ARRAY_U64", - "offset": 4416 + "offset": 4552 }, { "concreteTypeId": "c998ca9a5f221fe7b5c66ae70c8a9562b86d964408b00d17f883c906bc1fe4be", "indirect": false, "name": "TUPLE_BOOL_U64", - "offset": 4592 + "offset": 4728 }, { "concreteTypeId": "94f0fa95c830be5e4f711963e83259fe7e8bc723278ab6ec34449e791a99b53a", "indirect": false, "name": "STR_4", - "offset": 4584 + "offset": 4720 }, { "concreteTypeId": "c89951a24c6ca28c13fd1cfdc646b2b656d69e61a92b91023be7eb58eb914b6b", "indirect": false, "name": "NOT_USED", - "offset": 4576 + "offset": 4712 } ], "encodingVersion": "1", From 6c29de4620e2523360ebb898fc015b51dd229439 Mon Sep 17 00:00:00 2001 From: Daniel Frederico Lins Leite Date: Fri, 21 Nov 2025 10:18:39 -0300 Subject: [PATCH 13/27] fmt and clippy issues --- .../declaration/auto_impl/abi_encoding.rs | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs b/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs index e75f00d8eb4..782281dca20 100644 --- a/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs +++ b/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs @@ -223,10 +223,13 @@ where let implementing_for_decl_id = decl.to_struct_decl(&Handler::default(), engines).unwrap(); let struct_decl = self.ctx.engines().de().get(&implementing_for_decl_id); - let fields_types = struct_decl.fields.iter() + let fields_types = struct_decl + .fields + .iter() .map(|x| Self::generate_type(engines, &x.type_argument)) .collect::>(); - let mut is_encode_trivial = "__runtime_mem_id::() == __encoding_mem_id::()".to_string(); + let mut is_encode_trivial = + "__runtime_mem_id::() == __encoding_mem_id::()".to_string(); for field_type in fields_types { is_encode_trivial.push_str(" && "); is_encode_trivial.push_str(&format!("is_encode_trivial::<{}>()", field_type)); @@ -246,10 +249,13 @@ where crate::build_config::DbgGeneration::None, ); - let fields_types = struct_decl.fields.iter() + let fields_types = struct_decl + .fields + .iter() .map(|x| Self::generate_type(engines, &x.type_argument)) .collect::>(); - let mut is_decode_trivial = "__runtime_mem_id::() == __encoding_mem_id::()".to_string(); + let mut is_decode_trivial = + "__runtime_mem_id::() == __encoding_mem_id::()".to_string(); for field_type in fields_types { is_decode_trivial.push_str(" && "); is_decode_trivial.push_str(&format!("is_decode_trivial::<{}>()", field_type)); @@ -290,10 +296,13 @@ where let enum_decl_id = decl.to_enum_id(&Handler::default(), engines).unwrap(); let enum_decl = self.ctx.engines().de().get(&enum_decl_id); - let fields_types = enum_decl.variants.iter() + let fields_types = enum_decl + .variants + .iter() .map(|x| Self::generate_type(engines, &x.type_argument)) .collect::>(); - let mut is_encode_trivial = "__runtime_mem_id::() == __encoding_mem_id::()".to_string(); + let mut is_encode_trivial = + "__runtime_mem_id::() == __encoding_mem_id::()".to_string(); for field_type in fields_types { is_encode_trivial.push_str(" && "); is_encode_trivial.push_str(&format!("is_encode_trivial::<{}>()", field_type)); From c47472c5f1db438f055ffe0e9e9b75ce48a5bde1 Mon Sep 17 00:00:00 2001 From: Daniel Frederico Lins Leite Date: Fri, 21 Nov 2025 10:52:50 -0300 Subject: [PATCH 14/27] update tests --- .../configurable_dedup_decode/stdout.snap | 183 +- .../should_pass/language/logging/stdout.snap | 1903 +++++++------ .../main_args_various_types/stdout.snap | 2414 ++++++++--------- .../panic_handling_in_unit_tests/stdout.snap | 12 +- .../panicking_contract/stdout.snap | 52 +- .../panicking_lib/stdout.snap | 48 +- .../panicking_script/stdout.snap | 32 +- .../stdout.snap | 34 +- .../const_of_contract_call/stdout.snap | 84 +- 9 files changed, 2483 insertions(+), 2279 deletions(-) diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/stdout.snap index 080060543ba..91e50d19e4b 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/stdout.snap @@ -14,10 +14,10 @@ library { Compiling script configurable_dedup_decode (test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode) // IR: Final script { - TUPLE = config { u64 }, abi_decode_in_place_7, 0x0000000000000002, !1 + TUPLE = config { u64 }, abi_decode_in_place_0, 0x0000000000000002, !1 WRAPPED = config { u64 }, abi_decode_in_place_7, 0x0000000000000001, !2 - pub fn abi_decode_in_place_7(ptr !4: ptr, len !5: u64, target !6: ptr) -> (), !10 { + pub fn abi_decode_in_place_0(ptr !4: ptr, len !5: u64, target !6: ptr) -> (), !10 { local mut { ptr } buffer local { u64 } temp @@ -28,52 +28,61 @@ script { store ptr to v2, !16 v3 = get_local __ptr { ptr }, buffer, !17 v4 = const u64 0 - v5 = get_elem_ptr v3, __ptr ptr, v4, !28 - v6 = load v5, !29 - v7 = asm(ptr: v6, val) -> u64 val, !31 { - lw val ptr i0, !32 + v5 = get_elem_ptr v3, __ptr ptr, v4, !25 + v6 = load v5, !26 + v7 = asm(ptr: v6, val) -> u64 val, !28 { + lw val ptr i0, !29 } - v8 = load v5, !33 - v9 = const u64 8, !34 - v10 = add v8, v9, !35 - store v10 to v5, !37 - v11 = get_local __ptr { u64 }, temp, !39 + v8 = load v5, !30 + v9 = const u64 8, !31 + v10 = add v8, v9, !32 + store v10 to v5, !34 + v11 = get_local __ptr { u64 }, temp, !36 v12 = const u64 0 - v13 = get_elem_ptr v11, __ptr u64, v12, !40 - store v7 to v13, !41 - v14 = get_local __ptr { u64 }, temp, !42 - v15 = cast_ptr v14 to ptr, !43 + v13 = get_elem_ptr v11, __ptr u64, v12, !37 + store v7 to v13, !38 + v14 = get_local __ptr { u64 }, temp, !39 + v15 = cast_ptr v14 to ptr, !40 v16 = const u64 8 - v17 = asm(target: target, temp: v15, size: v16) -> (), !44 { - mcp target temp size, !45 + v17 = asm(target: target, temp: v15, size: v16) -> (), !41 { + mcp target temp size, !42 } v18 = const unit () ret () v18 } - pub entry fn __entry() -> __ptr never, !48 { + pub fn abi_decode_in_place_7(ptr !4: ptr, len !5: u64, target !6: ptr) -> (), !43 { + entry(ptr: ptr, len: u64, target: ptr): + v0 = asm(src: ptr, target: target, len: len) -> (), !44 { + mcp target src len, !45 + } + v1 = const unit () + ret () v1 + } + + pub entry fn __entry() -> __ptr never, !49 { local u64 _result entry(): - v0 = call main_12(), !51 - v1 = get_local __ptr u64, _result, !52 - store v0 to v1, !52 - v2 = get_local __ptr u64, _result, !53 + v0 = call main_15(), !52 + v1 = get_local __ptr u64, _result, !53 + store v0 to v1, !53 + v2 = get_local __ptr u64, _result, !54 v3 = const u64 8 - retd v2 v3, !57 + retd v2 v3, !58 } - entry_orig fn main_12() -> u64, !60 { + entry_orig fn main_15() -> u64, !61 { entry(): - v0 = get_config __ptr { u64 }, WRAPPED, !61 + v0 = get_config __ptr { u64 }, WRAPPED, !62 v1 = const u64 0 - v2 = get_elem_ptr v0, __ptr u64, v1, !62 + v2 = get_elem_ptr v0, __ptr u64, v1, !63 v3 = load v2 - v4 = get_config __ptr { u64 }, TUPLE, !63 + v4 = get_config __ptr { u64 }, TUPLE, !64 v5 = const u64 0 - v6 = get_elem_ptr v4, __ptr u64, v5, !64 + v6 = get_elem_ptr v4, __ptr u64, v5, !65 v7 = load v6 - v8 = add v3, v7, !67 + v8 = add v3, v7, !68 ret u64 v8 } } @@ -98,54 +107,55 @@ script { !17 = span !3 82542 82548 !18 = span !3 82528 82549 !19 = fn_call_path_span !3 82528 82541 -!20 = "test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/src/main..sw" -!21 = span !20 318 340 -!22 = fn_call_path_span !20 325 331 -!23 = span !3 4120 4139 -!24 = fn_call_path_span !3 4120 4133 -!25 = span !3 83379 83407 -!26 = fn_call_path_span !3 83386 83398 -!27 = span !3 625 641 -!28 = (!18 !19 !21 !22 !23 !24 !25 !26 !27) -!29 = (!18 !19 !21 !22 !23 !24 !25 !26) -!30 = span !3 2927 3008 -!31 = (!18 !19 !21 !22 !23 !24 !25 !26 !30) -!32 = span !3 2965 2978 -!33 = (!18 !19 !21 !22 !23 !24 !25 !26) -!34 = (!18 !19 !21 !22 !23 !24 !25 !26) -!35 = (!18 !19 !21 !22 !23 !24 !25 !26) -!36 = span !3 3018 3057 -!37 = (!18 !19 !21 !22 !23 !24 !25 !26 !36) -!38 = span !20 308 343 -!39 = (!18 !19 !38) -!40 = (!18 !19) -!41 = (!18 !19 !38) -!42 = span !3 82620 82624 -!43 = span !3 82610 82625 -!44 = span !3 82559 82718 -!45 = span !3 82687 82707 -!46 = span !20 0 131 -!47 = fn_name_span !20 7 14 -!48 = (!46 !47) -!49 = span !20 59 65 -!50 = fn_call_path_span !20 59 63 -!51 = (!49 !50) -!52 = span !20 40 66 -!53 = span !20 109 116 -!54 = span !20 83 117 -!55 = fn_call_path_span !20 83 100 -!56 = span !3 81408 81434 -!57 = (!54 !55 !56) -!58 = span !0 202 246 -!59 = fn_name_span !0 205 209 -!60 = (!58 !59) -!61 = span !0 225 232 -!62 = span !0 30 36 -!63 = span !0 237 242 -!64 = span !0 243 244 -!65 = span !0 225 244 -!66 = fn_call_path_span !0 235 236 -!67 = (!65 !66) +!20 = span !3 134798 134819 +!21 = fn_call_path_span !3 134798 134811 +!22 = span !3 83379 83407 +!23 = fn_call_path_span !3 83386 83398 +!24 = span !3 625 641 +!25 = (!18 !19 !20 !21 !22 !23 !24) +!26 = (!18 !19 !20 !21 !22 !23) +!27 = span !3 2927 3008 +!28 = (!18 !19 !20 !21 !22 !23 !27) +!29 = span !3 2965 2978 +!30 = (!18 !19 !20 !21 !22 !23) +!31 = (!18 !19 !20 !21 !22 !23) +!32 = (!18 !19 !20 !21 !22 !23) +!33 = span !3 3018 3057 +!34 = (!18 !19 !20 !21 !22 !23 !33) +!35 = span !3 134797 134822 +!36 = (!18 !19 !35) +!37 = (!18 !19 !35) +!38 = (!18 !19 !35) +!39 = span !3 82620 82624 +!40 = span !3 82610 82625 +!41 = span !3 82559 82718 +!42 = span !3 82687 82707 +!43 = (!7 !8 !9) +!44 = span !3 82351 82434 +!45 = span !3 82405 82423 +!46 = "test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/src/main..sw" +!47 = span !46 0 131 +!48 = fn_name_span !46 7 14 +!49 = (!47 !48) +!50 = span !46 59 65 +!51 = fn_call_path_span !46 59 63 +!52 = (!50 !51) +!53 = span !46 40 66 +!54 = span !46 109 116 +!55 = span !46 83 117 +!56 = fn_call_path_span !46 83 100 +!57 = span !3 81408 81434 +!58 = (!55 !56 !57) +!59 = span !0 202 246 +!60 = fn_name_span !0 205 209 +!61 = (!59 !60) +!62 = span !0 225 232 +!63 = span !0 30 36 +!64 = span !0 237 242 +!65 = span !0 243 244 +!66 = span !0 225 244 +!67 = fn_call_path_span !0 235 236 +!68 = (!66 !67) ;; ASM: Final program ;; Program kind: Script @@ -166,16 +176,16 @@ jal $$reta $pc i12 ; decode configurable TUPLE addr $$arg0 data_Configurable_1; get pointer to configurable WRAPPED default value addi $$arg1 $zero i8 ; get length of configurable WRAPPED default value addi $$arg2 $ssp i8 ; get pointer to configurable WRAPPED stack address -jal $$reta $pc i7 ; decode configurable WRAPPED +jal $$reta $pc i29 ; decode configurable WRAPPED move $$locbase $sp ; save locals base register for function __entry cfei i8 ; allocate 8 bytes for locals and 0 slots for call arguments -jal $$reta $pc i26 ; [call]: call main_12 +jal $$reta $pc i35 ; [call]: call main_15 sw $$locbase $$retv i0 ; store word movi $r0 i8 ; initialize constant into register retd $$locbase $r0 pshl i31 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function abi_decode_in_place_7 +move $$locbase $sp ; save locals base register for function abi_decode_in_place_0 cfei i16 ; allocate 16 bytes for locals and 0 slots for call arguments move $r2 $$arg2 ; save argument 2 (target) move $r3 $$reta ; save return address @@ -195,9 +205,18 @@ move $$reta $r3 ; restore return address poph i524288 ; restore registers 40..64 popl i31 ; restore registers 16..40 jal $zero $$reta i0 ; return from call +pshl i1 ; save registers 16..40 +pshh i524288 ; save registers 40..64 +move $$locbase $sp ; save locals base register for function abi_decode_in_place_7 +move $r0 $$reta ; save return address +mcp $$arg2 $$arg0 $$arg1 ; mcp target src len +move $$reta $r0 ; restore return address +poph i524288 ; restore registers 40..64 +popl i1 ; restore registers 16..40 +jal $zero $$reta i0 ; return from call pshl i3 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function main_12 +move $$locbase $sp ; save locals base register for function main_15 lw $r0 $ssp i1 ; load word lw $r1 $ssp i0 ; load word add $r0 $r0 $r1 @@ -210,4 +229,4 @@ data__0 .bytes[8] 00 00 00 00 00 00 00 02 ........ data__1 .bytes[8] 00 00 00 00 00 00 00 01 ........ - Finished release [optimized + fuel] target(s) [248 B] in ??? + Finished release [optimized + fuel] target(s) [280 B] in ??? diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/logging/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/logging/stdout.snap index 2ebb1a1f450..14ed53388ac 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/logging/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/logging/stdout.snap @@ -122,7 +122,7 @@ script { v60 = const u64 1, !72 store v60 to v59, !71 v61 = get_local __ptr { u64 }, __tmp_arg0 - v62 = call local_log_36(v61) + v62 = call local_log_48(v61) v63 = get_local __ptr { u64, ( { u64 } | () ) }, __tmp_arg1, !73 v64 = const u64 0 v65 = get_elem_ptr v63, __ptr u64, v64, !73 @@ -138,16 +138,16 @@ script { v73 = get_elem_ptr v63, __ptr { u64 }, v71, v72, !73 mem_copy_val v73, v67 v74 = get_local __ptr { u64, ( { u64 } | () ) }, __tmp_arg1 - v75 = call local_log_41(v74) + v75 = call local_log_53(v74) v76 = get_local __ptr { u64, ( { u64 } | () ) }, __tmp_arg2, !73 v77 = const u64 0 v78 = get_elem_ptr v76, __ptr u64, v77, !73 v79 = const u64 1, !73 store v79 to v78, !73 v80 = get_local __ptr { u64, ( { u64 } | () ) }, __tmp_arg2 - v81 = call local_log_41(v80) + v81 = call local_log_53(v80) v82 = get_local __ptr { }, __tmp_arg3 - v83 = call local_log_45(v82) + v83 = call local_log_60(v82) v84 = const u64 1, !76 ret u64 v84 } @@ -404,18 +404,20 @@ script { } fn local_log_21(item: __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }) -> (), !177 { - local mut { ptr, u64, u64 } __aggr_memcpy_0 + local mut slice __aggr_memcpy_0 local mut { ptr, u64, u64 } __aggr_memcpy_00 local mut { ptr, u64, u64 } __aggr_memcpy_01 local mut { ptr, u64, u64 } __aggr_memcpy_010 + local mut { ptr, u64, u64 } __aggr_memcpy_011 local mut { ptr, u64, u64 } __aggr_memcpy_02 local mut { ptr, u64, u64 } __aggr_memcpy_03 local mut { ptr, u64, u64 } __aggr_memcpy_04 local mut { ptr, u64, u64 } __aggr_memcpy_05 - local mut { u64, u64 } __aggr_memcpy_06 - local mut slice __aggr_memcpy_07 - local mut { ptr, u64, u64 } __aggr_memcpy_08 + local mut { ptr, u64, u64 } __aggr_memcpy_06 + local mut { u64, u64 } __aggr_memcpy_07 + local mut slice __aggr_memcpy_08 local mut { ptr, u64, u64 } __aggr_memcpy_09 + local { ptr, u64 } __anon_0 local { ptr, u64, u64 } __anon_00 local { ptr, u64, u64 } __anon_000 local { ptr, u64, u64 } __anon_01 @@ -446,6 +448,7 @@ script { local { { ptr, u64, u64 } } __tmp_arg0 local { { ptr, u64, u64 } } __tmp_arg1 local { { ptr, u64, u64 } } __tmp_arg2 + local slice __tmp_block_arg local { { ptr, u64, u64 } } buffer local { { ptr, u64, u64 } } buffer_ local { { ptr, u64, u64 } } buffer_0 @@ -464,7 +467,7 @@ script { local { { ptr, u64, u64 } } buffer________ local { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 } item_ local { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 } item_0 - local { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 } self_ + local { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 } self_0 local { { ptr, u64 }, u64 } self_10 local { { ptr, u64 }, u64 } self_3 local slice self_4 @@ -476,331 +479,389 @@ script { v1 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, item_, !82 v2 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, item_0, !82 mem_copy_val v2, v1 - v3 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, item_0, !179 - v4 = get_local __ptr { { ptr, u64, u64 } }, __ret_val2 - v5 = call new_6(v4) - v6 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_, !182 - mem_copy_val v6, v3 - v7 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !183 - mem_copy_val v7, v4 - v8 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_, !185 - v9 = const u64 0 - v10 = get_elem_ptr v8, __ptr u64, v9, !187 - v11 = load v10, !188 - v12 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !190 - v13 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg - mem_copy_val v13, v12 - v14 = get_local __ptr { { ptr, u64, u64 } }, __ret_val - v15 = call abi_encode_5(v11, v13, v14) - v16 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !192 - mem_copy_val v16, v14 - v17 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_, !194 - v18 = const u64 1 - v19 = get_elem_ptr v17, __ptr u64, v18, !196 - v20 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !198 - v21 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !201 - mem_copy_val v21, v20 - v22 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !203 - v23 = const u64 0 - v24 = get_elem_ptr v22, __ptr { ptr, u64, u64 }, v23, !204 - v25 = asm(buffer: v24) -> __ptr { ptr, u64, u64 } buffer { + v3 = const bool false, !184 + cbr v3, encode_22_is_encode_trivial_23_is_encode_trivial_24_block4(), encode_22_is_encode_trivial_23_is_encode_trivial_24_block5(v3), !186 + + encode_22_is_encode_trivial_23_is_encode_trivial_24_block4(): + v4 = const bool false, !187 + br encode_22_is_encode_trivial_23_is_encode_trivial_24_block5(v4), !188 + + encode_22_is_encode_trivial_23_is_encode_trivial_24_block5(v5: bool): + cbr v5, encode_22_is_encode_trivial_23_is_encode_trivial_24_block6(), encode_22_is_encode_trivial_23_is_encode_trivial_24_block7(v5), !190 + + encode_22_is_encode_trivial_23_is_encode_trivial_24_block6(): + v6 = const bool true, !191 + br encode_22_is_encode_trivial_23_is_encode_trivial_24_block7(v6), !192 + + encode_22_is_encode_trivial_23_is_encode_trivial_24_block7(v7: bool): + cbr v7, encode_22_is_encode_trivial_23_is_encode_trivial_24_block8(), encode_22_is_encode_trivial_23_is_encode_trivial_24_block9(v7), !194 + + encode_22_is_encode_trivial_23_is_encode_trivial_24_block8(): + br encode_22_is_encode_trivial_23_is_encode_trivial_24_block9(v4), !195 + + encode_22_is_encode_trivial_23_is_encode_trivial_24_block9(v8: bool): + cbr v8, encode_22_is_encode_trivial_23_is_encode_trivial_24_block10(), encode_22_is_encode_trivial_23_is_encode_trivial_24_block11(v8), !197 + + encode_22_is_encode_trivial_23_is_encode_trivial_24_block10(): + br encode_22_is_encode_trivial_23_is_encode_trivial_24_block11(v6), !198 + + encode_22_is_encode_trivial_23_is_encode_trivial_24_block11(v9: bool): + cbr v9, encode_22_is_encode_trivial_23_is_encode_trivial_24_block12(), encode_22_is_encode_trivial_23_is_encode_trivial_24_block13(v9), !200 + + encode_22_is_encode_trivial_23_is_encode_trivial_24_block12(): + br encode_22_is_encode_trivial_23_is_encode_trivial_24_block13(v6), !201 + + encode_22_is_encode_trivial_23_is_encode_trivial_24_block13(v10: bool): + cbr v10, encode_22_block0(), encode_22_block1(), !202 + + encode_22_block0(): + v11 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, item_0, !203 + v12 = const u64 104 + v13 = asm(size: v12, src: v11) -> ptr hp, !204 { + aloc size, !87 + mcp hp src size, !88 + } + v14 = get_local __ptr { ptr, u64 }, __anon_0, !205 + v15 = const u64 0 + v16 = get_elem_ptr v14, __ptr ptr, v15, !206 + store v13 to v16, !207 + v17 = const u64 1 + v18 = get_elem_ptr v14, __ptr u64, v17, !208 + store v12 to v18, !209 + v19 = asm(s: v14) -> __ptr slice s { } - v26 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 - mem_copy_val v26, v25 - v27 = get_local __ptr { ptr, u64, u64 }, __anon_00, !205 - mem_copy_val v27, v26 + v20 = get_local __ptr slice, __aggr_memcpy_0 + mem_copy_val v20, v19 + v21 = get_local __ptr slice, __tmp_block_arg + mem_copy_val v21, v20 + br encode_22_block2(v21), !82 + + encode_22_block1(): + v22 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, item_0, !211 + v23 = get_local __ptr { { ptr, u64, u64 } }, __ret_val2 + v24 = call new_6(v23) + v25 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !214 + mem_copy_val v25, v22 + v26 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !215 + mem_copy_val v26, v23 + v27 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !217 v28 = const u64 0 - v29 = get_elem_ptr v27, __ptr ptr, v28, !206 - v30 = load v29, !207 - v31 = const u64 1 - v32 = get_elem_ptr v27, __ptr u64, v31, !208 - v33 = load v32, !209 - v34 = const u64 2 - v35 = get_elem_ptr v27, __ptr u64, v34, !210 - v36 = load v35, !211 - v37 = const u64 4 - v38 = add v36, v37, !212 - v39 = cmp gt v38 v33, !213 - cbr v39, encode_22_abi_encode_25_abi_encode_26_block1(), encode_22_abi_encode_25_abi_encode_26_block0(v30, v33), !214 - - encode_22_abi_encode_25_abi_encode_26_block0(v40: ptr, v41: u64): - v42 = get_local __ptr u64, __anon_1, !215 - mem_copy_val v42, v19 - v43 = const u64 4 - v44 = add v42, v43, !216 - v45 = cast_ptr v44 to __ptr u8, !217 - v46 = add v40, v36, !218 - v47 = cast_ptr v46 to __ptr u8, !219 - mem_copy_bytes v47, v45, 4, !220 - v48 = get_local __ptr { ptr, u64, u64 }, __anon_2, !221 - v49 = const u64 0 - v50 = get_elem_ptr v48, __ptr ptr, v49, !222 - store v40 to v50, !223 - v51 = const u64 1 - v52 = get_elem_ptr v48, __ptr u64, v51, !224 - store v41 to v52, !225 - v53 = const u64 2 - v54 = get_elem_ptr v48, __ptr u64, v53, !226 - store v38 to v54, !227 - v55 = asm(buffer: v48) -> __ptr { ptr, u64, u64 } buffer { + v29 = get_elem_ptr v27, __ptr u64, v28, !219 + v30 = load v29, !220 + v31 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !222 + v32 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg + mem_copy_val v32, v31 + v33 = get_local __ptr { { ptr, u64, u64 } }, __ret_val + v34 = call abi_encode_5(v30, v32, v33) + v35 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !224 + mem_copy_val v35, v33 + v36 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !226 + v37 = const u64 1 + v38 = get_elem_ptr v36, __ptr u64, v37, !228 + v39 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !230 + v40 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !233 + mem_copy_val v40, v39 + v41 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !235 + v42 = const u64 0 + v43 = get_elem_ptr v41, __ptr { ptr, u64, u64 }, v42, !236 + v44 = asm(buffer: v43) -> __ptr { ptr, u64, u64 } buffer { } - v56 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_00 - mem_copy_val v56, v55 - v57 = get_local __ptr { { ptr, u64, u64 } }, __anon_3, !229 - v58 = const u64 0 - v59 = get_elem_ptr v57, __ptr { ptr, u64, u64 }, v58, !230 - mem_copy_val v59, v56 - v60 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !232 - mem_copy_val v60, v57 - v61 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_, !234 - v62 = const u64 2 - v63 = get_elem_ptr v61, __ptr u64, v62, !236 - v64 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !238 - v65 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !241 - mem_copy_val v65, v64 - v66 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !243 - v67 = const u64 0 - v68 = get_elem_ptr v66, __ptr { ptr, u64, u64 }, v67, !244 - v69 = asm(buffer: v68) -> __ptr { ptr, u64, u64 } buffer { + v45 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_00 + mem_copy_val v45, v44 + v46 = get_local __ptr { ptr, u64, u64 }, __anon_00, !237 + mem_copy_val v46, v45 + v47 = const u64 0 + v48 = get_elem_ptr v46, __ptr ptr, v47, !238 + v49 = load v48, !239 + v50 = const u64 1 + v51 = get_elem_ptr v46, __ptr u64, v50, !240 + v52 = load v51, !241 + v53 = const u64 2 + v54 = get_elem_ptr v46, __ptr u64, v53, !242 + v55 = load v54, !243 + v56 = const u64 4 + v57 = add v55, v56, !244 + v58 = cmp gt v57 v52, !245 + cbr v58, encode_22_abi_encode_37_abi_encode_38_block1(), encode_22_abi_encode_37_abi_encode_38_block0(v49, v52), !246 + + encode_22_abi_encode_37_abi_encode_38_block0(v59: ptr, v60: u64): + v61 = get_local __ptr u64, __anon_1, !247 + mem_copy_val v61, v38 + v62 = const u64 4 + v63 = add v61, v62, !248 + v64 = cast_ptr v63 to __ptr u8, !249 + v65 = add v59, v55, !250 + v66 = cast_ptr v65 to __ptr u8, !251 + mem_copy_bytes v66, v64, 4, !252 + v67 = get_local __ptr { ptr, u64, u64 }, __anon_2, !253 + v68 = const u64 0 + v69 = get_elem_ptr v67, __ptr ptr, v68, !254 + store v59 to v69, !255 + v70 = const u64 1 + v71 = get_elem_ptr v67, __ptr u64, v70, !256 + store v60 to v71, !257 + v72 = const u64 2 + v73 = get_elem_ptr v67, __ptr u64, v72, !258 + store v57 to v73, !259 + v74 = asm(buffer: v67) -> __ptr { ptr, u64, u64 } buffer { } - v70 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_01 - mem_copy_val v70, v69 - v71 = get_local __ptr { ptr, u64, u64 }, __anon_000, !245 - mem_copy_val v71, v70 - v72 = const u64 0 - v73 = get_elem_ptr v71, __ptr ptr, v72, !246 - v74 = load v73, !247 - v75 = const u64 1 - v76 = get_elem_ptr v71, __ptr u64, v75, !248 - v77 = load v76, !249 - v78 = const u64 2 - v79 = get_elem_ptr v71, __ptr u64, v78, !250 - v80 = load v79, !251 + v75 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_01 + mem_copy_val v75, v74 + v76 = get_local __ptr { { ptr, u64, u64 } }, __anon_3, !261 + v77 = const u64 0 + v78 = get_elem_ptr v76, __ptr { ptr, u64, u64 }, v77, !262 + mem_copy_val v78, v75 + v79 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !264 + mem_copy_val v79, v76 + v80 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !266 v81 = const u64 2 - v82 = add v80, v81, !252 - v83 = cmp gt v82 v77, !253 - cbr v83, encode_22_abi_encode_25_abi_encode_27_block1(), encode_22_abi_encode_25_abi_encode_27_block0(v74, v77), !254 - - encode_22_abi_encode_25_abi_encode_26_block1(): - v84 = const u64 2 - v85 = mul v33, v84, !255 - v86 = add v85, v37, !256 - v87 = asm(new_cap: v86, old_ptr: v30, len: v36) -> __ptr u8 hp, !257 { + v82 = get_elem_ptr v80, __ptr u64, v81, !268 + v83 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !270 + v84 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !273 + mem_copy_val v84, v83 + v85 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !275 + v86 = const u64 0 + v87 = get_elem_ptr v85, __ptr { ptr, u64, u64 }, v86, !276 + v88 = asm(buffer: v87) -> __ptr { ptr, u64, u64 } buffer { + } + v89 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_02 + mem_copy_val v89, v88 + v90 = get_local __ptr { ptr, u64, u64 }, __anon_000, !277 + mem_copy_val v90, v89 + v91 = const u64 0 + v92 = get_elem_ptr v90, __ptr ptr, v91, !278 + v93 = load v92, !279 + v94 = const u64 1 + v95 = get_elem_ptr v90, __ptr u64, v94, !280 + v96 = load v95, !281 + v97 = const u64 2 + v98 = get_elem_ptr v90, __ptr u64, v97, !282 + v99 = load v98, !283 + v100 = const u64 2 + v101 = add v99, v100, !284 + v102 = cmp gt v101 v96, !285 + cbr v102, encode_22_abi_encode_37_abi_encode_39_block1(), encode_22_abi_encode_37_abi_encode_39_block0(v93, v96), !286 + + encode_22_abi_encode_37_abi_encode_38_block1(): + v103 = const u64 2 + v104 = mul v52, v103, !287 + v105 = add v104, v56, !288 + v106 = asm(new_cap: v105, old_ptr: v49, len: v55) -> __ptr u8 hp, !289 { aloc new_cap mcp hp old_ptr len } - br encode_22_abi_encode_25_abi_encode_26_block0(v87, v86), !258 - - encode_22_abi_encode_25_abi_encode_27_block0(v88: ptr, v89: u64): - v90 = get_local __ptr u64, __anon_10, !259 - mem_copy_val v90, v63 - v91 = const u64 6 - v92 = add v90, v91, !260 - v93 = cast_ptr v92 to __ptr u8, !261 - v94 = add v88, v80, !262 - v95 = cast_ptr v94 to __ptr u8, !263 - mem_copy_bytes v95, v93, 2, !264 - v96 = get_local __ptr { ptr, u64, u64 }, __anon_20, !265 - v97 = const u64 0 - v98 = get_elem_ptr v96, __ptr ptr, v97, !266 - store v88 to v98, !267 - v99 = const u64 1 - v100 = get_elem_ptr v96, __ptr u64, v99, !268 - store v89 to v100, !269 - v101 = const u64 2 - v102 = get_elem_ptr v96, __ptr u64, v101, !270 - store v82 to v102, !271 - v103 = asm(buffer: v96) -> __ptr { ptr, u64, u64 } buffer { - } - v104 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_02 - mem_copy_val v104, v103 - v105 = get_local __ptr { { ptr, u64, u64 } }, __anon_30, !273 - v106 = const u64 0 - v107 = get_elem_ptr v105, __ptr { ptr, u64, u64 }, v106, !274 - mem_copy_val v107, v104 - v108 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !276 - mem_copy_val v108, v105 - v109 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_, !278 - v110 = const u64 3 - v111 = get_elem_ptr v109, __ptr u8, v110, !280 - v112 = load v111, !281 - v113 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !283 - v114 = get_local __ptr { { ptr, u64, u64 } }, buffer_2, !286 - mem_copy_val v114, v113 - v115 = get_local __ptr { { ptr, u64, u64 } }, buffer_2, !288 + br encode_22_abi_encode_37_abi_encode_38_block0(v106, v105), !290 + + encode_22_abi_encode_37_abi_encode_39_block0(v107: ptr, v108: u64): + v109 = get_local __ptr u64, __anon_10, !291 + mem_copy_val v109, v82 + v110 = const u64 6 + v111 = add v109, v110, !292 + v112 = cast_ptr v111 to __ptr u8, !293 + v113 = add v107, v99, !294 + v114 = cast_ptr v113 to __ptr u8, !295 + mem_copy_bytes v114, v112, 2, !296 + v115 = get_local __ptr { ptr, u64, u64 }, __anon_20, !297 v116 = const u64 0 - v117 = get_elem_ptr v115, __ptr { ptr, u64, u64 }, v116, !289 - v118 = asm(buffer: v117) -> __ptr { ptr, u64, u64 } buffer { + v117 = get_elem_ptr v115, __ptr ptr, v116, !298 + store v107 to v117, !299 + v118 = const u64 1 + v119 = get_elem_ptr v115, __ptr u64, v118, !300 + store v108 to v119, !301 + v120 = const u64 2 + v121 = get_elem_ptr v115, __ptr u64, v120, !302 + store v101 to v121, !303 + v122 = asm(buffer: v115) -> __ptr { ptr, u64, u64 } buffer { + } + v123 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_03 + mem_copy_val v123, v122 + v124 = get_local __ptr { { ptr, u64, u64 } }, __anon_30, !305 + v125 = const u64 0 + v126 = get_elem_ptr v124, __ptr { ptr, u64, u64 }, v125, !306 + mem_copy_val v126, v123 + v127 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !308 + mem_copy_val v127, v124 + v128 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !310 + v129 = const u64 3 + v130 = get_elem_ptr v128, __ptr u8, v129, !312 + v131 = load v130, !313 + v132 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !315 + v133 = get_local __ptr { { ptr, u64, u64 } }, buffer_2, !318 + mem_copy_val v133, v132 + v134 = get_local __ptr { { ptr, u64, u64 } }, buffer_2, !320 + v135 = const u64 0 + v136 = get_elem_ptr v134, __ptr { ptr, u64, u64 }, v135, !321 + v137 = asm(buffer: v136) -> __ptr { ptr, u64, u64 } buffer { } - v119 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_03 - mem_copy_val v119, v118 - v120 = get_local __ptr { ptr, u64, u64 }, __anon_01, !290 - mem_copy_val v120, v119 - v121 = const u64 0 - v122 = get_elem_ptr v120, __ptr ptr, v121, !291 - v123 = load v122, !292 - v124 = const u64 1 - v125 = get_elem_ptr v120, __ptr u64, v124, !293 - v126 = load v125, !294 - v127 = const u64 2 - v128 = get_elem_ptr v120, __ptr u64, v127, !295 - v129 = load v128, !296 - v130 = const u64 1 - v131 = add v129, v130, !297 - v132 = cmp gt v131 v126, !298 - cbr v132, encode_22_abi_encode_25_abi_encode_28_block1(), encode_22_abi_encode_25_abi_encode_28_block0(v123, v126), !299 - - encode_22_abi_encode_25_abi_encode_27_block1(): - v133 = const u64 2 - v134 = mul v77, v133, !300 - v135 = add v134, v81, !301 - v136 = asm(new_cap: v135, old_ptr: v74, len: v80) -> __ptr u8 hp, !302 { + v138 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_04 + mem_copy_val v138, v137 + v139 = get_local __ptr { ptr, u64, u64 }, __anon_01, !322 + mem_copy_val v139, v138 + v140 = const u64 0 + v141 = get_elem_ptr v139, __ptr ptr, v140, !323 + v142 = load v141, !324 + v143 = const u64 1 + v144 = get_elem_ptr v139, __ptr u64, v143, !325 + v145 = load v144, !326 + v146 = const u64 2 + v147 = get_elem_ptr v139, __ptr u64, v146, !327 + v148 = load v147, !328 + v149 = const u64 1 + v150 = add v148, v149, !329 + v151 = cmp gt v150 v145, !330 + cbr v151, encode_22_abi_encode_37_abi_encode_40_block1(), encode_22_abi_encode_37_abi_encode_40_block0(v142, v145), !331 + + encode_22_abi_encode_37_abi_encode_39_block1(): + v152 = const u64 2 + v153 = mul v96, v152, !332 + v154 = add v153, v100, !333 + v155 = asm(new_cap: v154, old_ptr: v93, len: v99) -> __ptr u8 hp, !334 { aloc new_cap mcp hp old_ptr len } - br encode_22_abi_encode_25_abi_encode_27_block0(v136, v135), !303 - - encode_22_abi_encode_25_abi_encode_28_block0(v137: ptr, v138: u64): - v139 = add v137, v129, !304 - v140 = cast_ptr v139 to __ptr u8, !305 - store v112 to v140, !306 - v141 = get_local __ptr { ptr, u64, u64 }, __anon_11, !307 - v142 = const u64 0 - v143 = get_elem_ptr v141, __ptr ptr, v142, !308 - store v137 to v143, !309 - v144 = const u64 1 - v145 = get_elem_ptr v141, __ptr u64, v144, !310 - store v138 to v145, !311 - v146 = const u64 2 - v147 = get_elem_ptr v141, __ptr u64, v146, !312 - store v131 to v147, !313 - v148 = asm(buffer: v141) -> __ptr { ptr, u64, u64 } buffer { + br encode_22_abi_encode_37_abi_encode_39_block0(v155, v154), !335 + + encode_22_abi_encode_37_abi_encode_40_block0(v156: ptr, v157: u64): + v158 = add v156, v148, !336 + v159 = cast_ptr v158 to __ptr u8, !337 + store v131 to v159, !338 + v160 = get_local __ptr { ptr, u64, u64 }, __anon_11, !339 + v161 = const u64 0 + v162 = get_elem_ptr v160, __ptr ptr, v161, !340 + store v156 to v162, !341 + v163 = const u64 1 + v164 = get_elem_ptr v160, __ptr u64, v163, !342 + store v157 to v164, !343 + v165 = const u64 2 + v166 = get_elem_ptr v160, __ptr u64, v165, !344 + store v150 to v166, !345 + v167 = asm(buffer: v160) -> __ptr { ptr, u64, u64 } buffer { } - v149 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_04 - mem_copy_val v149, v148 - v150 = get_local __ptr { { ptr, u64, u64 } }, __anon_21, !315 - v151 = const u64 0 - v152 = get_elem_ptr v150, __ptr { ptr, u64, u64 }, v151, !316 - mem_copy_val v152, v149 - v153 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !318 - mem_copy_val v153, v150 - v154 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_, !320 - v155 = const u64 4 - v156 = get_elem_ptr v154, __ptr { { ptr, u64 }, u64 }, v155, !322 - v157 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !324 - v158 = get_local __ptr { { ptr, u64 }, u64 }, self_3, !327 - mem_copy_val v158, v156 - v159 = get_local __ptr { { ptr, u64, u64 } }, buffer_3, !328 - mem_copy_val v159, v157 - v160 = get_local __ptr { { ptr, u64 }, u64 }, self_3, !330 - v161 = const u64 1 - v162 = get_elem_ptr v160, __ptr u64, v161, !331 - v163 = load v162, !332 - v164 = get_local __ptr { { ptr, u64, u64 } }, buffer_3, !334 - v165 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg0 - mem_copy_val v165, v164 - v166 = get_local __ptr { { ptr, u64, u64 } }, __ret_val0 - v167 = call abi_encode_5(v163, v165, v166) - v168 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !336 - mem_copy_val v168, v166 - v169 = const u64 0, !337 - br encode_22_abi_encode_25_abi_encode_29_while(v169), !338 - - encode_22_abi_encode_25_abi_encode_28_block1(): - v170 = const u64 2 - v171 = mul v126, v170, !339 - v172 = add v171, v130, !340 - v173 = asm(new_cap: v172, old_ptr: v123, len: v129) -> __ptr u8 hp, !341 { + v168 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_05 + mem_copy_val v168, v167 + v169 = get_local __ptr { { ptr, u64, u64 } }, __anon_21, !347 + v170 = const u64 0 + v171 = get_elem_ptr v169, __ptr { ptr, u64, u64 }, v170, !348 + mem_copy_val v171, v168 + v172 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !350 + mem_copy_val v172, v169 + v173 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !352 + v174 = const u64 4 + v175 = get_elem_ptr v173, __ptr { { ptr, u64 }, u64 }, v174, !354 + v176 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !356 + v177 = get_local __ptr { { ptr, u64 }, u64 }, self_3, !359 + mem_copy_val v177, v175 + v178 = get_local __ptr { { ptr, u64, u64 } }, buffer_3, !360 + mem_copy_val v178, v176 + v179 = get_local __ptr { { ptr, u64 }, u64 }, self_3, !362 + v180 = const u64 1 + v181 = get_elem_ptr v179, __ptr u64, v180, !363 + v182 = load v181, !364 + v183 = get_local __ptr { { ptr, u64, u64 } }, buffer_3, !366 + v184 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg0 + mem_copy_val v184, v183 + v185 = get_local __ptr { { ptr, u64, u64 } }, __ret_val0 + v186 = call abi_encode_5(v182, v184, v185) + v187 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !368 + mem_copy_val v187, v185 + v188 = const u64 0, !369 + br encode_22_abi_encode_37_abi_encode_41_while(v188), !370 + + encode_22_abi_encode_37_abi_encode_40_block1(): + v189 = const u64 2 + v190 = mul v145, v189, !371 + v191 = add v190, v149, !372 + v192 = asm(new_cap: v191, old_ptr: v142, len: v148) -> __ptr u8 hp, !373 { aloc new_cap mcp hp old_ptr len } - br encode_22_abi_encode_25_abi_encode_28_block0(v173, v172), !342 - - encode_22_abi_encode_25_abi_encode_29_while(v174: u64): - v175 = cmp lt v174 v163, !345 - cbr v175, encode_22_abi_encode_25_abi_encode_29_while_body(), encode_22_abi_encode_25_abi_encode_29_end_while(), !346 - - encode_22_abi_encode_25_abi_encode_29_while_body(): - v176 = get_local __ptr { { ptr, u64 }, u64 }, self_3, !348 - v177 = get_local __ptr { { ptr, u64 }, u64 }, self_10, !351 - mem_copy_val v177, v176 - v178 = get_local __ptr { { ptr, u64 }, u64 }, self_10, !353 - v179 = const u64 0 - v180 = get_elem_ptr v178, __ptr { ptr, u64 }, v179, !354 - v181 = const u64 0 - v182 = get_elem_ptr v180, __ptr ptr, v181, !355 - v183 = load v182, !356 - v184 = const u64 8 - v185 = mul v184, v174, !359 - v186 = add v183, v185, !360 - v187 = asm(ptr: v186, val) -> u64 val, !364 { - lw val ptr i0, !365 - } - v188 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !367 - v189 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg1 - mem_copy_val v189, v188 - v190 = get_local __ptr { { ptr, u64, u64 } }, __ret_val1 - v191 = call abi_encode_5(v187, v189, v190) - v192 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !369 - mem_copy_val v192, v190 - v193 = const u64 1, !370 - v194 = add v174, v193, !373 - br encode_22_abi_encode_25_abi_encode_29_while(v194), !374 - - encode_22_abi_encode_25_abi_encode_29_end_while(): - v195 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !376 - v196 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !378 + br encode_22_abi_encode_37_abi_encode_40_block0(v192, v191), !374 + + encode_22_abi_encode_37_abi_encode_41_while(v193: u64): + v194 = cmp lt v193 v182, !377 + cbr v194, encode_22_abi_encode_37_abi_encode_41_while_body(), encode_22_abi_encode_37_abi_encode_41_end_while(), !378 + + encode_22_abi_encode_37_abi_encode_41_while_body(): + v195 = get_local __ptr { { ptr, u64 }, u64 }, self_3, !380 + v196 = get_local __ptr { { ptr, u64 }, u64 }, self_10, !383 mem_copy_val v196, v195 - v197 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_, !380 - v198 = const u64 5 - v199 = get_elem_ptr v197, __ptr slice, v198, !382 - v200 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !384 - v201 = get_local __ptr slice, self_4, !387 - mem_copy_val v201, v199 - v202 = get_local __ptr { { ptr, u64, u64 } }, buffer_4, !388 - mem_copy_val v202, v200 - v203 = get_local __ptr { { ptr, u64, u64 } }, buffer_4, !390 - v204 = const u64 0 - v205 = get_elem_ptr v203, __ptr { ptr, u64, u64 }, v204, !391 - v206 = asm(buffer: v205) -> __ptr { ptr, u64, u64 } buffer { + v197 = get_local __ptr { { ptr, u64 }, u64 }, self_10, !385 + v198 = const u64 0 + v199 = get_elem_ptr v197, __ptr { ptr, u64 }, v198, !386 + v200 = const u64 0 + v201 = get_elem_ptr v199, __ptr ptr, v200, !387 + v202 = load v201, !388 + v203 = const u64 8 + v204 = mul v203, v193, !391 + v205 = add v202, v204, !392 + v206 = asm(ptr: v205, val) -> u64 val, !396 { + lw val ptr i0, !397 } - v207 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_05 - mem_copy_val v207, v206 - v208 = get_local __ptr { ptr, u64, u64 }, __anon_02, !392 + v207 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !399 + v208 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg1 mem_copy_val v208, v207 - v209 = const u64 0 - v210 = get_elem_ptr v208, __ptr ptr, v209, !393 - v211 = load v210, !394 - v212 = const u64 1 - v213 = get_elem_ptr v208, __ptr u64, v212, !395 - v214 = load v213, !396 - v215 = const u64 2 - v216 = get_elem_ptr v208, __ptr u64, v215, !397 - v217 = load v216, !398 - v218 = get_local __ptr slice, self_4, !400 - v219 = get_local __ptr slice, __aggr_memcpy_07 - mem_copy_val v219, v218 - v220 = asm(item: v218) -> __ptr { u64, u64 } item { + v209 = get_local __ptr { { ptr, u64, u64 } }, __ret_val1 + v210 = call abi_encode_5(v206, v208, v209) + v211 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !401 + mem_copy_val v211, v209 + v212 = const u64 1, !402 + v213 = add v193, v212, !405 + br encode_22_abi_encode_37_abi_encode_41_while(v213), !406 + + encode_22_abi_encode_37_abi_encode_41_end_while(): + v214 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !408 + v215 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !410 + mem_copy_val v215, v214 + v216 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !412 + v217 = const u64 5 + v218 = get_elem_ptr v216, __ptr slice, v217, !414 + v219 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !416 + v220 = get_local __ptr slice, self_4, !419 + mem_copy_val v220, v218 + v221 = get_local __ptr { { ptr, u64, u64 } }, buffer_4, !420 + mem_copy_val v221, v219 + v222 = get_local __ptr { { ptr, u64, u64 } }, buffer_4, !422 + v223 = const u64 0 + v224 = get_elem_ptr v222, __ptr { ptr, u64, u64 }, v223, !423 + v225 = asm(buffer: v224) -> __ptr { ptr, u64, u64 } buffer { + } + v226 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_06 + mem_copy_val v226, v225 + v227 = get_local __ptr { ptr, u64, u64 }, __anon_02, !424 + mem_copy_val v227, v226 + v228 = const u64 0 + v229 = get_elem_ptr v227, __ptr ptr, v228, !425 + v230 = load v229, !426 + v231 = const u64 1 + v232 = get_elem_ptr v227, __ptr u64, v231, !427 + v233 = load v232, !428 + v234 = const u64 2 + v235 = get_elem_ptr v227, __ptr u64, v234, !429 + v236 = load v235, !430 + v237 = get_local __ptr slice, self_4, !432 + v238 = get_local __ptr slice, __aggr_memcpy_08 + mem_copy_val v238, v237 + v239 = asm(item: v237) -> __ptr { u64, u64 } item { } - v221 = get_local __ptr { u64, u64 }, __aggr_memcpy_06 - mem_copy_val v221, v220 - v222 = get_local __ptr { u64, u64 }, __anon_12, !401 - mem_copy_val v222, v221 - v223 = const u64 1 - v224 = get_elem_ptr v222, __ptr u64, v223, !402 - v225 = load v224, !403 - v226 = const u64 8 - v227 = add v225, v226, !404 - v228 = add v217, v227, !405 - v229 = cmp gt v228 v214, !406 - cbr v229, encode_22_abi_encode_25_abi_encode_33_block1(), encode_22_abi_encode_25_abi_encode_33_block0(v211, v214), !407 - - encode_22_abi_encode_25_abi_encode_33_block0(v230: ptr, v231: u64): - v232 = get_local __ptr slice, __anon_22, !408 - mem_copy_val v232, v219 - v233 = add v230, v217, !409 - v234 = cast_ptr v233 to __ptr u8, !410 - v235 = asm(item_ptr: v232, len: v217, addr: v234, data_ptr, item_len, new_len) -> u64 new_len, !411 { + v240 = get_local __ptr { u64, u64 }, __aggr_memcpy_07 + mem_copy_val v240, v239 + v241 = get_local __ptr { u64, u64 }, __anon_12, !433 + mem_copy_val v241, v240 + v242 = const u64 1 + v243 = get_elem_ptr v241, __ptr u64, v242, !434 + v244 = load v243, !435 + v245 = const u64 8 + v246 = add v244, v245, !436 + v247 = add v236, v246, !437 + v248 = cmp gt v247 v233, !438 + cbr v248, encode_22_abi_encode_37_abi_encode_45_block1(), encode_22_abi_encode_37_abi_encode_45_block0(v230, v233), !439 + + encode_22_abi_encode_37_abi_encode_45_block0(v249: ptr, v250: u64): + v251 = get_local __ptr slice, __anon_22, !440 + mem_copy_val v251, v238 + v252 = add v249, v236, !441 + v253 = cast_ptr v252 to __ptr u8, !442 + v254 = asm(item_ptr: v251, len: v236, addr: v253, data_ptr, item_len, new_len) -> u64 new_len, !443 { lw item_len item_ptr i1 sw addr item_len i0 addi addr addr i8 @@ -809,217 +870,329 @@ script { addi new_len len i8 add new_len new_len item_len } - v236 = get_local __ptr { ptr, u64, u64 }, __anon_31, !412 - v237 = const u64 0 - v238 = get_elem_ptr v236, __ptr ptr, v237, !413 - store v230 to v238, !414 - v239 = const u64 1 - v240 = get_elem_ptr v236, __ptr u64, v239, !415 - store v231 to v240, !416 - v241 = const u64 2 - v242 = get_elem_ptr v236, __ptr u64, v241, !417 - store v235 to v242, !418 - v243 = asm(buffer: v236) -> __ptr { ptr, u64, u64 } buffer { - } - v244 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_08 - mem_copy_val v244, v243 - v245 = get_local __ptr { { ptr, u64, u64 } }, __anon_4, !420 - v246 = const u64 0 - v247 = get_elem_ptr v245, __ptr { ptr, u64, u64 }, v246, !421 - mem_copy_val v247, v244 - v248 = get_local __ptr { { ptr, u64, u64 } }, buffer_______, !423 - mem_copy_val v248, v245 - v249 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_, !425 - v250 = const u64 6 - v251 = get_elem_ptr v249, __ptr u256, v250, !427 - v252 = get_local __ptr { { ptr, u64, u64 } }, buffer_______, !429 - v253 = get_local __ptr u256, self_5, !432 - mem_copy_val v253, v251 - v254 = get_local __ptr { { ptr, u64, u64 } }, buffer_5, !433 - mem_copy_val v254, v252 - v255 = get_local __ptr { { ptr, u64, u64 } }, buffer_5, !435 + v255 = get_local __ptr { ptr, u64, u64 }, __anon_31, !444 v256 = const u64 0 - v257 = get_elem_ptr v255, __ptr { ptr, u64, u64 }, v256, !436 - v258 = asm(buffer: v257) -> __ptr { ptr, u64, u64 } buffer { + v257 = get_elem_ptr v255, __ptr ptr, v256, !445 + store v249 to v257, !446 + v258 = const u64 1 + v259 = get_elem_ptr v255, __ptr u64, v258, !447 + store v250 to v259, !448 + v260 = const u64 2 + v261 = get_elem_ptr v255, __ptr u64, v260, !449 + store v254 to v261, !450 + v262 = asm(buffer: v255) -> __ptr { ptr, u64, u64 } buffer { + } + v263 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_09 + mem_copy_val v263, v262 + v264 = get_local __ptr { { ptr, u64, u64 } }, __anon_4, !452 + v265 = const u64 0 + v266 = get_elem_ptr v264, __ptr { ptr, u64, u64 }, v265, !453 + mem_copy_val v266, v263 + v267 = get_local __ptr { { ptr, u64, u64 } }, buffer_______, !455 + mem_copy_val v267, v264 + v268 = get_local __ptr { u64, u64, u64, u8, { { ptr, u64 }, u64 }, slice, u256 }, self_0, !457 + v269 = const u64 6 + v270 = get_elem_ptr v268, __ptr u256, v269, !459 + v271 = get_local __ptr { { ptr, u64, u64 } }, buffer_______, !461 + v272 = get_local __ptr u256, self_5, !464 + mem_copy_val v272, v270 + v273 = get_local __ptr { { ptr, u64, u64 } }, buffer_5, !465 + mem_copy_val v273, v271 + v274 = get_local __ptr { { ptr, u64, u64 } }, buffer_5, !467 + v275 = const u64 0 + v276 = get_elem_ptr v274, __ptr { ptr, u64, u64 }, v275, !468 + v277 = asm(buffer: v276) -> __ptr { ptr, u64, u64 } buffer { } - v259 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_09 - mem_copy_val v259, v258 - v260 = get_local __ptr { ptr, u64, u64 }, __anon_03, !437 - mem_copy_val v260, v259 - v261 = const u64 0 - v262 = get_elem_ptr v260, __ptr ptr, v261, !438 - v263 = load v262, !439 - v264 = const u64 1 - v265 = get_elem_ptr v260, __ptr u64, v264, !440 - v266 = load v265, !441 - v267 = const u64 2 - v268 = get_elem_ptr v260, __ptr u64, v267, !442 - v269 = load v268, !443 - v270 = get_local __ptr u256, self_5, !445 - v271 = const u64 32 - v272 = add v269, v271, !446 - v273 = cmp gt v272 v266, !447 - cbr v273, encode_22_abi_encode_25_abi_encode_34_block1(), encode_22_abi_encode_25_abi_encode_34_block0(v263, v266), !448 - - encode_22_abi_encode_25_abi_encode_33_block1(): - v274 = const u64 2 - v275 = mul v214, v274, !449 - v276 = add v275, v227, !450 - v277 = asm(new_cap: v276, old_ptr: v211, len: v217) -> __ptr u8 hp, !451 { + v278 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_010 + mem_copy_val v278, v277 + v279 = get_local __ptr { ptr, u64, u64 }, __anon_03, !469 + mem_copy_val v279, v278 + v280 = const u64 0 + v281 = get_elem_ptr v279, __ptr ptr, v280, !470 + v282 = load v281, !471 + v283 = const u64 1 + v284 = get_elem_ptr v279, __ptr u64, v283, !472 + v285 = load v284, !473 + v286 = const u64 2 + v287 = get_elem_ptr v279, __ptr u64, v286, !474 + v288 = load v287, !475 + v289 = get_local __ptr u256, self_5, !477 + v290 = const u64 32 + v291 = add v288, v290, !478 + v292 = cmp gt v291 v285, !479 + cbr v292, encode_22_abi_encode_37_abi_encode_46_block1(), encode_22_abi_encode_37_abi_encode_46_block0(v282, v285), !480 + + encode_22_abi_encode_37_abi_encode_45_block1(): + v293 = const u64 2 + v294 = mul v233, v293, !481 + v295 = add v294, v246, !482 + v296 = asm(new_cap: v295, old_ptr: v230, len: v236) -> __ptr u8 hp, !483 { aloc new_cap mcp hp old_ptr len } - br encode_22_abi_encode_25_abi_encode_33_block0(v277, v276), !452 - - encode_22_abi_encode_25_abi_encode_34_block0(v278: ptr, v279: u64): - v280 = get_local __ptr u256, __anon_13, !453 - mem_copy_val v280, v270 - v281 = add v278, v269, !454 - v282 = cast_ptr v281 to __ptr u8, !455 - mem_copy_bytes v282, v280, 32, !456 - v283 = get_local __ptr { ptr, u64, u64 }, __anon_23, !457 - v284 = const u64 0 - v285 = get_elem_ptr v283, __ptr ptr, v284, !458 - store v278 to v285, !459 - v286 = const u64 1 - v287 = get_elem_ptr v283, __ptr u64, v286, !460 - store v279 to v287, !461 - v288 = const u64 2 - v289 = get_elem_ptr v283, __ptr u64, v288, !462 - store v272 to v289, !463 - v290 = asm(buffer: v283) -> __ptr { ptr, u64, u64 } buffer { + br encode_22_abi_encode_37_abi_encode_45_block0(v296, v295), !484 + + encode_22_abi_encode_37_abi_encode_46_block0(v297: ptr, v298: u64): + v299 = get_local __ptr u256, __anon_13, !485 + mem_copy_val v299, v289 + v300 = add v297, v288, !486 + v301 = cast_ptr v300 to __ptr u8, !487 + mem_copy_bytes v301, v299, 32, !488 + v302 = get_local __ptr { ptr, u64, u64 }, __anon_23, !489 + v303 = const u64 0 + v304 = get_elem_ptr v302, __ptr ptr, v303, !490 + store v297 to v304, !491 + v305 = const u64 1 + v306 = get_elem_ptr v302, __ptr u64, v305, !492 + store v298 to v306, !493 + v307 = const u64 2 + v308 = get_elem_ptr v302, __ptr u64, v307, !494 + store v291 to v308, !495 + v309 = asm(buffer: v302) -> __ptr { ptr, u64, u64 } buffer { } - v291 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_010 - mem_copy_val v291, v290 - v292 = get_local __ptr { { ptr, u64, u64 } }, __anon_32, !465 - v293 = const u64 0 - v294 = get_elem_ptr v292, __ptr { ptr, u64, u64 }, v293, !466 - mem_copy_val v294, v291 - v295 = get_local __ptr { { ptr, u64, u64 } }, buffer________, !468 - mem_copy_val v295, v292 - v296 = get_local __ptr { { ptr, u64, u64 } }, buffer________, !470 - v297 = get_local __ptr { { ptr, u64, u64 } }, buffer, !472 - mem_copy_val v297, v296 - v298 = get_local __ptr { { ptr, u64, u64 } }, buffer, !474 - v299 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg2 - mem_copy_val v299, v298 - v300 = get_local __ptr slice, __ret_val3 - v301 = call as_raw_slice_7(v299, v300) - v302 = get_local __ptr slice, __log_arg - mem_copy_val v302, v300 - v303 = const u64 4579537983717831593 - log __ptr slice v302, v303 - v304 = const unit () - ret () v304 - - encode_22_abi_encode_25_abi_encode_34_block1(): - v305 = const u64 2 - v306 = mul v266, v305, !475 - v307 = add v306, v271, !476 - v308 = asm(new_cap: v307, old_ptr: v263, len: v269) -> __ptr u8 hp, !477 { + v310 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_011 + mem_copy_val v310, v309 + v311 = get_local __ptr { { ptr, u64, u64 } }, __anon_32, !497 + v312 = const u64 0 + v313 = get_elem_ptr v311, __ptr { ptr, u64, u64 }, v312, !498 + mem_copy_val v313, v310 + v314 = get_local __ptr { { ptr, u64, u64 } }, buffer________, !500 + mem_copy_val v314, v311 + v315 = get_local __ptr { { ptr, u64, u64 } }, buffer________, !502 + v316 = get_local __ptr { { ptr, u64, u64 } }, buffer, !504 + mem_copy_val v316, v315 + v317 = get_local __ptr { { ptr, u64, u64 } }, buffer, !506 + v318 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg2 + mem_copy_val v318, v317 + v319 = get_local __ptr slice, __ret_val3 + v320 = call as_raw_slice_7(v318, v319) + v321 = get_local __ptr slice, __tmp_block_arg + mem_copy_val v321, v319 + br encode_22_block2(v321), !82 + + encode_22_abi_encode_37_abi_encode_46_block1(): + v322 = const u64 2 + v323 = mul v285, v322, !507 + v324 = add v323, v290, !508 + v325 = asm(new_cap: v324, old_ptr: v282, len: v288) -> __ptr u8 hp, !509 { aloc new_cap mcp hp old_ptr len } - br encode_22_abi_encode_25_abi_encode_34_block0(v308, v307), !478 + br encode_22_abi_encode_37_abi_encode_46_block0(v325, v324), !510 + + encode_22_block2(v326: __ptr slice): + v327 = get_local __ptr slice, __log_arg + mem_copy_val v327, v326 + v328 = const u64 4579537983717831593 + log __ptr slice v327, v328 + v329 = const unit () + ret () v329 } - fn local_log_36(item: __ptr { u64 }) -> (), !479 { + fn local_log_48(item: __ptr { u64 }) -> (), !511 { + local mut slice __aggr_memcpy_0 + local { ptr, u64 } __anon_0 local slice __log_arg - local { { ptr, u64, u64 } } __tmp_arg1 - local { { ptr, u64, u64 } } buffer + local { u64 } item_ + local { u64 } item_0 entry(item: __ptr { u64 }): - v0 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg1 - v1 = call new_6(v0) - v2 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg1 - v3 = get_local __ptr { { ptr, u64, u64 } }, buffer - v4 = call abi_encode_40(item, v2, v3) - v5 = get_local __ptr { { ptr, u64, u64 } }, buffer - v6 = get_local __ptr slice, __log_arg - v7 = call as_raw_slice_7(v5, v6) - v8 = get_local __ptr slice, __log_arg - v9 = const u64 16566583104751091389 - log __ptr slice v8, v9 - v10 = const unit () - ret () v10 + v0 = get_local __ptr { u64 }, item_ + mem_copy_val v0, item + v1 = get_local __ptr { u64 }, item_, !82 + v2 = get_local __ptr { u64 }, item_0, !82 + mem_copy_val v2, v1 + v3 = get_local __ptr { u64 }, item_0, !512 + v4 = const u64 8 + v5 = asm(size: v4, src: v3) -> ptr hp, !513 { + aloc size, !87 + mcp hp src size, !88 + } + v6 = get_local __ptr { ptr, u64 }, __anon_0, !514 + v7 = const u64 0 + v8 = get_elem_ptr v6, __ptr ptr, v7, !515 + store v5 to v8, !516 + v9 = const u64 1 + v10 = get_elem_ptr v6, __ptr u64, v9, !517 + store v4 to v10, !518 + v11 = asm(s: v6) -> __ptr slice s { + } + v12 = get_local __ptr slice, __aggr_memcpy_0 + mem_copy_val v12, v11 + v13 = get_local __ptr slice, __log_arg + mem_copy_val v13, v12 + v14 = const u64 16566583104751091389 + log __ptr slice v13, v14 + v15 = const unit () + ret () v15 } - pub fn abi_encode_40(self: __ptr { u64 }, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }) -> (), !482 { + pub fn abi_encode_52(self: __ptr { u64 }, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }) -> (), !521 { entry(self: __ptr { u64 }, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }): v0 = const u64 0 - v1 = get_elem_ptr self, __ptr u64, v0, !483 + v1 = get_elem_ptr self, __ptr u64, v0, !522 v2 = load v1 v3 = call abi_encode_5(v2, buffer, __ret_value) v4 = const unit () ret () v4 } - fn local_log_41(item: __ptr { u64, ( { u64 } | () ) }) -> (), !484 { + fn local_log_53(item: __ptr { u64, ( { u64 } | () ) }) -> (), !523 { + local mut slice __aggr_memcpy_0 + local { ptr, u64 } __anon_0 local slice __log_arg local { u64, ( { u64 } | () ) } __matched_value_1 + local { { ptr, u64, u64 } } __ret_val + local { { ptr, u64, u64 } } __ret_val0 + local { { ptr, u64, u64 } } __ret_val1 + local slice __ret_val2 + local { { ptr, u64, u64 } } __ret_val3 + local { { ptr, u64, u64 } } __tmp_arg + local { { ptr, u64, u64 } } __tmp_arg0 + local { { ptr, u64, u64 } } __tmp_arg1 + local { u64 } __tmp_arg2 + local { { ptr, u64, u64 } } __tmp_arg3 local { { ptr, u64, u64 } } __tmp_block_arg + local slice __tmp_block_arg0 + local { { ptr, u64, u64 } } buffer local { { ptr, u64, u64 } } buffer_ local { { ptr, u64, u64 } } buffer__ + local { { ptr, u64, u64 } } buffer___ + local { { ptr, u64, u64 } } buffer____ + local { u64, ( { u64 } | () ) } item_ + local { u64, ( { u64 } | () ) } item_0 + local { u64, ( { u64 } | () ) } self_1 + local { u64 } value entry(item: __ptr { u64, ( { u64 } | () ) }): - v0 = get_local __ptr { { ptr, u64, u64 } }, buffer_ - v1 = call new_6(v0) - v2 = get_local __ptr { u64, ( { u64 } | () ) }, __matched_value_1, !486 - mem_copy_val v2, item - v3 = const u64 0 - v4 = get_elem_ptr item, __ptr u64, v3 - v5 = load v4, !487 - v6 = const u64 0, !488 - v7 = cmp eq v5 v6, !491 - cbr v7, encode_42_abi_encode_44_block0(), encode_42_abi_encode_44_block1(), !492 - - encode_42_abi_encode_44_block0(): - v8 = get_local __ptr { u64, ( { u64 } | () ) }, __matched_value_1, !493 - v9 = const u64 1 - v10 = const u64 0 - v11 = get_elem_ptr v8, __ptr { u64 }, v9, v10, !494 - v12 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !496 - v13 = get_local __ptr { { ptr, u64, u64 } }, buffer__ - v14 = const u64 0, !497 - v15 = call abi_encode_5(v14, v12, v13) - v16 = get_local __ptr { { ptr, u64, u64 } }, buffer__ - v17 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg - v18 = call abi_encode_40(v11, v16, v17) - v19 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg - br encode_42_abi_encode_44_block5(v19), !498 - - encode_42_abi_encode_44_block1(): - v20 = get_local __ptr { u64, ( { u64 } | () ) }, __matched_value_1, !499 - v21 = const u64 0 - v22 = get_elem_ptr v20, __ptr u64, v21, !500 - v23 = load v22, !501 - v24 = const u64 1, !488 - v25 = cmp eq v23 v24, !504 - cbr v25, encode_42_abi_encode_44_block2(), encode_42_abi_encode_44_block3(), !505 - - encode_42_abi_encode_44_block2(): - v26 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !507 - v27 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg - v28 = const u64 1, !508 - v29 = call abi_encode_5(v28, v26, v27) - v30 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg - br encode_42_abi_encode_44_block5(v30), !509 - - encode_42_abi_encode_44_block3(): - v31 = const u64 14757395258967588866, !485 - revert v31, !510 - - encode_42_abi_encode_44_block5(v32: __ptr { { ptr, u64, u64 } }): - v33 = get_local __ptr slice, __log_arg - v34 = call as_raw_slice_7(v32, v33) - v35 = get_local __ptr slice, __log_arg - v36 = const u64 5087777005172090899 - log __ptr slice v35, v36 - v37 = const unit () - ret () v37 + v0 = get_local __ptr { u64, ( { u64 } | () ) }, item_ + mem_copy_val v0, item + v1 = get_local __ptr { u64, ( { u64 } | () ) }, item_, !82 + v2 = get_local __ptr { u64, ( { u64 } | () ) }, item_0, !82 + mem_copy_val v2, v1 + v3 = const bool false, !524 + cbr v3, encode_54_block0(), encode_54_block1(), !525 + + encode_54_block0(): + v4 = get_local __ptr { u64, ( { u64 } | () ) }, item_0, !526 + v5 = const u64 16 + v6 = asm(size: v5, src: v4) -> ptr hp, !527 { + aloc size, !87 + mcp hp src size, !88 + } + v7 = get_local __ptr { ptr, u64 }, __anon_0, !528 + v8 = const u64 0 + v9 = get_elem_ptr v7, __ptr ptr, v8, !529 + store v6 to v9, !530 + v10 = const u64 1 + v11 = get_elem_ptr v7, __ptr u64, v10, !531 + store v5 to v11, !532 + v12 = asm(s: v7) -> __ptr slice s { + } + v13 = get_local __ptr slice, __aggr_memcpy_0 + mem_copy_val v13, v12 + v14 = get_local __ptr slice, __tmp_block_arg0 + mem_copy_val v14, v13 + br encode_54_block2(v14), !82 + + encode_54_block1(): + v15 = get_local __ptr { u64, ( { u64 } | () ) }, item_0, !533 + v16 = get_local __ptr { { ptr, u64, u64 } }, __ret_val1 + v17 = call new_6(v16) + v18 = get_local __ptr { u64, ( { u64 } | () ) }, self_1, !534 + mem_copy_val v18, v15 + v19 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !535 + mem_copy_val v19, v16 + v20 = get_local __ptr { u64, ( { u64 } | () ) }, self_1, !537 + v21 = get_local __ptr { u64, ( { u64 } | () ) }, __matched_value_1, !539 + mem_copy_val v21, v20 + v22 = get_local __ptr { u64, ( { u64 } | () ) }, __matched_value_1, !540 + v23 = const u64 0 + v24 = get_elem_ptr v22, __ptr u64, v23, !541 + v25 = load v24, !542 + v26 = const u64 0, !536 + v27 = cmp eq v25 v26, !545 + cbr v27, encode_54_abi_encode_59_block0(), encode_54_abi_encode_59_block1(), !546 + + encode_54_abi_encode_59_block0(): + v28 = get_local __ptr { u64, ( { u64 } | () ) }, __matched_value_1, !547 + v29 = const u64 1 + v30 = const u64 0 + v31 = get_elem_ptr v28, __ptr { u64 }, v29, v30, !548 + v32 = get_local __ptr { u64 }, value, !550 + mem_copy_val v32, v31 + v33 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !552 + v34 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg + mem_copy_val v34, v33 + v35 = get_local __ptr { { ptr, u64, u64 } }, __ret_val + v36 = const u64 0, !553 + v37 = call abi_encode_5(v36, v34, v35) + v38 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !555 + mem_copy_val v38, v35 + v39 = get_local __ptr { u64 }, value, !557 + v40 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !559 + v41 = get_local __ptr { u64 }, __tmp_arg2 + mem_copy_val v41, v39 + v42 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg3 + mem_copy_val v42, v40 + v43 = get_local __ptr { { ptr, u64, u64 } }, __ret_val3 + v44 = call abi_encode_52(v41, v42, v43) + v45 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !561 + mem_copy_val v45, v43 + v46 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !563 + v47 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg + mem_copy_val v47, v46 + br encode_54_abi_encode_59_block5(v47), !564 + + encode_54_abi_encode_59_block1(): + v48 = get_local __ptr { u64, ( { u64 } | () ) }, __matched_value_1, !565 + v49 = const u64 0 + v50 = get_elem_ptr v48, __ptr u64, v49, !566 + v51 = load v50, !567 + v52 = const u64 1, !536 + v53 = cmp eq v51 v52, !570 + cbr v53, encode_54_abi_encode_59_block2(), encode_54_abi_encode_59_block3(), !571 + + encode_54_abi_encode_59_block2(): + v54 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !573 + v55 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg0 + mem_copy_val v55, v54 + v56 = get_local __ptr { { ptr, u64, u64 } }, __ret_val0 + v57 = const u64 1, !574 + v58 = call abi_encode_5(v57, v55, v56) + v59 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg + mem_copy_val v59, v56 + br encode_54_abi_encode_59_block5(v59), !575 + + encode_54_abi_encode_59_block3(): + v60 = const u64 14757395258967588866, !538 + revert v60, !576 + + encode_54_abi_encode_59_block5(v61: __ptr { { ptr, u64, u64 } }): + v62 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !578 + mem_copy_val v62, v61 + v63 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !580 + v64 = get_local __ptr { { ptr, u64, u64 } }, buffer, !581 + mem_copy_val v64, v63 + v65 = get_local __ptr { { ptr, u64, u64 } }, buffer, !582 + v66 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg1 + mem_copy_val v66, v65 + v67 = get_local __ptr slice, __ret_val2 + v68 = call as_raw_slice_7(v66, v67) + v69 = get_local __ptr slice, __tmp_block_arg0 + mem_copy_val v69, v67 + br encode_54_block2(v69), !82 + + encode_54_block2(v70: __ptr slice): + v71 = get_local __ptr slice, __log_arg + mem_copy_val v71, v70 + v72 = const u64 5087777005172090899 + log __ptr slice v71, v72 + v73 = const unit () + ret () v73 } - fn local_log_45(item: __ptr { }) -> (), !511 { + fn local_log_60(item: __ptr { }) -> (), !583 { local slice __log_arg local { { ptr, u64, u64 } } buffer local { { ptr, u64, u64 } } buffer_ @@ -1029,7 +1202,7 @@ script { v1 = call new_6(v0) v2 = get_local __ptr { { ptr, u64, u64 } }, buffer_ v3 = get_local __ptr { { ptr, u64, u64 } }, buffer - v4 = const u64 77, !512 + v4 = const u64 77, !584 v5 = call abi_encode_5(v4, v2, v3) v6 = get_local __ptr { { ptr, u64, u64 } }, buffer v7 = get_local __ptr slice, __log_arg @@ -1220,341 +1393,413 @@ script { !175 = fn_call_path_span !24 6194 6196 !176 = (!174 !175) !177 = (!78 !79 !80) -!178 = span !11 81189 81193 -!179 = (!82 !178) -!180 = span !11 81189 81219 -!181 = fn_call_path_span !11 81194 81204 -!182 = (!82 !180 !181) -!183 = (!82 !180 !181) -!184 = span !0 309 313 -!185 = (!82 !180 !181 !184) -!186 = span !14 116 122 -!187 = (!82 !180 !181 !186) -!188 = (!82 !180 !181) -!189 = span !0 327 333 -!190 = (!82 !180 !181 !189) -!191 = span !0 296 335 -!192 = (!82 !180 !181 !191) -!193 = span !0 349 353 -!194 = (!82 !180 !181 !193) -!195 = span !14 128 134 -!196 = (!82 !180 !181 !195) -!197 = span !0 367 373 -!198 = (!82 !180 !181 !197) -!199 = span !0 349 374 -!200 = fn_call_path_span !0 356 366 -!201 = (!82 !180 !181 !199 !200) -!202 = span !11 5686 5692 -!203 = (!82 !180 !181 !199 !200 !202) -!204 = (!82 !180 !181 !199 !200 !100) -!205 = (!82 !180 !181 !199 !200) -!206 = (!82 !180 !181 !199 !200) -!207 = (!82 !180 !181 !199 !200) -!208 = (!82 !180 !181 !199 !200) -!209 = (!82 !180 !181 !199 !200) -!210 = (!82 !180 !181 !199 !200) -!211 = (!82 !180 !181 !199 !200) -!212 = (!82 !180 !181 !199 !200) -!213 = (!82 !180 !181 !199 !200) -!214 = (!82 !180 !181 !199 !200) -!215 = (!82 !180 !181 !199 !200) -!216 = (!82 !180 !181 !199 !200) -!217 = (!82 !180 !181 !199 !200) -!218 = (!82 !180 !181 !199 !200) -!219 = (!82 !180 !181 !199 !200) -!220 = (!82 !180 !181 !199 !200) -!221 = (!82 !180 !181 !199 !200) -!222 = (!82 !180 !181 !199 !200) -!223 = (!82 !180 !181 !199 !200) -!224 = (!82 !180 !181 !199 !200) -!225 = (!82 !180 !181 !199 !200) -!226 = (!82 !180 !181 !199 !200) -!227 = (!82 !180 !181 !199 !200) -!228 = span !11 5634 5717 -!229 = (!82 !180 !181 !199 !200 !228) -!230 = (!82 !180 !181 !199 !200) -!231 = span !0 336 375 -!232 = (!82 !180 !181 !231) -!233 = span !0 389 393 -!234 = (!82 !180 !181 !233) -!235 = span !14 140 146 -!236 = (!82 !180 !181 !235) -!237 = span !0 407 413 -!238 = (!82 !180 !181 !237) -!239 = span !0 389 414 -!240 = fn_call_path_span !0 396 406 -!241 = (!82 !180 !181 !239 !240) -!242 = span !11 5921 5927 -!243 = (!82 !180 !181 !239 !240 !242) -!244 = (!82 !180 !181 !239 !240 !100) -!245 = (!82 !180 !181 !239 !240) -!246 = (!82 !180 !181 !239 !240) -!247 = (!82 !180 !181 !239 !240) -!248 = (!82 !180 !181 !239 !240) -!249 = (!82 !180 !181 !239 !240) -!250 = (!82 !180 !181 !239 !240) -!251 = (!82 !180 !181 !239 !240) -!252 = (!82 !180 !181 !239 !240) -!253 = (!82 !180 !181 !239 !240) -!254 = (!82 !180 !181 !239 !240) -!255 = (!82 !180 !181 !199 !200) -!256 = (!82 !180 !181 !199 !200) -!257 = (!82 !180 !181 !199 !200) -!258 = (!82 !180 !181 !199 !200) -!259 = (!82 !180 !181 !239 !240) -!260 = (!82 !180 !181 !239 !240) -!261 = (!82 !180 !181 !239 !240) -!262 = (!82 !180 !181 !239 !240) -!263 = (!82 !180 !181 !239 !240) -!264 = (!82 !180 !181 !239 !240) -!265 = (!82 !180 !181 !239 !240) -!266 = (!82 !180 !181 !239 !240) -!267 = (!82 !180 !181 !239 !240) -!268 = (!82 !180 !181 !239 !240) -!269 = (!82 !180 !181 !239 !240) -!270 = (!82 !180 !181 !239 !240) -!271 = (!82 !180 !181 !239 !240) -!272 = span !11 5869 5952 -!273 = (!82 !180 !181 !239 !240 !272) -!274 = (!82 !180 !181 !239 !240) -!275 = span !0 376 415 -!276 = (!82 !180 !181 !275) -!277 = span !0 429 433 -!278 = (!82 !180 !181 !277) -!279 = span !14 152 157 -!280 = (!82 !180 !181 !279) -!281 = (!82 !180 !181) -!282 = span !0 447 453 -!283 = (!82 !180 !181 !282) -!284 = span !0 429 454 -!285 = fn_call_path_span !0 436 446 -!286 = (!82 !180 !181 !284 !285) -!287 = span !11 6154 6160 -!288 = (!82 !180 !181 !284 !285 !287) -!289 = (!82 !180 !181 !284 !285 !100) -!290 = (!82 !180 !181 !284 !285) -!291 = (!82 !180 !181 !284 !285) -!292 = (!82 !180 !181 !284 !285) -!293 = (!82 !180 !181 !284 !285) -!294 = (!82 !180 !181 !284 !285) -!295 = (!82 !180 !181 !284 !285) -!296 = (!82 !180 !181 !284 !285) -!297 = (!82 !180 !181 !284 !285) -!298 = (!82 !180 !181 !284 !285) -!299 = (!82 !180 !181 !284 !285) -!300 = (!82 !180 !181 !239 !240) -!301 = (!82 !180 !181 !239 !240) -!302 = (!82 !180 !181 !239 !240) -!303 = (!82 !180 !181 !239 !240) -!304 = (!82 !180 !181 !284 !285) -!305 = (!82 !180 !181 !284 !285) -!306 = (!82 !180 !181 !284 !285) -!307 = (!82 !180 !181 !284 !285) -!308 = (!82 !180 !181 !284 !285) -!309 = (!82 !180 !181 !284 !285) -!310 = (!82 !180 !181 !284 !285) -!311 = (!82 !180 !181 !284 !285) -!312 = (!82 !180 !181 !284 !285) -!313 = (!82 !180 !181 !284 !285) -!314 = span !11 6102 6185 -!315 = (!82 !180 !181 !284 !285 !314) -!316 = (!82 !180 !181 !284 !285) -!317 = span !0 416 455 -!318 = (!82 !180 !181 !317) -!319 = span !0 469 473 -!320 = (!82 !180 !181 !319) -!321 = span !14 163 174 -!322 = (!82 !180 !181 !321) -!323 = span !0 487 493 -!324 = (!82 !180 !181 !323) -!325 = span !0 469 494 -!326 = fn_call_path_span !0 476 486 -!327 = (!82 !180 !181 !325 !326) -!328 = (!82 !180 !181 !325 !326) -!329 = span !24 21353 21357 -!330 = (!82 !180 !181 !325 !326 !329) -!331 = (!82 !180 !181 !325 !326 !115) -!332 = (!82 !180 !181 !325 !326) -!333 = span !24 21403 21409 -!334 = (!82 !180 !181 !325 !326 !333) -!335 = span !24 21371 21411 -!336 = (!82 !180 !181 !325 !326 !335) -!337 = span !24 21433 21434 -!338 = (!82 !180 !181 !325 !326) -!339 = (!82 !180 !181 !284 !285) -!340 = (!82 !180 !181 !284 !285) -!341 = (!82 !180 !181 !284 !285) -!342 = (!82 !180 !181 !284 !285) -!343 = span !24 21450 21457 -!344 = fn_call_path_span !24 21452 21453 -!345 = (!82 !180 !181 !325 !326 !343 !344) -!346 = (!82 !180 !181 !325 !326) -!347 = span !24 21483 21487 -!348 = (!82 !180 !181 !325 !326 !347) -!349 = span !24 21483 21504 -!350 = fn_call_path_span !24 21488 21501 -!351 = (!82 !180 !181 !325 !326 !349 !350) -!352 = span !24 8256 8260 -!353 = (!82 !180 !181 !325 !326 !349 !350 !352) -!354 = (!82 !180 !181 !325 !326 !349 !350 !116) -!355 = (!82 !180 !181 !325 !326 !349 !350 !134) -!356 = (!82 !180 !181 !325 !326 !349 !350) -!357 = span !24 8256 8284 -!358 = fn_call_path_span !24 8269 8272 -!359 = (!82 !180 !181 !325 !326 !349 !350 !357 !358) -!360 = (!82 !180 !181 !325 !326 !349 !350 !357 !358) -!361 = span !24 8256 8296 -!362 = fn_call_path_span !24 8285 8289 -!363 = span !153 2650 2739 -!364 = (!82 !180 !181 !325 !326 !349 !350 !361 !362 !363) -!365 = span !153 2688 2701 -!366 = span !24 21543 21549 -!367 = (!82 !180 !181 !325 !326 !366) -!368 = span !24 21518 21550 -!369 = (!82 !180 !181 !325 !326 !368) -!370 = span !24 21569 21570 -!371 = span !24 21564 21570 -!372 = fn_call_path_span !24 21566 21568 -!373 = (!82 !180 !181 !325 !326 !371 !372) -!374 = (!82 !180 !181 !325 !326) -!375 = span !24 21591 21597 -!376 = (!82 !180 !181 !325 !326 !375) -!377 = span !0 456 495 -!378 = (!82 !180 !181 !377) -!379 = span !0 509 513 -!380 = (!82 !180 !181 !379) -!381 = span !14 180 186 -!382 = (!82 !180 !181 !381) -!383 = span !0 527 533 -!384 = (!82 !180 !181 !383) -!385 = span !0 509 534 -!386 = fn_call_path_span !0 516 526 -!387 = (!82 !180 !181 !385 !386) -!388 = (!82 !180 !181 !385 !386) -!389 = span !11 6425 6431 -!390 = (!82 !180 !181 !385 !386 !389) -!391 = (!82 !180 !181 !385 !386 !100) -!392 = (!82 !180 !181 !385 !386) -!393 = (!82 !180 !181 !385 !386) -!394 = (!82 !180 !181 !385 !386) -!395 = (!82 !180 !181 !385 !386) -!396 = (!82 !180 !181 !385 !386) -!397 = (!82 !180 !181 !385 !386) -!398 = (!82 !180 !181 !385 !386) -!399 = span !11 6440 6444 -!400 = (!82 !180 !181 !385 !386 !399) -!401 = (!82 !180 !181 !385 !386) -!402 = (!82 !180 !181 !385 !386) -!403 = (!82 !180 !181 !385 !386) -!404 = (!82 !180 !181 !385 !386) -!405 = (!82 !180 !181 !385 !386) -!406 = (!82 !180 !181 !385 !386) -!407 = (!82 !180 !181 !385 !386) -!408 = (!82 !180 !181 !385 !386) -!409 = (!82 !180 !181 !385 !386) -!410 = (!82 !180 !181 !385 !386) -!411 = (!82 !180 !181 !385 !386) -!412 = (!82 !180 !181 !385 !386) -!413 = (!82 !180 !181 !385 !386) -!414 = (!82 !180 !181 !385 !386) -!415 = (!82 !180 !181 !385 !386) -!416 = (!82 !180 !181 !385 !386) -!417 = (!82 !180 !181 !385 !386) -!418 = (!82 !180 !181 !385 !386) -!419 = span !11 6373 6456 -!420 = (!82 !180 !181 !385 !386 !419) -!421 = (!82 !180 !181 !385 !386) -!422 = span !0 496 535 -!423 = (!82 !180 !181 !422) -!424 = span !0 549 553 -!425 = (!82 !180 !181 !424) -!426 = span !14 192 199 -!427 = (!82 !180 !181 !426) -!428 = span !0 567 573 -!429 = (!82 !180 !181 !428) -!430 = span !0 549 574 -!431 = fn_call_path_span !0 556 566 -!432 = (!82 !180 !181 !430 !431) -!433 = (!82 !180 !181 !430 !431) -!434 = span !11 5217 5223 -!435 = (!82 !180 !181 !430 !431 !434) -!436 = (!82 !180 !181 !430 !431 !100) -!437 = (!82 !180 !181 !430 !431) -!438 = (!82 !180 !181 !430 !431) -!439 = (!82 !180 !181 !430 !431) -!440 = (!82 !180 !181 !430 !431) -!441 = (!82 !180 !181 !430 !431) -!442 = (!82 !180 !181 !430 !431) -!443 = (!82 !180 !181 !430 !431) -!444 = span !11 5232 5236 -!445 = (!82 !180 !181 !430 !431 !444) -!446 = (!82 !180 !181 !430 !431) -!447 = (!82 !180 !181 !430 !431) -!448 = (!82 !180 !181 !430 !431) -!449 = (!82 !180 !181 !385 !386) -!450 = (!82 !180 !181 !385 !386) -!451 = (!82 !180 !181 !385 !386) -!452 = (!82 !180 !181 !385 !386) -!453 = (!82 !180 !181 !430 !431) -!454 = (!82 !180 !181 !430 !431) -!455 = (!82 !180 !181 !430 !431) -!456 = (!82 !180 !181 !430 !431) -!457 = (!82 !180 !181 !430 !431) -!458 = (!82 !180 !181 !430 !431) -!459 = (!82 !180 !181 !430 !431) -!460 = (!82 !180 !181 !430 !431) -!461 = (!82 !180 !181 !430 !431) -!462 = (!82 !180 !181 !430 !431) -!463 = (!82 !180 !181 !430 !431) -!464 = span !11 5165 5248 -!465 = (!82 !180 !181 !430 !431 !464) -!466 = (!82 !180 !181 !430 !431) -!467 = span !0 536 575 -!468 = (!82 !180 !181 !467) -!469 = span !0 597 603 -!470 = (!82 !180 !181 !469) -!471 = span !11 81176 81220 -!472 = (!82 !471) -!473 = span !11 81229 81235 -!474 = (!82 !473) -!475 = (!82 !180 !181 !430 !431) -!476 = (!82 !180 !181 !430 !431) -!477 = (!82 !180 !181 !430 !431) -!478 = (!82 !180 !181 !430 !431) -!479 = (!78 !79 !80) -!480 = span !0 257 411 -!481 = fn_name_span !0 260 270 -!482 = (!480 !481) -!483 = span !14 92 97 -!484 = (!78 !79 !80) -!485 = span !0 309 603 -!486 = (!82 !180 !181 !485) -!487 = (!82 !180 !181) -!488 = span !0 315 319 -!489 = span !0 322 517 -!490 = fn_call_path_span !0 322 517 -!491 = (!82 !180 !181 !489 !490) -!492 = (!82 !180 !181 !489) -!493 = (!82 !180 !181 !488) -!494 = (!82 !180 !181) -!495 = span !0 392 398 -!496 = (!82 !180 !181 !495) -!497 = span !0 376 380 -!498 = (!82 !180 !181) -!499 = (!82 !180 !181 !488) -!500 = (!82 !180 !181 !488) -!501 = (!82 !180 !181) -!502 = span !0 519 599 -!503 = fn_call_path_span !0 519 599 -!504 = (!82 !180 !181 !502 !503) -!505 = (!82 !180 !181 !502) -!506 = span !0 569 575 -!507 = (!82 !180 !181 !506) -!508 = span !0 553 557 -!509 = (!82 !180 !181) -!510 = (!82 !180 !181 !485) +!178 = span !11 80891 80915 +!179 = fn_call_path_span !11 80891 80908 +!180 = span !11 4291 4313 +!181 = fn_call_path_span !11 4291 4311 +!182 = span !0 156 213 +!183 = fn_call_path_span !0 183 185 +!184 = (!82 !178 !179 !180 !181 !182 !183) +!185 = span !0 156 308 +!186 = (!82 !178 !179 !180 !181 !185) +!187 = span !11 5797 5802 +!188 = (!82 !178 !179 !180 !181 !185) +!189 = span !0 156 339 +!190 = (!82 !178 !179 !180 !181 !189) +!191 = span !11 6031 6035 +!192 = (!82 !178 !179 !180 !181 !189) +!193 = span !0 156 369 +!194 = (!82 !178 !179 !180 !181 !193) +!195 = (!82 !178 !179 !180 !181 !193) +!196 = span !0 156 399 +!197 = (!82 !178 !179 !180 !181 !196) +!198 = (!82 !178 !179 !180 !181 !196) +!199 = span !0 156 428 +!200 = (!82 !178 !179 !180 !181 !199) +!201 = (!82 !178 !179 !180 !181 !199) +!202 = (!82 !178) +!203 = (!82 !83) +!204 = (!82 !85) +!205 = (!82 !89) +!206 = (!82 !89) +!207 = (!82 !89) +!208 = (!82 !89) +!209 = (!82 !89) +!210 = span !11 81189 81193 +!211 = (!82 !210) +!212 = span !11 81189 81219 +!213 = fn_call_path_span !11 81194 81204 +!214 = (!82 !212 !213) +!215 = (!82 !212 !213) +!216 = span !0 576 580 +!217 = (!82 !212 !213 !216) +!218 = span !14 116 122 +!219 = (!82 !212 !213 !218) +!220 = (!82 !212 !213) +!221 = span !0 594 600 +!222 = (!82 !212 !213 !221) +!223 = span !0 563 602 +!224 = (!82 !212 !213 !223) +!225 = span !0 616 620 +!226 = (!82 !212 !213 !225) +!227 = span !14 128 134 +!228 = (!82 !212 !213 !227) +!229 = span !0 634 640 +!230 = (!82 !212 !213 !229) +!231 = span !0 616 641 +!232 = fn_call_path_span !0 623 633 +!233 = (!82 !212 !213 !231 !232) +!234 = span !11 5686 5692 +!235 = (!82 !212 !213 !231 !232 !234) +!236 = (!82 !212 !213 !231 !232 !100) +!237 = (!82 !212 !213 !231 !232) +!238 = (!82 !212 !213 !231 !232) +!239 = (!82 !212 !213 !231 !232) +!240 = (!82 !212 !213 !231 !232) +!241 = (!82 !212 !213 !231 !232) +!242 = (!82 !212 !213 !231 !232) +!243 = (!82 !212 !213 !231 !232) +!244 = (!82 !212 !213 !231 !232) +!245 = (!82 !212 !213 !231 !232) +!246 = (!82 !212 !213 !231 !232) +!247 = (!82 !212 !213 !231 !232) +!248 = (!82 !212 !213 !231 !232) +!249 = (!82 !212 !213 !231 !232) +!250 = (!82 !212 !213 !231 !232) +!251 = (!82 !212 !213 !231 !232) +!252 = (!82 !212 !213 !231 !232) +!253 = (!82 !212 !213 !231 !232) +!254 = (!82 !212 !213 !231 !232) +!255 = (!82 !212 !213 !231 !232) +!256 = (!82 !212 !213 !231 !232) +!257 = (!82 !212 !213 !231 !232) +!258 = (!82 !212 !213 !231 !232) +!259 = (!82 !212 !213 !231 !232) +!260 = span !11 5634 5717 +!261 = (!82 !212 !213 !231 !232 !260) +!262 = (!82 !212 !213 !231 !232) +!263 = span !0 603 642 +!264 = (!82 !212 !213 !263) +!265 = span !0 656 660 +!266 = (!82 !212 !213 !265) +!267 = span !14 140 146 +!268 = (!82 !212 !213 !267) +!269 = span !0 674 680 +!270 = (!82 !212 !213 !269) +!271 = span !0 656 681 +!272 = fn_call_path_span !0 663 673 +!273 = (!82 !212 !213 !271 !272) +!274 = span !11 5921 5927 +!275 = (!82 !212 !213 !271 !272 !274) +!276 = (!82 !212 !213 !271 !272 !100) +!277 = (!82 !212 !213 !271 !272) +!278 = (!82 !212 !213 !271 !272) +!279 = (!82 !212 !213 !271 !272) +!280 = (!82 !212 !213 !271 !272) +!281 = (!82 !212 !213 !271 !272) +!282 = (!82 !212 !213 !271 !272) +!283 = (!82 !212 !213 !271 !272) +!284 = (!82 !212 !213 !271 !272) +!285 = (!82 !212 !213 !271 !272) +!286 = (!82 !212 !213 !271 !272) +!287 = (!82 !212 !213 !231 !232) +!288 = (!82 !212 !213 !231 !232) +!289 = (!82 !212 !213 !231 !232) +!290 = (!82 !212 !213 !231 !232) +!291 = (!82 !212 !213 !271 !272) +!292 = (!82 !212 !213 !271 !272) +!293 = (!82 !212 !213 !271 !272) +!294 = (!82 !212 !213 !271 !272) +!295 = (!82 !212 !213 !271 !272) +!296 = (!82 !212 !213 !271 !272) +!297 = (!82 !212 !213 !271 !272) +!298 = (!82 !212 !213 !271 !272) +!299 = (!82 !212 !213 !271 !272) +!300 = (!82 !212 !213 !271 !272) +!301 = (!82 !212 !213 !271 !272) +!302 = (!82 !212 !213 !271 !272) +!303 = (!82 !212 !213 !271 !272) +!304 = span !11 5869 5952 +!305 = (!82 !212 !213 !271 !272 !304) +!306 = (!82 !212 !213 !271 !272) +!307 = span !0 643 682 +!308 = (!82 !212 !213 !307) +!309 = span !0 696 700 +!310 = (!82 !212 !213 !309) +!311 = span !14 152 157 +!312 = (!82 !212 !213 !311) +!313 = (!82 !212 !213) +!314 = span !0 714 720 +!315 = (!82 !212 !213 !314) +!316 = span !0 696 721 +!317 = fn_call_path_span !0 703 713 +!318 = (!82 !212 !213 !316 !317) +!319 = span !11 6154 6160 +!320 = (!82 !212 !213 !316 !317 !319) +!321 = (!82 !212 !213 !316 !317 !100) +!322 = (!82 !212 !213 !316 !317) +!323 = (!82 !212 !213 !316 !317) +!324 = (!82 !212 !213 !316 !317) +!325 = (!82 !212 !213 !316 !317) +!326 = (!82 !212 !213 !316 !317) +!327 = (!82 !212 !213 !316 !317) +!328 = (!82 !212 !213 !316 !317) +!329 = (!82 !212 !213 !316 !317) +!330 = (!82 !212 !213 !316 !317) +!331 = (!82 !212 !213 !316 !317) +!332 = (!82 !212 !213 !271 !272) +!333 = (!82 !212 !213 !271 !272) +!334 = (!82 !212 !213 !271 !272) +!335 = (!82 !212 !213 !271 !272) +!336 = (!82 !212 !213 !316 !317) +!337 = (!82 !212 !213 !316 !317) +!338 = (!82 !212 !213 !316 !317) +!339 = (!82 !212 !213 !316 !317) +!340 = (!82 !212 !213 !316 !317) +!341 = (!82 !212 !213 !316 !317) +!342 = (!82 !212 !213 !316 !317) +!343 = (!82 !212 !213 !316 !317) +!344 = (!82 !212 !213 !316 !317) +!345 = (!82 !212 !213 !316 !317) +!346 = span !11 6102 6185 +!347 = (!82 !212 !213 !316 !317 !346) +!348 = (!82 !212 !213 !316 !317) +!349 = span !0 683 722 +!350 = (!82 !212 !213 !349) +!351 = span !0 736 740 +!352 = (!82 !212 !213 !351) +!353 = span !14 163 174 +!354 = (!82 !212 !213 !353) +!355 = span !0 754 760 +!356 = (!82 !212 !213 !355) +!357 = span !0 736 761 +!358 = fn_call_path_span !0 743 753 +!359 = (!82 !212 !213 !357 !358) +!360 = (!82 !212 !213 !357 !358) +!361 = span !24 21353 21357 +!362 = (!82 !212 !213 !357 !358 !361) +!363 = (!82 !212 !213 !357 !358 !115) +!364 = (!82 !212 !213 !357 !358) +!365 = span !24 21403 21409 +!366 = (!82 !212 !213 !357 !358 !365) +!367 = span !24 21371 21411 +!368 = (!82 !212 !213 !357 !358 !367) +!369 = span !24 21433 21434 +!370 = (!82 !212 !213 !357 !358) +!371 = (!82 !212 !213 !316 !317) +!372 = (!82 !212 !213 !316 !317) +!373 = (!82 !212 !213 !316 !317) +!374 = (!82 !212 !213 !316 !317) +!375 = span !24 21450 21457 +!376 = fn_call_path_span !24 21452 21453 +!377 = (!82 !212 !213 !357 !358 !375 !376) +!378 = (!82 !212 !213 !357 !358) +!379 = span !24 21483 21487 +!380 = (!82 !212 !213 !357 !358 !379) +!381 = span !24 21483 21504 +!382 = fn_call_path_span !24 21488 21501 +!383 = (!82 !212 !213 !357 !358 !381 !382) +!384 = span !24 8256 8260 +!385 = (!82 !212 !213 !357 !358 !381 !382 !384) +!386 = (!82 !212 !213 !357 !358 !381 !382 !116) +!387 = (!82 !212 !213 !357 !358 !381 !382 !134) +!388 = (!82 !212 !213 !357 !358 !381 !382) +!389 = span !24 8256 8284 +!390 = fn_call_path_span !24 8269 8272 +!391 = (!82 !212 !213 !357 !358 !381 !382 !389 !390) +!392 = (!82 !212 !213 !357 !358 !381 !382 !389 !390) +!393 = span !24 8256 8296 +!394 = fn_call_path_span !24 8285 8289 +!395 = span !153 2650 2739 +!396 = (!82 !212 !213 !357 !358 !381 !382 !393 !394 !395) +!397 = span !153 2688 2701 +!398 = span !24 21543 21549 +!399 = (!82 !212 !213 !357 !358 !398) +!400 = span !24 21518 21550 +!401 = (!82 !212 !213 !357 !358 !400) +!402 = span !24 21569 21570 +!403 = span !24 21564 21570 +!404 = fn_call_path_span !24 21566 21568 +!405 = (!82 !212 !213 !357 !358 !403 !404) +!406 = (!82 !212 !213 !357 !358) +!407 = span !24 21591 21597 +!408 = (!82 !212 !213 !357 !358 !407) +!409 = span !0 723 762 +!410 = (!82 !212 !213 !409) +!411 = span !0 776 780 +!412 = (!82 !212 !213 !411) +!413 = span !14 180 186 +!414 = (!82 !212 !213 !413) +!415 = span !0 794 800 +!416 = (!82 !212 !213 !415) +!417 = span !0 776 801 +!418 = fn_call_path_span !0 783 793 +!419 = (!82 !212 !213 !417 !418) +!420 = (!82 !212 !213 !417 !418) +!421 = span !11 6425 6431 +!422 = (!82 !212 !213 !417 !418 !421) +!423 = (!82 !212 !213 !417 !418 !100) +!424 = (!82 !212 !213 !417 !418) +!425 = (!82 !212 !213 !417 !418) +!426 = (!82 !212 !213 !417 !418) +!427 = (!82 !212 !213 !417 !418) +!428 = (!82 !212 !213 !417 !418) +!429 = (!82 !212 !213 !417 !418) +!430 = (!82 !212 !213 !417 !418) +!431 = span !11 6440 6444 +!432 = (!82 !212 !213 !417 !418 !431) +!433 = (!82 !212 !213 !417 !418) +!434 = (!82 !212 !213 !417 !418) +!435 = (!82 !212 !213 !417 !418) +!436 = (!82 !212 !213 !417 !418) +!437 = (!82 !212 !213 !417 !418) +!438 = (!82 !212 !213 !417 !418) +!439 = (!82 !212 !213 !417 !418) +!440 = (!82 !212 !213 !417 !418) +!441 = (!82 !212 !213 !417 !418) +!442 = (!82 !212 !213 !417 !418) +!443 = (!82 !212 !213 !417 !418) +!444 = (!82 !212 !213 !417 !418) +!445 = (!82 !212 !213 !417 !418) +!446 = (!82 !212 !213 !417 !418) +!447 = (!82 !212 !213 !417 !418) +!448 = (!82 !212 !213 !417 !418) +!449 = (!82 !212 !213 !417 !418) +!450 = (!82 !212 !213 !417 !418) +!451 = span !11 6373 6456 +!452 = (!82 !212 !213 !417 !418 !451) +!453 = (!82 !212 !213 !417 !418) +!454 = span !0 763 802 +!455 = (!82 !212 !213 !454) +!456 = span !0 816 820 +!457 = (!82 !212 !213 !456) +!458 = span !14 192 199 +!459 = (!82 !212 !213 !458) +!460 = span !0 834 840 +!461 = (!82 !212 !213 !460) +!462 = span !0 816 841 +!463 = fn_call_path_span !0 823 833 +!464 = (!82 !212 !213 !462 !463) +!465 = (!82 !212 !213 !462 !463) +!466 = span !11 5217 5223 +!467 = (!82 !212 !213 !462 !463 !466) +!468 = (!82 !212 !213 !462 !463 !100) +!469 = (!82 !212 !213 !462 !463) +!470 = (!82 !212 !213 !462 !463) +!471 = (!82 !212 !213 !462 !463) +!472 = (!82 !212 !213 !462 !463) +!473 = (!82 !212 !213 !462 !463) +!474 = (!82 !212 !213 !462 !463) +!475 = (!82 !212 !213 !462 !463) +!476 = span !11 5232 5236 +!477 = (!82 !212 !213 !462 !463 !476) +!478 = (!82 !212 !213 !462 !463) +!479 = (!82 !212 !213 !462 !463) +!480 = (!82 !212 !213 !462 !463) +!481 = (!82 !212 !213 !417 !418) +!482 = (!82 !212 !213 !417 !418) +!483 = (!82 !212 !213 !417 !418) +!484 = (!82 !212 !213 !417 !418) +!485 = (!82 !212 !213 !462 !463) +!486 = (!82 !212 !213 !462 !463) +!487 = (!82 !212 !213 !462 !463) +!488 = (!82 !212 !213 !462 !463) +!489 = (!82 !212 !213 !462 !463) +!490 = (!82 !212 !213 !462 !463) +!491 = (!82 !212 !213 !462 !463) +!492 = (!82 !212 !213 !462 !463) +!493 = (!82 !212 !213 !462 !463) +!494 = (!82 !212 !213 !462 !463) +!495 = (!82 !212 !213 !462 !463) +!496 = span !11 5165 5248 +!497 = (!82 !212 !213 !462 !463 !496) +!498 = (!82 !212 !213 !462 !463) +!499 = span !0 803 842 +!500 = (!82 !212 !213 !499) +!501 = span !0 864 870 +!502 = (!82 !212 !213 !501) +!503 = span !11 81176 81220 +!504 = (!82 !503) +!505 = span !11 81229 81235 +!506 = (!82 !505) +!507 = (!82 !212 !213 !462 !463) +!508 = (!82 !212 !213 !462 !463) +!509 = (!82 !212 !213 !462 !463) +!510 = (!82 !212 !213 !462 !463) !511 = (!78 !79 !80) -!512 = span !14 433 438 +!512 = (!82 !83) +!513 = (!82 !85) +!514 = (!82 !89) +!515 = (!82 !89) +!516 = (!82 !89) +!517 = (!82 !89) +!518 = (!82 !89) +!519 = span !0 337 491 +!520 = fn_name_span !0 340 350 +!521 = (!519 !520) +!522 = span !14 92 97 +!523 = (!78 !79 !80) +!524 = (!82 !178 !179 !180 !181 !182 !183) +!525 = (!82 !178) +!526 = (!82 !83) +!527 = (!82 !85) +!528 = (!82 !89) +!529 = (!82 !89) +!530 = (!82 !89) +!531 = (!82 !89) +!532 = (!82 !89) +!533 = (!82 !210) +!534 = (!82 !212 !213) +!535 = (!82 !212 !213) +!536 = span !0 430 434 +!537 = (!82 !212 !213 !536) +!538 = span !0 424 718 +!539 = (!82 !212 !213 !538) +!540 = (!82 !212 !213 !536) +!541 = (!82 !212 !213 !536) +!542 = (!82 !212 !213) +!543 = span !0 437 632 +!544 = fn_call_path_span !0 437 632 +!545 = (!82 !212 !213 !543 !544) +!546 = (!82 !212 !213 !543) +!547 = (!82 !212 !213 !536) +!548 = (!82 !212 !213) +!549 = span !0 442 447 +!550 = (!82 !212 !213 !549) +!551 = span !0 507 513 +!552 = (!82 !212 !213 !551) +!553 = span !0 491 495 +!554 = span !0 478 515 +!555 = (!82 !212 !213 !554) +!556 = span !0 553 558 +!557 = (!82 !212 !213 !556) +!558 = span !0 570 576 +!559 = (!82 !212 !213 !558) +!560 = span !0 540 578 +!561 = (!82 !212 !213 !560) +!562 = span !0 603 609 +!563 = (!82 !212 !213 !562) +!564 = (!82 !212 !213) +!565 = (!82 !212 !213 !536) +!566 = (!82 !212 !213 !536) +!567 = (!82 !212 !213) +!568 = span !0 634 714 +!569 = fn_call_path_span !0 634 714 +!570 = (!82 !212 !213 !568 !569) +!571 = (!82 !212 !213 !568) +!572 = span !0 684 690 +!573 = (!82 !212 !213 !572) +!574 = span !0 668 672 +!575 = (!82 !212 !213) +!576 = (!82 !212 !213 !538) +!577 = span !0 411 719 +!578 = (!82 !212 !213 !577) +!579 = span !0 740 746 +!580 = (!82 !212 !213 !579) +!581 = (!82 !503) +!582 = (!82 !505) +!583 = (!78 !79 !80) +!584 = span !14 433 438 warning --> test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw:27:5 @@ -1632,7 +1877,7 @@ warning ____ Compiled script "logging" with 6 warnings. - Finished release [optimized + fuel] target(s) [2.928 KB] in ??? + Finished release [optimized + fuel] target(s) [3.104 KB] in ??? > forc test --path test/src/e2e_vm_tests/test_programs/should_pass/language/logging --release exit status: 0 @@ -1728,12 +1973,12 @@ warning ____ Compiled script "logging" with 7 warnings. - Finished release [optimized + fuel] target(s) [2.936 KB] in ??? + Finished release [optimized + fuel] target(s) [3.112 KB] in ??? Running 1 test, filtered 0 tests tested -- logging - test call_main ... ok (???, 5987 gas) + test call_main ... ok (???, 5959 gas) test result: OK. 1 passed; 0 failed; finished in ??? diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/stdout.snap index 0c8b57e81ee..5aa469c2663 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/stdout.snap @@ -31,13 +31,11 @@ script { pub entry fn __entry() -> __ptr never, !3 { local { { string<3> }, { u64, ( u64 | u64 ) } } __ret_val0 local [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] __tmp_arg - local { { ptr, u64, u64 } } __tmp_arg0 + local { u64 } _result local { [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] } args local mut [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] array local mut { ptr } buffer - local { { ptr, u64, u64 } } buffer0 local { { string<3> }, { u64, ( u64 | u64 ) } } first - local { u64 } self_1 entry(): v0 = const u64 0, !5 @@ -87,33 +85,14 @@ script { v31 = get_elem_ptr v29, __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], v30, !52 v32 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], __tmp_arg mem_copy_val v32, v31 - v33 = get_local __ptr { u64 }, self_1 + v33 = get_local __ptr { u64 }, _result v34 = call main_22(v32, v33) - v35 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg0 - v36 = call new_32(v35) - v37 = get_local __ptr { u64 }, self_1, !59 - v38 = const u64 0 - v39 = get_elem_ptr v37, __ptr u64, v38, !62 - v40 = load v39, !63 - v41 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg0 - v42 = get_local __ptr { { ptr, u64, u64 } }, buffer0 - v43 = call abi_encode_31(v40, v41, v42) - v44 = get_local __ptr { { ptr, u64, u64 } }, buffer0, !65 - v45 = const u64 0 - v46 = get_elem_ptr v44, __ptr { ptr, u64, u64 }, v45, !67 - v47 = const u64 0 - v48 = get_elem_ptr v46, __ptr ptr, v47, !69 - v49 = load v48, !70 - v50 = get_local __ptr { { ptr, u64, u64 } }, buffer0, !72 - v51 = const u64 0 - v52 = get_elem_ptr v50, __ptr { ptr, u64, u64 }, v51, !73 - v53 = const u64 2 - v54 = get_elem_ptr v52, __ptr u64, v53, !75 - v55 = load v54, !70 - retd v49 v55, !77 + v35 = get_local __ptr { u64 }, _result, !53 + v36 = const u64 8 + retd v35 v36, !57 } - pub fn decode_6(self !78: __ptr { ptr }, __ret_value: __ptr { { string<3> }, { u64, ( u64 | u64 ) } }) -> (), !81 { + pub fn decode_6(self !58: __ptr { ptr }, __ret_value: __ptr { { string<3> }, { u64, ( u64 | u64 ) } }) -> (), !61 { local mut slice __aggr_memcpy_0 local mut { ptr, u64 } __aggr_memcpy_00 local mut string<3> __aggr_memcpy_01 @@ -131,131 +110,131 @@ script { entry(self: __ptr { ptr }, __ret_value: __ptr { { string<3> }, { u64, ( u64 | u64 ) } }): v0 = const u64 0 - v1 = get_elem_ptr self, __ptr ptr, v0, !91 - v2 = get_local __ptr { ptr, u64 }, __anon_000, !93 + v1 = get_elem_ptr self, __ptr ptr, v0, !71 + v2 = get_local __ptr { ptr, u64 }, __anon_000, !73 v3 = const u64 0 - v4 = get_elem_ptr v2, __ptr ptr, v3, !94 + v4 = get_elem_ptr v2, __ptr ptr, v3, !74 mem_copy_val v4, v1 v5 = const u64 1 - v6 = get_elem_ptr v2, __ptr u64, v5, !95 - v7 = const u64 3, !96 - store v7 to v6, !97 + v6 = get_elem_ptr v2, __ptr u64, v5, !75 + v7 = const u64 3, !76 + store v7 to v6, !77 v8 = asm(ptr: v2) -> __ptr slice ptr { } v9 = get_local __ptr slice, __aggr_memcpy_0 mem_copy_val v9, v8 - v10 = get_local __ptr slice, slice, !99 + v10 = get_local __ptr slice, slice, !79 mem_copy_val v10, v9 - v11 = load v1, !100 - v12 = const u64 3, !101 - v13 = add v11, v12, !102 - store v13 to v1, !104 - v14 = get_local __ptr slice, slice, !106 - v15 = get_local __ptr slice, data, !108 + v11 = load v1, !80 + v12 = const u64 3, !81 + v13 = add v11, v12, !82 + store v13 to v1, !84 + v14 = get_local __ptr slice, slice, !86 + v15 = get_local __ptr slice, data, !88 mem_copy_val v15, v14 - v16 = get_local __ptr slice, data, !110 - v17 = get_local __ptr slice, self_000, !113 + v16 = get_local __ptr slice, data, !90 + v17 = get_local __ptr slice, self_000, !93 mem_copy_val v17, v16 - v18 = get_local __ptr slice, self_000, !116 - v19 = get_local __ptr slice, slice_, !119 + v18 = get_local __ptr slice, self_000, !96 + v19 = get_local __ptr slice, slice_, !99 mem_copy_val v19, v18 - v20 = get_local __ptr slice, slice_, !121 + v20 = get_local __ptr slice, slice_, !101 v21 = asm(ptr: v20) -> __ptr { ptr, u64 } ptr { } v22 = get_local __ptr { ptr, u64 }, __aggr_memcpy_00 mem_copy_val v22, v21 - v23 = get_local __ptr { ptr, u64 }, __anon_0000, !122 + v23 = get_local __ptr { ptr, u64 }, __anon_0000, !102 mem_copy_val v23, v22 v24 = const u64 0 - v25 = get_elem_ptr v23, __ptr ptr, v24, !124 - v26 = load v25, !125 + v25 = get_elem_ptr v23, __ptr ptr, v24, !104 + v26 = load v25, !105 v27 = asm(s: v26) -> __ptr string<3> s { } v28 = get_local __ptr string<3>, __aggr_memcpy_01 mem_copy_val v28, v27 - v29 = get_local __ptr { string<3> }, __anon_00, !127 + v29 = get_local __ptr { string<3> }, __anon_00, !107 v30 = const u64 0 - v31 = get_elem_ptr v29, __ptr string<3>, v30, !128 + v31 = get_elem_ptr v29, __ptr string<3>, v30, !108 mem_copy_val v31, v28 - v32 = load v1, !135 - v33 = asm(ptr: v32, val) -> u64 val, !137 { - lw val ptr i0, !138 + v32 = load v1, !115 + v33 = asm(ptr: v32, val) -> u64 val, !117 { + lw val ptr i0, !118 } - v34 = load v1, !139 - v35 = const u64 8, !140 - v36 = add v34, v35, !141 - store v36 to v1, !143 - v37 = const u64 0, !144 - v38 = cmp eq v33 v37, !147 - cbr v38, abi_decode_7_abi_decode_14_block0(), abi_decode_7_abi_decode_14_block1(), !148 + v34 = load v1, !119 + v35 = const u64 8, !120 + v36 = add v34, v35, !121 + store v36 to v1, !123 + v37 = const u64 0, !124 + v38 = cmp eq v33 v37, !127 + cbr v38, abi_decode_7_abi_decode_14_block0(), abi_decode_7_abi_decode_14_block1(), !128 abi_decode_7_abi_decode_14_block0(): - v39 = get_local __ptr { u64, ( u64 | u64 ) }, __anon_01, !151 + v39 = get_local __ptr { u64, ( u64 | u64 ) }, __anon_01, !131 v40 = const u64 0 - v41 = get_elem_ptr v39, __ptr u64, v40, !152 - v42 = const u64 0, !150 - store v42 to v41, !153 - v43 = load v1, !156 - v44 = asm(ptr: v43, val) -> u64 val, !157 { - lw val ptr i0, !138 + v41 = get_elem_ptr v39, __ptr u64, v40, !132 + v42 = const u64 0, !130 + store v42 to v41, !133 + v43 = load v1, !136 + v44 = asm(ptr: v43, val) -> u64 val, !137 { + lw val ptr i0, !118 } - v45 = load v1, !158 - v46 = const u64 8, !159 - v47 = add v45, v46, !160 - store v47 to v1, !161 + v45 = load v1, !138 + v46 = const u64 8, !139 + v47 = add v45, v46, !140 + store v47 to v1, !141 v48 = const u64 1 v49 = const u64 0 - v50 = get_elem_ptr v39, __ptr u64, v48, v49, !162 - store v44 to v50, !163 + v50 = get_elem_ptr v39, __ptr u64, v48, v49, !142 + store v44 to v50, !143 v51 = get_local __ptr { u64, ( u64 | u64 ) }, __tmp_block_arg mem_copy_val v51, v39 - br abi_decode_7_abi_decode_14_block5(v51), !164 + br abi_decode_7_abi_decode_14_block5(v51), !144 abi_decode_7_abi_decode_14_block1(): - v52 = const u64 1, !165 - v53 = cmp eq v33 v52, !168 - cbr v53, abi_decode_7_abi_decode_14_block2(), abi_decode_7_abi_decode_14_block3(), !169 + v52 = const u64 1, !145 + v53 = cmp eq v33 v52, !148 + cbr v53, abi_decode_7_abi_decode_14_block2(), abi_decode_7_abi_decode_14_block3(), !149 abi_decode_7_abi_decode_14_block2(): - v54 = get_local __ptr { u64, ( u64 | u64 ) }, __anon_1, !170 + v54 = get_local __ptr { u64, ( u64 | u64 ) }, __anon_1, !150 v55 = const u64 0 - v56 = get_elem_ptr v54, __ptr u64, v55, !171 - v57 = const u64 1, !150 - store v57 to v56, !172 - v58 = load v1, !175 - v59 = asm(ptr: v58, val) -> u64 val, !176 { - lw val ptr i0, !138 + v56 = get_elem_ptr v54, __ptr u64, v55, !151 + v57 = const u64 1, !130 + store v57 to v56, !152 + v58 = load v1, !155 + v59 = asm(ptr: v58, val) -> u64 val, !156 { + lw val ptr i0, !118 } - v60 = load v1, !177 - v61 = const u64 8, !178 - v62 = add v60, v61, !179 - store v62 to v1, !180 + v60 = load v1, !157 + v61 = const u64 8, !158 + v62 = add v60, v61, !159 + store v62 to v1, !160 v63 = const u64 1 v64 = const u64 1 - v65 = get_elem_ptr v54, __ptr u64, v63, v64, !181 - store v59 to v65, !182 + v65 = get_elem_ptr v54, __ptr u64, v63, v64, !161 + store v59 to v65, !162 v66 = get_local __ptr { u64, ( u64 | u64 ) }, __tmp_block_arg mem_copy_val v66, v54 - br abi_decode_7_abi_decode_14_block5(v66), !183 + br abi_decode_7_abi_decode_14_block5(v66), !163 abi_decode_7_abi_decode_14_block3(): - v67 = const u64 0, !184 - revert v67, !186 + v67 = const u64 0, !164 + revert v67, !166 abi_decode_7_abi_decode_14_block5(v68: __ptr { u64, ( u64 | u64 ) }): - v69 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, __anon_0, !188 + v69 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, __anon_0, !168 v70 = const u64 0 - v71 = get_elem_ptr v69, __ptr { string<3> }, v70, !189 + v71 = get_elem_ptr v69, __ptr { string<3> }, v70, !169 mem_copy_val v71, v29 v72 = const u64 1 - v73 = get_elem_ptr v69, __ptr { u64, ( u64 | u64 ) }, v72, !190 + v73 = get_elem_ptr v69, __ptr { u64, ( u64 | u64 ) }, v72, !170 mem_copy_val v73, v68 mem_copy_val __ret_value, v69 v74 = const unit () ret () v74 } - entry_orig fn main_22(ops: __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], __ret_value: __ptr { u64 }) -> (), !193 { + entry_orig fn main_22(ops: __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], __ret_value: __ptr { u64 }) -> (), !173 { local mut { ptr, u64, u64 } __aggr_memcpy_0 local mut { ptr, u64, u64 } __aggr_memcpy_00 local mut { ptr, u64, u64 } __aggr_memcpy_01 @@ -316,237 +295,237 @@ script { entry(ops: __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], __ret_value: __ptr { u64 }): v0 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_ mem_copy_val v0, ops - v1 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !194 - v2 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], item_, !194 + v1 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !174 + v2 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], item_, !174 mem_copy_val v2, v1 - v3 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], item_, !196 + v3 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], item_, !176 v4 = get_local __ptr { { ptr, u64, u64 } }, __ret_val3 v5 = call new_32(v4) - v6 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], self_, !199 + v6 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], self_, !179 mem_copy_val v6, v3 - v7 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !200 + v7 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !180 mem_copy_val v7, v4 - v8 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !202 - v9 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !204 + v8 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !182 + v9 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !184 mem_copy_val v9, v8 - v10 = const u64 0, !205 - br encode_23_abi_encode_26_while(v10), !206 + v10 = const u64 0, !185 + br encode_23_abi_encode_26_while(v10), !186 encode_23_abi_encode_26_while(v11: u64): - v12 = const u64 2, !207 - v13 = cmp lt v11 v12, !210 - cbr v13, encode_23_abi_encode_26_while_body(), encode_23_abi_encode_26_end_while(), !211 + v12 = const u64 2, !187 + v13 = cmp lt v11 v12, !190 + cbr v13, encode_23_abi_encode_26_while_body(), encode_23_abi_encode_26_end_while(), !191 encode_23_abi_encode_26_while_body(): - v14 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], self_, !213 - v15 = get_elem_ptr v14, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v11, !215 - v16 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !217 - v17 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, self_1, !220 + v14 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], self_, !193 + v15 = get_elem_ptr v14, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v11, !195 + v16 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !197 + v17 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, self_1, !200 mem_copy_val v17, v15 - v18 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !221 + v18 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !201 mem_copy_val v18, v16 - v19 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, self_1, !223 + v19 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, self_1, !203 v20 = const u64 0 - v21 = get_elem_ptr v19, __ptr { string<3> }, v20, !225 - v22 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !227 - v23 = get_local __ptr { string<3> }, self_00, !230 + v21 = get_elem_ptr v19, __ptr { string<3> }, v20, !205 + v22 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !207 + v23 = get_local __ptr { string<3> }, self_00, !210 mem_copy_val v23, v21 - v24 = get_local __ptr { { ptr, u64, u64 } }, buffer_00, !231 + v24 = get_local __ptr { { ptr, u64, u64 } }, buffer_00, !211 mem_copy_val v24, v22 - v25 = get_local __ptr { string<3> }, self_00, !233 + v25 = get_local __ptr { string<3> }, self_00, !213 v26 = const u64 0 - v27 = get_elem_ptr v25, __ptr string<3>, v26, !235 - v28 = get_local __ptr { { ptr, u64, u64 } }, buffer_00, !237 - v29 = get_local __ptr string<3>, self_000, !240 + v27 = get_elem_ptr v25, __ptr string<3>, v26, !215 + v28 = get_local __ptr { { ptr, u64, u64 } }, buffer_00, !217 + v29 = get_local __ptr string<3>, self_000, !220 mem_copy_val v29, v27 - v30 = get_local __ptr { { ptr, u64, u64 } }, buffer_000, !241 + v30 = get_local __ptr { { ptr, u64, u64 } }, buffer_000, !221 mem_copy_val v30, v28 - v31 = get_local __ptr { { ptr, u64, u64 } }, buffer_000, !243 + v31 = get_local __ptr { { ptr, u64, u64 } }, buffer_000, !223 v32 = const u64 0 - v33 = get_elem_ptr v31, __ptr { ptr, u64, u64 }, v32, !244 + v33 = get_elem_ptr v31, __ptr { ptr, u64, u64 }, v32, !225 v34 = asm(buffer: v33) -> __ptr { ptr, u64, u64 } buffer { } v35 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 mem_copy_val v35, v34 - v36 = get_local __ptr { ptr, u64, u64 }, __anon_000, !245 + v36 = get_local __ptr { ptr, u64, u64 }, __anon_000, !226 mem_copy_val v36, v35 v37 = const u64 0 - v38 = get_elem_ptr v36, __ptr ptr, v37, !246 - v39 = load v38, !247 + v38 = get_elem_ptr v36, __ptr ptr, v37, !227 + v39 = load v38, !228 v40 = const u64 1 - v41 = get_elem_ptr v36, __ptr u64, v40, !248 - v42 = load v41, !249 + v41 = get_elem_ptr v36, __ptr u64, v40, !229 + v42 = load v41, !230 v43 = const u64 2 - v44 = get_elem_ptr v36, __ptr u64, v43, !250 - v45 = load v44, !251 - v46 = get_local __ptr string<3>, self_000, !253 + v44 = get_elem_ptr v36, __ptr u64, v43, !231 + v45 = load v44, !232 + v46 = get_local __ptr string<3>, self_000, !234 v47 = const u64 3 - v48 = add v45, v47, !254 - v49 = cmp gt v48 v42, !255 - cbr v49, encode_23_abi_encode_26_abi_encode_27_abi_encode_28_abi_encode_29_block1(), encode_23_abi_encode_26_abi_encode_27_abi_encode_28_abi_encode_29_block0(v39, v42), !256 + v48 = add v45, v47, !235 + v49 = cmp gt v48 v42, !236 + cbr v49, encode_23_abi_encode_26_abi_encode_27_abi_encode_28_abi_encode_29_block1(), encode_23_abi_encode_26_abi_encode_27_abi_encode_28_abi_encode_29_block0(v39, v42), !237 encode_23_abi_encode_26_abi_encode_27_abi_encode_28_abi_encode_29_block0(v50: ptr, v51: u64): - v52 = get_local __ptr string<3>, __anon_10, !257 + v52 = get_local __ptr string<3>, __anon_10, !238 mem_copy_val v52, v46 - v53 = add v50, v45, !258 - v54 = cast_ptr v53 to __ptr u8, !259 - mem_copy_bytes v54, v52, 3, !260 - v55 = get_local __ptr { ptr, u64, u64 }, __anon_20, !261 + v53 = add v50, v45, !239 + v54 = cast_ptr v53 to __ptr u8, !240 + mem_copy_bytes v54, v52, 3, !241 + v55 = get_local __ptr { ptr, u64, u64 }, __anon_20, !242 v56 = const u64 0 - v57 = get_elem_ptr v55, __ptr ptr, v56, !262 - store v50 to v57, !263 + v57 = get_elem_ptr v55, __ptr ptr, v56, !243 + store v50 to v57, !244 v58 = const u64 1 - v59 = get_elem_ptr v55, __ptr u64, v58, !264 - store v51 to v59, !265 + v59 = get_elem_ptr v55, __ptr u64, v58, !245 + store v51 to v59, !246 v60 = const u64 2 - v61 = get_elem_ptr v55, __ptr u64, v60, !266 - store v48 to v61, !267 + v61 = get_elem_ptr v55, __ptr u64, v60, !247 + store v48 to v61, !248 v62 = asm(buffer: v55) -> __ptr { ptr, u64, u64 } buffer { } v63 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_00 mem_copy_val v63, v62 - v64 = get_local __ptr { { ptr, u64, u64 } }, __anon_30, !269 + v64 = get_local __ptr { { ptr, u64, u64 } }, __anon_30, !250 v65 = const u64 0 - v66 = get_elem_ptr v64, __ptr { ptr, u64, u64 }, v65, !270 + v66 = get_elem_ptr v64, __ptr { ptr, u64, u64 }, v65, !251 mem_copy_val v66, v63 - v67 = get_local __ptr { { ptr, u64, u64 } }, buffer__00, !272 + v67 = get_local __ptr { { ptr, u64, u64 } }, buffer__00, !253 mem_copy_val v67, v64 - v68 = get_local __ptr { { ptr, u64, u64 } }, buffer__00, !274 - v69 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !276 + v68 = get_local __ptr { { ptr, u64, u64 } }, buffer__00, !255 + v69 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !257 mem_copy_val v69, v68 - v70 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, self_1, !278 + v70 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, self_1, !259 v71 = const u64 1 - v72 = get_elem_ptr v70, __ptr { u64, ( u64 | u64 ) }, v71, !280 - v73 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !282 - v74 = get_local __ptr { u64, ( u64 | u64 ) }, self_10, !285 + v72 = get_elem_ptr v70, __ptr { u64, ( u64 | u64 ) }, v71, !261 + v73 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !263 + v74 = get_local __ptr { u64, ( u64 | u64 ) }, self_10, !266 mem_copy_val v74, v72 - v75 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !286 + v75 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !267 mem_copy_val v75, v73 - v76 = get_local __ptr { u64, ( u64 | u64 ) }, self_10, !288 - v77 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !290 + v76 = get_local __ptr { u64, ( u64 | u64 ) }, self_10, !269 + v77 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !271 mem_copy_val v77, v76 - v78 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !291 + v78 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !272 v79 = const u64 0 - v80 = get_elem_ptr v78, __ptr u64, v79, !292 - v81 = load v80, !293 - v82 = const u64 0, !287 - v83 = cmp eq v81 v82, !296 - cbr v83, encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block0(), encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block1(), !297 + v80 = get_elem_ptr v78, __ptr u64, v79, !273 + v81 = load v80, !274 + v82 = const u64 0, !268 + v83 = cmp eq v81 v82, !277 + cbr v83, encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block0(), encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block1(), !278 encode_23_abi_encode_26_abi_encode_27_abi_encode_28_abi_encode_29_block1(): v84 = const u64 2 - v85 = mul v42, v84, !298 - v86 = add v85, v47, !299 - v87 = asm(new_cap: v86, old_ptr: v39, len: v45) -> __ptr u8 hp, !300 { + v85 = mul v42, v84, !279 + v86 = add v85, v47, !280 + v87 = asm(new_cap: v86, old_ptr: v39, len: v45) -> __ptr u8 hp, !281 { aloc new_cap mcp hp old_ptr len } - br encode_23_abi_encode_26_abi_encode_27_abi_encode_28_abi_encode_29_block0(v87, v86), !301 + br encode_23_abi_encode_26_abi_encode_27_abi_encode_28_abi_encode_29_block0(v87, v86), !282 encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block0(): - v88 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !302 + v88 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !283 v89 = const u64 1 v90 = const u64 0 - v91 = get_elem_ptr v88, __ptr u64, v89, v90, !303 - v92 = load v91, !304 - v93 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !306 + v91 = get_elem_ptr v88, __ptr u64, v89, v90, !284 + v92 = load v91, !285 + v93 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !287 v94 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg mem_copy_val v94, v93 v95 = get_local __ptr { { ptr, u64, u64 } }, __ret_val - v96 = const u64 0, !307 + v96 = const u64 0, !288 v97 = call abi_encode_31(v96, v94, v95) - v98 = get_local __ptr { { ptr, u64, u64 } }, buffer__1, !309 + v98 = get_local __ptr { { ptr, u64, u64 } }, buffer__1, !290 mem_copy_val v98, v95 - v99 = get_local __ptr { { ptr, u64, u64 } }, buffer__1, !311 + v99 = get_local __ptr { { ptr, u64, u64 } }, buffer__1, !292 v100 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg0 mem_copy_val v100, v99 v101 = get_local __ptr { { ptr, u64, u64 } }, __ret_val0 v102 = call abi_encode_31(v92, v100, v101) - v103 = get_local __ptr { { ptr, u64, u64 } }, buffer___0, !313 + v103 = get_local __ptr { { ptr, u64, u64 } }, buffer___0, !294 mem_copy_val v103, v101 - v104 = get_local __ptr { { ptr, u64, u64 } }, buffer___0, !315 + v104 = get_local __ptr { { ptr, u64, u64 } }, buffer___0, !296 v105 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg mem_copy_val v105, v104 - br encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block5(v105), !316 + br encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block5(v105), !297 encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block1(): - v106 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !317 + v106 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !298 v107 = const u64 0 - v108 = get_elem_ptr v106, __ptr u64, v107, !318 - v109 = load v108, !319 - v110 = const u64 1, !287 - v111 = cmp eq v109 v110, !322 - cbr v111, encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block2(), encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block3(), !323 + v108 = get_elem_ptr v106, __ptr u64, v107, !299 + v109 = load v108, !300 + v110 = const u64 1, !268 + v111 = cmp eq v109 v110, !303 + cbr v111, encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block2(), encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block3(), !304 encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block2(): - v112 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !324 + v112 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !305 v113 = const u64 1 v114 = const u64 1 - v115 = get_elem_ptr v112, __ptr u64, v113, v114, !325 - v116 = load v115, !326 - v117 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !328 + v115 = get_elem_ptr v112, __ptr u64, v113, v114, !306 + v116 = load v115, !307 + v117 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !309 v118 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg1 mem_copy_val v118, v117 v119 = get_local __ptr { { ptr, u64, u64 } }, __ret_val1 - v120 = const u64 1, !329 + v120 = const u64 1, !310 v121 = call abi_encode_31(v120, v118, v119) - v122 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !331 + v122 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !312 mem_copy_val v122, v119 - v123 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !333 + v123 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !314 v124 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg2 mem_copy_val v124, v123 v125 = get_local __ptr { { ptr, u64, u64 } }, __ret_val2 v126 = call abi_encode_31(v116, v124, v125) - v127 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !335 + v127 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !316 mem_copy_val v127, v125 - v128 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !337 + v128 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !318 v129 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg mem_copy_val v129, v128 - br encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block5(v129), !338 + br encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block5(v129), !319 encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block3(): - v130 = const u64 14757395258967588866, !289 - revert v130, !339 + v130 = const u64 14757395258967588866, !270 + revert v130, !320 encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block5(v131: __ptr { { ptr, u64, u64 } }): - v132 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !341 + v132 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !322 mem_copy_val v132, v131 - v133 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !343 - v134 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !345 + v133 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !324 + v134 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !326 mem_copy_val v134, v133 - v135 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !347 - v136 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !349 + v135 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !328 + v136 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !330 mem_copy_val v136, v135 - v137 = const u64 1, !350 - v138 = add v11, v137, !353 - br encode_23_abi_encode_26_while(v138), !354 + v137 = const u64 1, !331 + v138 = add v11, v137, !334 + br encode_23_abi_encode_26_while(v138), !335 encode_23_abi_encode_26_end_while(): - v139 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !356 - v140 = get_local __ptr { { ptr, u64, u64 } }, buffer, !358 + v139 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !337 + v140 = get_local __ptr { { ptr, u64, u64 } }, buffer, !339 mem_copy_val v140, v139 - v141 = get_local __ptr { { ptr, u64, u64 } }, buffer, !360 - v142 = get_local __ptr { { ptr, u64, u64 } }, self_3, !363 + v141 = get_local __ptr { { ptr, u64, u64 } }, buffer, !341 + v142 = get_local __ptr { { ptr, u64, u64 } }, self_3, !344 mem_copy_val v142, v141 - v143 = get_local __ptr { { ptr, u64, u64 } }, self_3, !365 + v143 = get_local __ptr { { ptr, u64, u64 } }, self_3, !346 v144 = const u64 0 - v145 = get_elem_ptr v143, __ptr { ptr, u64, u64 }, v144, !366 + v145 = get_elem_ptr v143, __ptr { ptr, u64, u64 }, v144, !347 v146 = asm(buffer: v145) -> __ptr { ptr, u64, u64 } buffer { } v147 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_01 mem_copy_val v147, v146 - v148 = get_local __ptr { ptr, u64, u64 }, __anon_01, !367 + v148 = get_local __ptr { ptr, u64, u64 }, __anon_01, !348 mem_copy_val v148, v147 v149 = const u64 0 - v150 = get_elem_ptr v148, __ptr ptr, v149, !368 + v150 = get_elem_ptr v148, __ptr ptr, v149, !349 v151 = const u64 2 - v152 = get_elem_ptr v148, __ptr u64, v151, !369 - v153 = get_local __ptr { ptr, u64 }, __anon_100, !370 + v152 = get_elem_ptr v148, __ptr u64, v151, !350 + v153 = get_local __ptr { ptr, u64 }, __anon_100, !351 v154 = const u64 0 - v155 = get_elem_ptr v153, __ptr ptr, v154, !371 + v155 = get_elem_ptr v153, __ptr ptr, v154, !352 mem_copy_val v155, v150 v156 = const u64 1 - v157 = get_elem_ptr v153, __ptr u64, v156, !372 + v157 = get_elem_ptr v153, __ptr u64, v156, !353 mem_copy_val v157, v152 v158 = asm(s: v153) -> __ptr slice s { } @@ -556,149 +535,149 @@ script { mem_copy_val v160, v159 v161 = const u64 3647243719605075626 log __ptr slice v160, v161 - v162 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !373 - v163 = const u64 0, !374 - v164 = get_elem_ptr v162, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v163, !375 + v162 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !354 + v163 = const u64 0, !355 + v164 = get_elem_ptr v162, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v163, !356 v165 = const u64 0 - v166 = get_elem_ptr v164, __ptr { string<3> }, v165, !376 + v166 = get_elem_ptr v164, __ptr { string<3> }, v165, !357 v167 = const u64 0 - v168 = get_elem_ptr v166, __ptr string<3>, v167, !234 + v168 = get_elem_ptr v166, __ptr string<3>, v167, !214 v169 = get_global __ptr string<3>, __const_global - v170 = cast_ptr v169 to ptr, !377 - v171 = get_local __ptr { ptr, u64 }, __anon_0, !377 + v170 = cast_ptr v169 to ptr, !358 + v171 = get_local __ptr { ptr, u64 }, __anon_0, !358 v172 = const u64 0 v173 = get_elem_ptr v171, __ptr ptr, v172 - store v170 to v173, !377 + store v170 to v173, !358 v174 = const u64 1 v175 = get_elem_ptr v171, __ptr u64, v174 v176 = const u64 3 - store v176 to v175, !377 - v177 = get_local __ptr slice, __anon_1, !377 + store v176 to v175, !358 + v177 = get_local __ptr slice, __anon_1, !358 mem_copy_bytes v177, v171, 16 v178 = get_local __ptr string<3>, __tmp_arg3 mem_copy_val v178, v168 v179 = get_local __ptr slice, __tmp_arg4 mem_copy_val v179, v177 v180 = call eq_str_3_37(v178, v179) - v181 = const bool false, !379 - v182 = cmp eq v180 v181, !385 - cbr v182, assert_34_block0(), assert_34_block1(), !386 + v181 = const bool false, !360 + v182 = cmp eq v180 v181, !366 + cbr v182, assert_34_block0(), assert_34_block1(), !367 assert_34_block0(): v183 = const u64 18446744073709486084 - revert v183, !391 + revert v183, !372 assert_34_block1(): - v184 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !392 - v185 = const u64 0, !393 - v186 = get_elem_ptr v184, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v185, !394 + v184 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !373 + v185 = const u64 0, !374 + v186 = get_elem_ptr v184, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v185, !375 v187 = const u64 1 - v188 = get_elem_ptr v186, __ptr { u64, ( u64 | u64 ) }, v187, !395 - v189 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_1, !396 + v188 = get_elem_ptr v186, __ptr { u64, ( u64 | u64 ) }, v187, !376 + v189 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_1, !377 mem_copy_val v189, v188 - v190 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_1, !397 + v190 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_1, !378 v191 = const u64 0 - v192 = get_elem_ptr v190, __ptr u64, v191, !397 + v192 = get_elem_ptr v190, __ptr u64, v191, !378 v193 = load v192 - v194 = const u64 0, !397 - v195 = cmp eq v193 v194, !400 - cbr v195, block0(), block1(), !398 + v194 = const u64 0, !378 + v195 = cmp eq v193 v194, !381 + cbr v195, block0(), block1(), !379 block0(): - v196 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_1, !397 + v196 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_1, !378 v197 = const u64 1 v198 = const u64 0 v199 = get_elem_ptr v196, __ptr u64, v197, v198 v200 = load v199 - v201 = const u64 1338, !401 - v202 = cmp eq v200 v201, !404 - v203 = cmp eq v202 v181, !407 - cbr v203, assert_34_block015(), assert_34_block116(), !408 + v201 = const u64 1338, !382 + v202 = cmp eq v200 v201, !385 + v203 = cmp eq v202 v181, !388 + cbr v203, assert_34_block015(), assert_34_block116(), !389 assert_34_block015(): - revert v183, !409 + revert v183, !390 assert_34_block116(): - v204 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !410 - v205 = const u64 1, !411 - v206 = get_elem_ptr v204, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v205, !412 + v204 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !391 + v205 = const u64 1, !392 + v206 = get_elem_ptr v204, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v205, !393 v207 = const u64 0 - v208 = get_elem_ptr v206, __ptr { string<3> }, v207, !413 + v208 = get_elem_ptr v206, __ptr { string<3> }, v207, !394 v209 = const u64 0 - v210 = get_elem_ptr v208, __ptr string<3>, v209, !234 + v210 = get_elem_ptr v208, __ptr string<3>, v209, !214 v211 = get_global __ptr string<3>, __const_global0 - v212 = cast_ptr v211 to ptr, !414 - v213 = get_local __ptr { ptr, u64 }, __anon_2, !414 + v212 = cast_ptr v211 to ptr, !395 + v213 = get_local __ptr { ptr, u64 }, __anon_2, !395 v214 = const u64 0 v215 = get_elem_ptr v213, __ptr ptr, v214 - store v212 to v215, !414 + store v212 to v215, !395 v216 = const u64 1 v217 = get_elem_ptr v213, __ptr u64, v216 v218 = const u64 3 - store v218 to v217, !414 - v219 = get_local __ptr slice, __anon_3, !414 + store v218 to v217, !395 + v219 = get_local __ptr slice, __anon_3, !395 mem_copy_bytes v219, v213, 16 v220 = get_local __ptr string<3>, __tmp_arg5 mem_copy_val v220, v210 v221 = get_local __ptr slice, __tmp_arg6 mem_copy_val v221, v219 v222 = call eq_str_3_37(v220, v221) - v223 = cmp eq v222 v181, !417 - cbr v223, assert_34_block018(), assert_34_block119(), !418 + v223 = cmp eq v222 v181, !398 + cbr v223, assert_34_block018(), assert_34_block119(), !399 assert_34_block018(): - revert v183, !419 + revert v183, !400 assert_34_block119(): - v224 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !420 - v225 = const u64 1, !421 - v226 = get_elem_ptr v224, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v225, !422 + v224 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !401 + v225 = const u64 1, !402 + v226 = get_elem_ptr v224, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v225, !403 v227 = const u64 1 - v228 = get_elem_ptr v226, __ptr { u64, ( u64 | u64 ) }, v227, !423 - v229 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_2, !424 + v228 = get_elem_ptr v226, __ptr { u64, ( u64 | u64 ) }, v227, !404 + v229 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_2, !405 mem_copy_val v229, v228 - v230 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_2, !425 + v230 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_2, !406 v231 = const u64 0 - v232 = get_elem_ptr v230, __ptr u64, v231, !425 + v232 = get_elem_ptr v230, __ptr u64, v231, !406 v233 = load v232 - v234 = const u64 1, !425 - v235 = cmp eq v233 v234, !428 - cbr v235, block3(), block4(), !426 + v234 = const u64 1, !406 + v235 = cmp eq v233 v234, !409 + cbr v235, block3(), block4(), !407 block1(): - v236 = const u64 1, !429 - revert v236, !432 + v236 = const u64 1, !410 + revert v236, !413 block3(): - v237 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_2, !425 + v237 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_2, !406 v238 = const u64 1 v239 = const u64 1 v240 = get_elem_ptr v237, __ptr u64, v238, v239 v241 = load v240 - v242 = const u64 1, !433 - v243 = cmp eq v241 v242, !436 - v244 = cmp eq v243 v181, !439 - cbr v244, assert_34_block021(), assert_34_block122(), !440 + v242 = const u64 1, !414 + v243 = cmp eq v241 v242, !417 + v244 = cmp eq v243 v181, !420 + cbr v244, assert_34_block021(), assert_34_block122(), !421 assert_34_block021(): - revert v183, !441 + revert v183, !422 assert_34_block122(): - v245 = get_local __ptr { u64 }, __anon_4, !442 + v245 = get_local __ptr { u64 }, __anon_4, !423 v246 = const u64 0 v247 = get_elem_ptr v245, __ptr u64, v246 - v248 = const u64 1, !443 - store v248 to v247, !442 + v248 = const u64 1, !424 + store v248 to v247, !423 mem_copy_val __ret_value, v245 v249 = const unit () ret () v249 block4(): - v250 = const u64 2, !444 - revert v250, !447 + v250 = const u64 2, !425 + revert v250, !428 } - pub fn abi_encode_31(self !448: u64, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }) -> (), !451 { + pub fn abi_encode_31(self !429: u64, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }) -> (), !432 { local mut { ptr, u64, u64 } __aggr_memcpy_0 local mut { ptr, u64, u64 } __aggr_memcpy_00 local { ptr, u64, u64 } __anon_0 @@ -709,9 +688,9 @@ script { entry(self: u64, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }): v0 = get_local __ptr { { ptr, u64, u64 } }, buffer_ mem_copy_val v0, buffer - v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !452 + v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !433 v2 = const u64 0 - v3 = get_elem_ptr v1, __ptr { ptr, u64, u64 }, v2, !66 + v3 = get_elem_ptr v1, __ptr { ptr, u64, u64 }, v2, !224 v4 = asm(buffer: v3) -> __ptr { ptr, u64, u64 } buffer { } v5 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 @@ -750,7 +729,7 @@ script { } v31 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_00 mem_copy_val v31, v30 - v32 = get_local __ptr { { ptr, u64, u64 } }, __anon_2, !453 + v32 = get_local __ptr { { ptr, u64, u64 } }, __anon_2, !434 v33 = const u64 0 v34 = get_elem_ptr v32, __ptr { ptr, u64, u64 }, v33 mem_copy_val v34, v31 @@ -769,7 +748,7 @@ script { br block0(v39, v38) } - pub fn new_32(__ret_value: __ptr { { ptr, u64, u64 } }) -> (), !456 { + pub fn new_32(__ret_value: __ptr { { ptr, u64, u64 } }) -> (), !437 { local mut { ptr, u64, u64 } __aggr_memcpy_0 local { ptr, u64, u64 } __anon_0 local { { ptr, u64, u64 } } __anon_1 @@ -794,7 +773,7 @@ script { } v11 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 mem_copy_val v11, v10 - v12 = get_local __ptr { { ptr, u64, u64 } }, __anon_1, !457 + v12 = get_local __ptr { { ptr, u64, u64 } }, __anon_1, !438 v13 = const u64 0 v14 = get_elem_ptr v12, __ptr { ptr, u64, u64 }, v13 mem_copy_val v14, v11 @@ -803,7 +782,7 @@ script { ret () v15 } - fn eq_str_3_37(a: __ptr string<3>, b: __ptr slice) -> bool, !460 { + fn eq_str_3_37(a: __ptr string<3>, b: __ptr slice) -> bool, !441 { local { ptr, u64 } __tuple_1_ local string<3> a_ local slice self_ @@ -811,9 +790,9 @@ script { entry(a: __ptr string<3>, b: __ptr slice): v0 = get_local __ptr string<3>, a_ mem_copy_val v0, a - v1 = get_local __ptr slice, self_, !463 + v1 = get_local __ptr slice, self_, !444 mem_copy_val v1, b - v2 = get_local __ptr slice, self_, !466 + v2 = get_local __ptr slice, self_, !447 v3 = asm(s: v2) -> __ptr { ptr, u64 } s { } v4 = const u64 0 @@ -822,21 +801,21 @@ script { v7 = const u64 1 v8 = get_elem_ptr v3, __ptr u64, v7 v9 = load v8 - v10 = get_local __ptr { ptr, u64 }, __tuple_1_, !468 + v10 = get_local __ptr { ptr, u64 }, __tuple_1_, !449 v11 = const u64 0 v12 = get_elem_ptr v10, __ptr ptr, v11 store v6 to v12 v13 = const u64 1 v14 = get_elem_ptr v10, __ptr u64, v13 store v9 to v14 - v15 = get_local __ptr { ptr, u64 }, __tuple_1_, !469 + v15 = get_local __ptr { ptr, u64 }, __tuple_1_, !450 v16 = const u64 0 - v17 = get_elem_ptr v15, __ptr ptr, v16, !470 - v18 = load v17, !463 - v19 = get_local __ptr string<3>, a_, !471 - v20 = const u64 3, !472 - v21 = asm(a: v19, b: v18, len: v20, r) -> bool r, !473 { - meq r a b len, !474 + v17 = get_elem_ptr v15, __ptr ptr, v16, !451 + v18 = load v17, !444 + v19 = get_local __ptr string<3>, a_, !452 + v20 = const u64 3, !453 + v21 = asm(a: v19, b: v18, len: v20, r) -> bool r, !454 { + meq r a b len, !455 } ret bool v21 } @@ -895,428 +874,409 @@ script { !50 = (!6 !7 !13 !14 !21 !22 !48) !51 = span !0 178 182 !52 = span !0 183 184 -!53 = span !0 203 242 -!54 = fn_call_path_span !0 203 220 -!55 = span !4 81496 81526 -!56 = fn_call_path_span !4 81501 81511 -!57 = "test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/src/types..sw" -!58 = span !57 309 313 -!59 = (!53 !54 !55 !56 !58) -!60 = "test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/src/types.sw" -!61 = span !60 29 39 -!62 = (!53 !54 !55 !56 !61) -!63 = (!53 !54 !55 !56) -!64 = span !4 81551 81557 -!65 = (!53 !54 !64) -!66 = span !4 87 114 -!67 = (!53 !54 !66) -!68 = span !4 81565 81566 -!69 = (!53 !54 !68) -!70 = (!53 !54) -!71 = span !4 81568 81574 -!72 = (!53 !54 !71) -!73 = (!53 !54 !66) -!74 = span !4 81582 81583 -!75 = (!53 !54 !74) -!76 = span !4 81536 81584 -!77 = (!53 !54 !76) -!78 = span !4 4063 4067 -!79 = span !4 4038 4145 -!80 = fn_name_span !4 4045 4051 -!81 = (!79 !80) -!82 = span !4 4120 4139 -!83 = fn_call_path_span !4 4120 4133 -!84 = span !4 135031 135052 -!85 = fn_call_path_span !4 135031 135044 -!86 = span !0 319 344 -!87 = fn_call_path_span !0 326 332 -!88 = span !4 86580 86600 -!89 = fn_call_path_span !4 86587 86597 -!90 = span !4 625 641 -!91 = (!82 !83 !84 !85 !86 !87 !82 !83 !88 !89 !90) -!92 = span !4 3351 3368 -!93 = (!82 !83 !84 !85 !86 !87 !82 !83 !88 !89 !92) -!94 = (!82 !83 !84 !85 !86 !87 !82 !83 !88 !89 !92) -!95 = (!82 !83 !84 !85 !86 !87 !82 !83 !88 !89 !92) -!96 = span !4 86598 86599 -!97 = (!82 !83 !84 !85 !86 !87 !82 !83 !88 !89 !92) -!98 = span !4 3330 3409 -!99 = (!82 !83 !84 !85 !86 !87 !82 !83 !88 !89 !98) -!100 = (!82 !83 !84 !85 !86 !87 !82 !83 !88 !89) -!101 = (!82 !83 !84 !85 !86 !87 !82 !83 !88 !89) -!102 = (!82 !83 !84 !85 !86 !87 !82 !83 !88 !89) -!103 = span !4 3418 3461 -!104 = (!82 !83 !84 !85 !86 !87 !82 !83 !88 !89 !103) -!105 = span !4 3471 3476 -!106 = (!82 !83 !84 !85 !86 !87 !82 !83 !88 !89 !105) -!107 = span !4 86569 86601 -!108 = (!82 !83 !84 !85 !86 !87 !82 !83 !107) -!109 = span !4 86617 86621 -!110 = (!82 !83 !84 !85 !86 !87 !82 !83 !109) -!111 = span !4 86617 86627 -!112 = fn_call_path_span !4 86622 86625 -!113 = (!82 !83 !84 !85 !86 !87 !82 !83 !111 !112) -!114 = "sway-lib-std/src/raw_slice.sw" -!115 = span !114 2922 2926 -!116 = (!82 !83 !84 !85 !86 !87 !82 !83 !111 !112 !115) -!117 = span !114 2911 2927 -!118 = fn_call_path_span !114 2911 2921 -!119 = (!82 !83 !84 !85 !86 !87 !82 !83 !111 !112 !117 !118) -!120 = span !114 1633 1638 -!121 = (!82 !83 !84 !85 !86 !87 !82 !83 !111 !112 !117 !118 !120) -!122 = (!82 !83 !84 !85 !86 !87 !82 !83 !111 !112) -!123 = span !114 2928 2929 -!124 = (!82 !83 !84 !85 !86 !87 !82 !83 !111 !112 !123) -!125 = (!82 !83 !84 !85 !86 !87 !82 !83 !111 !112) -!126 = span !0 307 347 -!127 = (!82 !83 !84 !85 !126) -!128 = (!82 !83 !84 !85) -!129 = span !4 135054 135075 -!130 = fn_call_path_span !4 135054 135067 -!131 = span !0 329 351 -!132 = fn_call_path_span !0 336 342 -!133 = span !4 83379 83407 -!134 = fn_call_path_span !4 83386 83398 -!135 = (!82 !83 !129 !130 !131 !132 !82 !83 !133 !134) -!136 = span !4 2927 3008 -!137 = (!82 !83 !129 !130 !131 !132 !82 !83 !133 !134 !136) -!138 = span !4 2965 2978 -!139 = (!82 !83 !129 !130 !131 !132 !82 !83 !133 !134) -!140 = (!82 !83 !129 !130 !131 !132 !82 !83 !133 !134) -!141 = (!82 !83 !129 !130 !131 !132 !82 !83 !133 !134) -!142 = span !4 3018 3057 -!143 = (!82 !83 !129 !130 !131 !132 !82 !83 !133 !134 !142) -!144 = span !0 369 370 -!145 = span !0 369 418 -!146 = fn_call_path_span !0 369 418 -!147 = (!82 !83 !129 !130 !145 !146) -!148 = (!82 !83 !129 !130 !145) -!149 = "test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/src/main.sw" -!150 = span !149 204 260 -!151 = (!82 !83 !129 !130 !150) -!152 = (!82 !83 !129 !130 !150) -!153 = (!82 !83 !129 !130 !150) -!154 = span !0 394 416 -!155 = fn_call_path_span !0 401 407 -!156 = (!82 !83 !129 !130 !154 !155 !82 !83 !133 !134) -!157 = (!82 !83 !129 !130 !154 !155 !82 !83 !133 !134 !136) -!158 = (!82 !83 !129 !130 !154 !155 !82 !83 !133 !134) -!159 = (!82 !83 !129 !130 !154 !155 !82 !83 !133 !134) -!160 = (!82 !83 !129 !130 !154 !155 !82 !83 !133 !134) -!161 = (!82 !83 !129 !130 !154 !155 !82 !83 !133 !134 !142) -!162 = (!82 !83 !129 !130 !150) -!163 = (!82 !83 !129 !130 !150) -!164 = (!82 !83 !129 !130) -!165 = span !0 420 421 -!166 = span !0 420 469 -!167 = fn_call_path_span !0 420 469 -!168 = (!82 !83 !129 !130 !166 !167) -!169 = (!82 !83 !129 !130 !166) -!170 = (!82 !83 !129 !130 !150) -!171 = (!82 !83 !129 !130 !150) -!172 = (!82 !83 !129 !130 !150) -!173 = span !0 445 467 -!174 = fn_call_path_span !0 452 458 -!175 = (!82 !83 !129 !130 !173 !174 !82 !83 !133 !134) -!176 = (!82 !83 !129 !130 !173 !174 !82 !83 !133 !134 !136) -!177 = (!82 !83 !129 !130 !173 !174 !82 !83 !133 !134) -!178 = (!82 !83 !129 !130 !173 !174 !82 !83 !133 !134) -!179 = (!82 !83 !129 !130 !173 !174 !82 !83 !133 !134) -!180 = (!82 !83 !129 !130 !173 !174 !82 !83 !133 !134 !142) -!181 = (!82 !83 !129 !130 !150) -!182 = (!82 !83 !129 !130 !150) -!183 = (!82 !83 !129 !130) -!184 = span !0 486 487 -!185 = span !0 477 488 -!186 = (!82 !83 !129 !130 !185) -!187 = span !4 135030 135076 -!188 = (!82 !83 !187) -!189 = (!82 !83 !187) -!190 = (!82 !83 !187) -!191 = span !149 297 695 -!192 = fn_name_span !149 300 304 -!193 = (!191 !192) -!194 = span !149 360 363 -!195 = span !4 81189 81193 -!196 = (!194 !195) -!197 = span !4 81189 81219 -!198 = fn_call_path_span !4 81194 81204 -!199 = (!194 !197 !198) -!200 = (!194 !197 !198) -!201 = span !4 26624 26630 -!202 = (!194 !197 !198 !201) -!203 = span !4 26607 26631 -!204 = (!194 !197 !198 !203) -!205 = span !4 26652 26653 -!206 = (!194 !197 !198) -!207 = span !4 26673 26674 -!208 = span !4 26669 26674 -!209 = fn_call_path_span !4 26671 26672 -!210 = (!194 !197 !198 !208 !209) -!211 = (!194 !197 !198) -!212 = span !4 26698 26702 -!213 = (!194 !197 !198 !212) -!214 = span !4 26698 26705 -!215 = (!194 !197 !198 !214) -!216 = span !4 26717 26723 -!217 = (!194 !197 !198 !216) -!218 = span !4 26698 26724 -!219 = fn_call_path_span !4 26706 26716 -!220 = (!194 !197 !198 !218 !219) -!221 = (!194 !197 !198 !218 !219) -!222 = span !4 51667 51671 -!223 = (!194 !197 !198 !218 !219 !222) -!224 = span !4 51672 51673 -!225 = (!194 !197 !198 !218 !219 !224) -!226 = span !4 51685 51691 -!227 = (!194 !197 !198 !218 !219 !226) -!228 = span !4 51667 51692 -!229 = fn_call_path_span !4 51674 51684 -!230 = (!194 !197 !198 !218 !219 !228 !229) -!231 = (!194 !197 !198 !218 !219 !228 !229) -!232 = span !0 314 318 -!233 = (!194 !197 !198 !218 !219 !228 !229 !232) -!234 = span !149 282 293 -!235 = (!194 !197 !198 !218 !219 !228 !229 !234) -!236 = span !0 334 340 -!237 = (!194 !197 !198 !218 !219 !228 !229 !236) -!238 = span !0 314 341 -!239 = fn_call_path_span !0 323 333 -!240 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!241 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!242 = span !4 7794 7800 -!243 = (!194 !197 !198 !218 !219 !228 !229 !238 !239 !242) -!244 = (!194 !197 !198 !218 !219 !228 !229 !238 !239 !66) -!245 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!246 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!247 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!248 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!249 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!250 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!251 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!252 = span !4 7809 7813 -!253 = (!194 !197 !198 !218 !219 !228 !229 !238 !239 !252) -!254 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!255 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!256 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!257 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!258 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!259 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!260 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!261 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!262 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!263 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!264 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!265 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!266 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!267 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!268 = span !4 7742 7825 -!269 = (!194 !197 !198 !218 !219 !228 !229 !238 !239 !268) -!270 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!271 = span !0 301 342 -!272 = (!194 !197 !198 !218 !219 !228 !229 !271) -!273 = span !0 364 370 -!274 = (!194 !197 !198 !218 !219 !228 !229 !273) -!275 = span !4 51654 51693 -!276 = (!194 !197 !198 !218 !219 !275) -!277 = span !4 51715 51719 -!278 = (!194 !197 !198 !218 !219 !277) -!279 = span !4 51720 51721 -!280 = (!194 !197 !198 !218 !219 !279) -!281 = span !4 51733 51739 -!282 = (!194 !197 !198 !218 !219 !281) -!283 = span !4 51715 51740 -!284 = fn_call_path_span !4 51722 51732 -!285 = (!194 !197 !198 !218 !219 !283 !284) -!286 = (!194 !197 !198 !218 !219 !283 !284) -!287 = span !0 323 327 -!288 = (!194 !197 !198 !218 !219 !283 !284 !287) -!289 = span !0 317 756 -!290 = (!194 !197 !198 !218 !219 !283 !284 !289) -!291 = (!194 !197 !198 !218 !219 !283 !284 !287) -!292 = (!194 !197 !198 !218 !219 !283 !284 !287) -!293 = (!194 !197 !198 !218 !219 !283 !284) -!294 = span !0 330 540 -!295 = fn_call_path_span !0 330 540 -!296 = (!194 !197 !198 !218 !219 !283 !284 !294 !295) -!297 = (!194 !197 !198 !218 !219 !283 !284 !294) -!298 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!299 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!300 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!301 = (!194 !197 !198 !218 !219 !228 !229 !238 !239) -!302 = (!194 !197 !198 !218 !219 !283 !284 !287) -!303 = (!194 !197 !198 !218 !219 !283 !284) -!304 = (!194 !197 !198 !218 !219 !283 !284) -!305 = span !0 415 421 -!306 = (!194 !197 !198 !218 !219 !283 !284 !305) -!307 = span !0 399 403 -!308 = span !0 386 423 -!309 = (!194 !197 !198 !218 !219 !283 !284 !308) -!310 = span !0 478 484 -!311 = (!194 !197 !198 !218 !219 !283 !284 !310) -!312 = span !0 448 486 -!313 = (!194 !197 !198 !218 !219 !283 !284 !312) -!314 = span !0 511 517 -!315 = (!194 !197 !198 !218 !219 !283 !284 !314) -!316 = (!194 !197 !198 !218 !219 !283 !284) -!317 = (!194 !197 !198 !218 !219 !283 !284 !287) -!318 = (!194 !197 !198 !218 !219 !283 !284 !287) -!319 = (!194 !197 !198 !218 !219 !283 !284) -!320 = span !0 542 752 -!321 = fn_call_path_span !0 542 752 -!322 = (!194 !197 !198 !218 !219 !283 !284 !320 !321) -!323 = (!194 !197 !198 !218 !219 !283 !284 !320) -!324 = (!194 !197 !198 !218 !219 !283 !284 !287) -!325 = (!194 !197 !198 !218 !219 !283 !284) -!326 = (!194 !197 !198 !218 !219 !283 !284) -!327 = span !0 627 633 -!328 = (!194 !197 !198 !218 !219 !283 !284 !327) -!329 = span !0 611 615 -!330 = span !0 598 635 -!331 = (!194 !197 !198 !218 !219 !283 !284 !330) -!332 = span !0 690 696 -!333 = (!194 !197 !198 !218 !219 !283 !284 !332) -!334 = span !0 660 698 -!335 = (!194 !197 !198 !218 !219 !283 !284 !334) -!336 = span !0 723 729 -!337 = (!194 !197 !198 !218 !219 !283 !284 !336) -!338 = (!194 !197 !198 !218 !219 !283 !284) -!339 = (!194 !197 !198 !218 !219 !283 !284 !289) -!340 = span !0 304 757 -!341 = (!194 !197 !198 !218 !219 !283 !284 !340) -!342 = span !0 778 784 -!343 = (!194 !197 !198 !218 !219 !283 !284 !342) -!344 = span !4 51702 51741 -!345 = (!194 !197 !198 !218 !219 !344) -!346 = span !4 51750 51756 -!347 = (!194 !197 !198 !218 !219 !346) -!348 = span !4 26689 26724 -!349 = (!194 !197 !198 !348) -!350 = span !4 26743 26744 -!351 = span !4 26738 26744 -!352 = fn_call_path_span !4 26740 26742 -!353 = (!194 !197 !198 !351 !352) -!354 = (!194 !197 !198) -!355 = span !4 26765 26771 -!356 = (!194 !197 !198 !355) -!357 = span !4 81176 81220 -!358 = (!194 !357) -!359 = span !4 81229 81235 -!360 = (!194 !359) -!361 = span !4 81229 81250 -!362 = fn_call_path_span !4 81236 81248 -!363 = (!194 !361 !362) -!364 = span !4 573 577 -!365 = (!194 !361 !362 !364) -!366 = (!194 !361 !362 !66) -!367 = (!194 !361 !362) -!368 = (!194 !361 !362) -!369 = (!194 !361 !362) -!370 = (!194 !361 !362) -!371 = (!194 !361 !362) -!372 = (!194 !361 !362) -!373 = span !149 386 389 -!374 = span !149 390 391 -!375 = span !149 386 392 -!376 = span !149 393 394 -!377 = span !149 400 405 -!378 = "sway-lib-std/src/ops.sw" -!379 = span !378 12573 12578 -!380 = span !149 370 407 -!381 = fn_call_path_span !149 370 376 -!382 = "sway-lib-std/src/assert.sw" -!383 = span !382 1015 1025 -!384 = fn_call_path_span !382 1015 1016 -!385 = (!380 !381 !383 !384) -!386 = (!380 !381 !383) -!387 = span !382 1036 1064 -!388 = fn_call_path_span !382 1036 1042 -!389 = "sway-lib-std/src/revert.sw" -!390 = span !389 757 771 -!391 = (!380 !381 !387 !388 !390) -!392 = span !149 426 429 -!393 = span !149 430 431 -!394 = span !149 426 432 -!395 = span !149 433 434 -!396 = span !149 420 503 -!397 = span !149 426 434 -!398 = span !149 445 473 -!399 = fn_call_path_span !149 445 473 -!400 = (!398 !399) -!401 = span !149 507 511 -!402 = span !149 420 511 -!403 = fn_call_path_span !149 504 506 -!404 = (!402 !403) -!405 = span !149 413 512 -!406 = fn_call_path_span !149 413 419 -!407 = (!405 !406 !383 !384) -!408 = (!405 !406 !383) -!409 = (!405 !406 !387 !388 !390) -!410 = span !149 535 538 -!411 = span !149 539 540 -!412 = span !149 535 541 -!413 = span !149 542 543 -!414 = span !149 549 554 -!415 = span !149 519 556 -!416 = fn_call_path_span !149 519 525 -!417 = (!415 !416 !383 !384) -!418 = (!415 !416 !383) -!419 = (!415 !416 !387 !388 !390) -!420 = span !149 575 578 -!421 = span !149 579 580 -!422 = span !149 575 581 -!423 = span !149 582 583 -!424 = span !149 569 652 -!425 = span !149 575 583 -!426 = span !149 594 622 -!427 = fn_call_path_span !149 594 622 -!428 = (!426 !427) -!429 = span !149 494 495 -!430 = span !149 487 496 -!431 = fn_call_path_span !149 487 493 -!432 = (!430 !431 !390) -!433 = span !149 656 657 -!434 = span !149 569 657 -!435 = fn_call_path_span !149 653 655 -!436 = (!434 !435) -!437 = span !149 562 658 -!438 = fn_call_path_span !149 562 568 -!439 = (!437 !438 !383 !384) -!440 = (!437 !438 !383) -!441 = (!437 !438 !387 !388 !390) -!442 = span !149 665 693 -!443 = span !149 686 687 -!444 = span !149 643 644 -!445 = span !149 636 645 -!446 = fn_call_path_span !149 636 642 -!447 = (!445 !446 !390) -!448 = span !4 5357 5361 -!449 = span !4 5343 5488 -!450 = fn_name_span !4 5346 5356 -!451 = (!449 !450) -!452 = span !4 5451 5457 -!453 = span !4 5399 5482 -!454 = span !4 160 260 -!455 = fn_name_span !4 167 170 -!456 = (!454 !455) -!457 = span !4 191 254 -!458 = span !149 50 202 -!459 = fn_name_span !149 53 61 -!460 = (!458 !459) -!461 = span !149 107 117 -!462 = fn_call_path_span !149 109 115 -!463 = (!461 !462) -!464 = "sway-lib-std/src/str.sw" -!465 = span !464 153 157 -!466 = (!461 !462 !465) -!467 = span !464 131 201 -!468 = (!461 !462 !467) -!469 = (!461 !462 !467) -!470 = (!461 !462 !467) -!471 = span !149 130 131 -!472 = span !149 148 149 -!473 = span !149 123 200 -!474 = span !149 164 177 +!53 = span !0 234 241 +!54 = span !0 203 242 +!55 = fn_call_path_span !0 203 220 +!56 = span !4 81408 81434 +!57 = (!54 !55 !56) +!58 = span !4 4063 4067 +!59 = span !4 4038 4145 +!60 = fn_name_span !4 4045 4051 +!61 = (!59 !60) +!62 = span !4 4120 4139 +!63 = fn_call_path_span !4 4120 4133 +!64 = span !4 135031 135052 +!65 = fn_call_path_span !4 135031 135044 +!66 = span !0 404 429 +!67 = fn_call_path_span !0 411 417 +!68 = span !4 86580 86600 +!69 = fn_call_path_span !4 86587 86597 +!70 = span !4 625 641 +!71 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69 !70) +!72 = span !4 3351 3368 +!73 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69 !72) +!74 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69 !72) +!75 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69 !72) +!76 = span !4 86598 86599 +!77 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69 !72) +!78 = span !4 3330 3409 +!79 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69 !78) +!80 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69) +!81 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69) +!82 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69) +!83 = span !4 3418 3461 +!84 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69 !83) +!85 = span !4 3471 3476 +!86 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69 !85) +!87 = span !4 86569 86601 +!88 = (!62 !63 !64 !65 !66 !67 !62 !63 !87) +!89 = span !4 86617 86621 +!90 = (!62 !63 !64 !65 !66 !67 !62 !63 !89) +!91 = span !4 86617 86627 +!92 = fn_call_path_span !4 86622 86625 +!93 = (!62 !63 !64 !65 !66 !67 !62 !63 !91 !92) +!94 = "sway-lib-std/src/raw_slice.sw" +!95 = span !94 2922 2926 +!96 = (!62 !63 !64 !65 !66 !67 !62 !63 !91 !92 !95) +!97 = span !94 2911 2927 +!98 = fn_call_path_span !94 2911 2921 +!99 = (!62 !63 !64 !65 !66 !67 !62 !63 !91 !92 !97 !98) +!100 = span !94 1633 1638 +!101 = (!62 !63 !64 !65 !66 !67 !62 !63 !91 !92 !97 !98 !100) +!102 = (!62 !63 !64 !65 !66 !67 !62 !63 !91 !92) +!103 = span !94 2928 2929 +!104 = (!62 !63 !64 !65 !66 !67 !62 !63 !91 !92 !103) +!105 = (!62 !63 !64 !65 !66 !67 !62 !63 !91 !92) +!106 = span !0 392 432 +!107 = (!62 !63 !64 !65 !106) +!108 = (!62 !63 !64 !65) +!109 = span !4 135054 135075 +!110 = fn_call_path_span !4 135054 135067 +!111 = span !0 329 351 +!112 = fn_call_path_span !0 336 342 +!113 = span !4 83379 83407 +!114 = fn_call_path_span !4 83386 83398 +!115 = (!62 !63 !109 !110 !111 !112 !62 !63 !113 !114) +!116 = span !4 2927 3008 +!117 = (!62 !63 !109 !110 !111 !112 !62 !63 !113 !114 !116) +!118 = span !4 2965 2978 +!119 = (!62 !63 !109 !110 !111 !112 !62 !63 !113 !114) +!120 = (!62 !63 !109 !110 !111 !112 !62 !63 !113 !114) +!121 = (!62 !63 !109 !110 !111 !112 !62 !63 !113 !114) +!122 = span !4 3018 3057 +!123 = (!62 !63 !109 !110 !111 !112 !62 !63 !113 !114 !122) +!124 = span !0 369 370 +!125 = span !0 369 418 +!126 = fn_call_path_span !0 369 418 +!127 = (!62 !63 !109 !110 !125 !126) +!128 = (!62 !63 !109 !110 !125) +!129 = "test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/src/main.sw" +!130 = span !129 204 260 +!131 = (!62 !63 !109 !110 !130) +!132 = (!62 !63 !109 !110 !130) +!133 = (!62 !63 !109 !110 !130) +!134 = span !0 394 416 +!135 = fn_call_path_span !0 401 407 +!136 = (!62 !63 !109 !110 !134 !135 !62 !63 !113 !114) +!137 = (!62 !63 !109 !110 !134 !135 !62 !63 !113 !114 !116) +!138 = (!62 !63 !109 !110 !134 !135 !62 !63 !113 !114) +!139 = (!62 !63 !109 !110 !134 !135 !62 !63 !113 !114) +!140 = (!62 !63 !109 !110 !134 !135 !62 !63 !113 !114) +!141 = (!62 !63 !109 !110 !134 !135 !62 !63 !113 !114 !122) +!142 = (!62 !63 !109 !110 !130) +!143 = (!62 !63 !109 !110 !130) +!144 = (!62 !63 !109 !110) +!145 = span !0 420 421 +!146 = span !0 420 469 +!147 = fn_call_path_span !0 420 469 +!148 = (!62 !63 !109 !110 !146 !147) +!149 = (!62 !63 !109 !110 !146) +!150 = (!62 !63 !109 !110 !130) +!151 = (!62 !63 !109 !110 !130) +!152 = (!62 !63 !109 !110 !130) +!153 = span !0 445 467 +!154 = fn_call_path_span !0 452 458 +!155 = (!62 !63 !109 !110 !153 !154 !62 !63 !113 !114) +!156 = (!62 !63 !109 !110 !153 !154 !62 !63 !113 !114 !116) +!157 = (!62 !63 !109 !110 !153 !154 !62 !63 !113 !114) +!158 = (!62 !63 !109 !110 !153 !154 !62 !63 !113 !114) +!159 = (!62 !63 !109 !110 !153 !154 !62 !63 !113 !114) +!160 = (!62 !63 !109 !110 !153 !154 !62 !63 !113 !114 !122) +!161 = (!62 !63 !109 !110 !130) +!162 = (!62 !63 !109 !110 !130) +!163 = (!62 !63 !109 !110) +!164 = span !0 486 487 +!165 = span !0 477 488 +!166 = (!62 !63 !109 !110 !165) +!167 = span !4 135030 135076 +!168 = (!62 !63 !167) +!169 = (!62 !63 !167) +!170 = (!62 !63 !167) +!171 = span !129 297 695 +!172 = fn_name_span !129 300 304 +!173 = (!171 !172) +!174 = span !129 360 363 +!175 = span !4 81189 81193 +!176 = (!174 !175) +!177 = span !4 81189 81219 +!178 = fn_call_path_span !4 81194 81204 +!179 = (!174 !177 !178) +!180 = (!174 !177 !178) +!181 = span !4 26624 26630 +!182 = (!174 !177 !178 !181) +!183 = span !4 26607 26631 +!184 = (!174 !177 !178 !183) +!185 = span !4 26652 26653 +!186 = (!174 !177 !178) +!187 = span !4 26673 26674 +!188 = span !4 26669 26674 +!189 = fn_call_path_span !4 26671 26672 +!190 = (!174 !177 !178 !188 !189) +!191 = (!174 !177 !178) +!192 = span !4 26698 26702 +!193 = (!174 !177 !178 !192) +!194 = span !4 26698 26705 +!195 = (!174 !177 !178 !194) +!196 = span !4 26717 26723 +!197 = (!174 !177 !178 !196) +!198 = span !4 26698 26724 +!199 = fn_call_path_span !4 26706 26716 +!200 = (!174 !177 !178 !198 !199) +!201 = (!174 !177 !178 !198 !199) +!202 = span !4 51667 51671 +!203 = (!174 !177 !178 !198 !199 !202) +!204 = span !4 51672 51673 +!205 = (!174 !177 !178 !198 !199 !204) +!206 = span !4 51685 51691 +!207 = (!174 !177 !178 !198 !199 !206) +!208 = span !4 51667 51692 +!209 = fn_call_path_span !4 51674 51684 +!210 = (!174 !177 !178 !198 !199 !208 !209) +!211 = (!174 !177 !178 !198 !199 !208 !209) +!212 = span !0 399 403 +!213 = (!174 !177 !178 !198 !199 !208 !209 !212) +!214 = span !129 282 293 +!215 = (!174 !177 !178 !198 !199 !208 !209 !214) +!216 = span !0 419 425 +!217 = (!174 !177 !178 !198 !199 !208 !209 !216) +!218 = span !0 399 426 +!219 = fn_call_path_span !0 408 418 +!220 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!221 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!222 = span !4 7794 7800 +!223 = (!174 !177 !178 !198 !199 !208 !209 !218 !219 !222) +!224 = span !4 87 114 +!225 = (!174 !177 !178 !198 !199 !208 !209 !218 !219 !224) +!226 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!227 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!228 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!229 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!230 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!231 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!232 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!233 = span !4 7809 7813 +!234 = (!174 !177 !178 !198 !199 !208 !209 !218 !219 !233) +!235 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!236 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!237 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!238 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!239 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!240 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!241 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!242 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!243 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!244 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!245 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!246 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!247 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!248 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!249 = span !4 7742 7825 +!250 = (!174 !177 !178 !198 !199 !208 !209 !218 !219 !249) +!251 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!252 = span !0 386 427 +!253 = (!174 !177 !178 !198 !199 !208 !209 !252) +!254 = span !0 449 455 +!255 = (!174 !177 !178 !198 !199 !208 !209 !254) +!256 = span !4 51654 51693 +!257 = (!174 !177 !178 !198 !199 !256) +!258 = span !4 51715 51719 +!259 = (!174 !177 !178 !198 !199 !258) +!260 = span !4 51720 51721 +!261 = (!174 !177 !178 !198 !199 !260) +!262 = span !4 51733 51739 +!263 = (!174 !177 !178 !198 !199 !262) +!264 = span !4 51715 51740 +!265 = fn_call_path_span !4 51722 51732 +!266 = (!174 !177 !178 !198 !199 !264 !265) +!267 = (!174 !177 !178 !198 !199 !264 !265) +!268 = span !0 405 409 +!269 = (!174 !177 !178 !198 !199 !264 !265 !268) +!270 = span !0 399 838 +!271 = (!174 !177 !178 !198 !199 !264 !265 !270) +!272 = (!174 !177 !178 !198 !199 !264 !265 !268) +!273 = (!174 !177 !178 !198 !199 !264 !265 !268) +!274 = (!174 !177 !178 !198 !199 !264 !265) +!275 = span !0 412 622 +!276 = fn_call_path_span !0 412 622 +!277 = (!174 !177 !178 !198 !199 !264 !265 !275 !276) +!278 = (!174 !177 !178 !198 !199 !264 !265 !275) +!279 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!280 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!281 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!282 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) +!283 = (!174 !177 !178 !198 !199 !264 !265 !268) +!284 = (!174 !177 !178 !198 !199 !264 !265) +!285 = (!174 !177 !178 !198 !199 !264 !265) +!286 = span !0 497 503 +!287 = (!174 !177 !178 !198 !199 !264 !265 !286) +!288 = span !0 481 485 +!289 = span !0 468 505 +!290 = (!174 !177 !178 !198 !199 !264 !265 !289) +!291 = span !0 560 566 +!292 = (!174 !177 !178 !198 !199 !264 !265 !291) +!293 = span !0 530 568 +!294 = (!174 !177 !178 !198 !199 !264 !265 !293) +!295 = span !0 593 599 +!296 = (!174 !177 !178 !198 !199 !264 !265 !295) +!297 = (!174 !177 !178 !198 !199 !264 !265) +!298 = (!174 !177 !178 !198 !199 !264 !265 !268) +!299 = (!174 !177 !178 !198 !199 !264 !265 !268) +!300 = (!174 !177 !178 !198 !199 !264 !265) +!301 = span !0 624 834 +!302 = fn_call_path_span !0 624 834 +!303 = (!174 !177 !178 !198 !199 !264 !265 !301 !302) +!304 = (!174 !177 !178 !198 !199 !264 !265 !301) +!305 = (!174 !177 !178 !198 !199 !264 !265 !268) +!306 = (!174 !177 !178 !198 !199 !264 !265) +!307 = (!174 !177 !178 !198 !199 !264 !265) +!308 = span !0 709 715 +!309 = (!174 !177 !178 !198 !199 !264 !265 !308) +!310 = span !0 693 697 +!311 = span !0 680 717 +!312 = (!174 !177 !178 !198 !199 !264 !265 !311) +!313 = span !0 772 778 +!314 = (!174 !177 !178 !198 !199 !264 !265 !313) +!315 = span !0 742 780 +!316 = (!174 !177 !178 !198 !199 !264 !265 !315) +!317 = span !0 805 811 +!318 = (!174 !177 !178 !198 !199 !264 !265 !317) +!319 = (!174 !177 !178 !198 !199 !264 !265) +!320 = (!174 !177 !178 !198 !199 !264 !265 !270) +!321 = span !0 386 839 +!322 = (!174 !177 !178 !198 !199 !264 !265 !321) +!323 = span !0 860 866 +!324 = (!174 !177 !178 !198 !199 !264 !265 !323) +!325 = span !4 51702 51741 +!326 = (!174 !177 !178 !198 !199 !325) +!327 = span !4 51750 51756 +!328 = (!174 !177 !178 !198 !199 !327) +!329 = span !4 26689 26724 +!330 = (!174 !177 !178 !329) +!331 = span !4 26743 26744 +!332 = span !4 26738 26744 +!333 = fn_call_path_span !4 26740 26742 +!334 = (!174 !177 !178 !332 !333) +!335 = (!174 !177 !178) +!336 = span !4 26765 26771 +!337 = (!174 !177 !178 !336) +!338 = span !4 81176 81220 +!339 = (!174 !338) +!340 = span !4 81229 81235 +!341 = (!174 !340) +!342 = span !4 81229 81250 +!343 = fn_call_path_span !4 81236 81248 +!344 = (!174 !342 !343) +!345 = span !4 573 577 +!346 = (!174 !342 !343 !345) +!347 = (!174 !342 !343 !224) +!348 = (!174 !342 !343) +!349 = (!174 !342 !343) +!350 = (!174 !342 !343) +!351 = (!174 !342 !343) +!352 = (!174 !342 !343) +!353 = (!174 !342 !343) +!354 = span !129 386 389 +!355 = span !129 390 391 +!356 = span !129 386 392 +!357 = span !129 393 394 +!358 = span !129 400 405 +!359 = "sway-lib-std/src/ops.sw" +!360 = span !359 12573 12578 +!361 = span !129 370 407 +!362 = fn_call_path_span !129 370 376 +!363 = "sway-lib-std/src/assert.sw" +!364 = span !363 1015 1025 +!365 = fn_call_path_span !363 1015 1016 +!366 = (!361 !362 !364 !365) +!367 = (!361 !362 !364) +!368 = span !363 1036 1064 +!369 = fn_call_path_span !363 1036 1042 +!370 = "sway-lib-std/src/revert.sw" +!371 = span !370 757 771 +!372 = (!361 !362 !368 !369 !371) +!373 = span !129 426 429 +!374 = span !129 430 431 +!375 = span !129 426 432 +!376 = span !129 433 434 +!377 = span !129 420 503 +!378 = span !129 426 434 +!379 = span !129 445 473 +!380 = fn_call_path_span !129 445 473 +!381 = (!379 !380) +!382 = span !129 507 511 +!383 = span !129 420 511 +!384 = fn_call_path_span !129 504 506 +!385 = (!383 !384) +!386 = span !129 413 512 +!387 = fn_call_path_span !129 413 419 +!388 = (!386 !387 !364 !365) +!389 = (!386 !387 !364) +!390 = (!386 !387 !368 !369 !371) +!391 = span !129 535 538 +!392 = span !129 539 540 +!393 = span !129 535 541 +!394 = span !129 542 543 +!395 = span !129 549 554 +!396 = span !129 519 556 +!397 = fn_call_path_span !129 519 525 +!398 = (!396 !397 !364 !365) +!399 = (!396 !397 !364) +!400 = (!396 !397 !368 !369 !371) +!401 = span !129 575 578 +!402 = span !129 579 580 +!403 = span !129 575 581 +!404 = span !129 582 583 +!405 = span !129 569 652 +!406 = span !129 575 583 +!407 = span !129 594 622 +!408 = fn_call_path_span !129 594 622 +!409 = (!407 !408) +!410 = span !129 494 495 +!411 = span !129 487 496 +!412 = fn_call_path_span !129 487 493 +!413 = (!411 !412 !371) +!414 = span !129 656 657 +!415 = span !129 569 657 +!416 = fn_call_path_span !129 653 655 +!417 = (!415 !416) +!418 = span !129 562 658 +!419 = fn_call_path_span !129 562 568 +!420 = (!418 !419 !364 !365) +!421 = (!418 !419 !364) +!422 = (!418 !419 !368 !369 !371) +!423 = span !129 665 693 +!424 = span !129 686 687 +!425 = span !129 643 644 +!426 = span !129 636 645 +!427 = fn_call_path_span !129 636 642 +!428 = (!426 !427 !371) +!429 = span !4 5357 5361 +!430 = span !4 5343 5488 +!431 = fn_name_span !4 5346 5356 +!432 = (!430 !431) +!433 = span !4 5451 5457 +!434 = span !4 5399 5482 +!435 = span !4 160 260 +!436 = fn_name_span !4 167 170 +!437 = (!435 !436) +!438 = span !4 191 254 +!439 = span !129 50 202 +!440 = fn_name_span !129 53 61 +!441 = (!439 !440) +!442 = span !129 107 117 +!443 = fn_call_path_span !129 109 115 +!444 = (!442 !443) +!445 = "sway-lib-std/src/str.sw" +!446 = span !445 153 157 +!447 = (!442 !443 !446) +!448 = span !445 131 201 +!449 = (!442 !443 !448) +!450 = (!442 !443 !448) +!451 = (!442 !443 !448) +!452 = span !129 130 131 +!453 = span !129 148 149 +!454 = span !129 123 200 +!455 = span !129 164 177 ;; ASM: Final program ;; Program kind: Script @@ -1331,16 +1291,16 @@ lw $$ds $$tmp i1 add $$ds $$ds $$tmp cfei i0 ; allocate stack space for globals move $$locbase $sp ; save locals base register for function __entry -cfei i256 ; allocate 256 bytes for locals and 0 slots for call arguments +cfei i208 ; allocate 208 bytes for locals and 0 slots for call arguments gtf $r0 $zero i10 ; get transaction field -sw $$locbase $r0 i24 ; store word -addi $r3 $$locbase i192 ; get offset to local __ptr { ptr } -addi $r0 $$locbase i224 ; get offset to local __ptr { { string<3> }, { u64, ( u64 | u64 ) } } +sw $$locbase $r0 i22 ; store word +addi $r3 $$locbase i176 ; get offset to local __ptr { ptr } +addi $r0 $$locbase i184 ; get offset to local __ptr { { string<3> }, { u64, ( u64 | u64 ) } } move $$arg0 $r3 ; [call]: pass argument 0 move $$arg1 $r0 ; [call]: pass argument 1 -jal $$reta $pc i48 ; [call]: call decode_6 -addi $r1 $$locbase i144 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] -addi $r2 $$locbase i224 ; get offset to local __ptr { { string<3> }, { u64, ( u64 | u64 ) } } +jal $$reta $pc i38 ; [call]: call decode_6 +addi $r1 $$locbase i128 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] +addi $r2 $$locbase i184 ; get offset to local __ptr { { string<3> }, { u64, ( u64 | u64 ) } } movi $r0 i24 ; get array element size mul $r0 $zero $r0 ; get offset to array element add $r0 $r1 $r0 ; add array element offset to array base @@ -1349,43 +1309,33 @@ movi $r0 i24 ; get array element size mul $r0 $one $r0 ; get offset to array element add $r0 $r1 $r0 ; add array element offset to array base mcpi $r0 $r2 i24 ; copy memory -move $r4 $one ; move parameter from branch to block argument +move $r2 $one ; move parameter from branch to block argument movi $r0 i2 ; initialize constant into register -lt $r0 $r4 $r0 -jnzf $r0 $zero i23 -addi $r0 $$locbase i144 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] -addi $r1 $$locbase i96 ; get offset to local __ptr { [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] } +lt $r0 $r2 $r0 +jnzf $r0 $zero i13 +addi $r0 $$locbase i128 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] +addi $r1 $$locbase i80 ; get offset to local __ptr { [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] } mcpi $r1 $r0 i48 ; copy memory -addi $r0 $$locbase i96 ; get offset to local __ptr { [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] } +addi $r0 $$locbase i80 ; get offset to local __ptr { [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] } addi $r1 $$locbase i24 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] mcpi $r1 $r0 i48 ; copy memory -addi $r0 $$locbase i248 ; get offset to local __ptr { u64 } +addi $r0 $$locbase i72 ; get offset to local __ptr { u64 } move $$arg0 $r1 ; [call]: pass argument 0 move $$arg1 $r0 ; [call]: pass argument 1 -jal $$reta $pc i105 ; [call]: call main_22 -addi $r0 $$locbase i72 ; get offset to local __ptr { { ptr, u64, u64 } } -move $$arg0 $r0 ; [call]: pass argument 0 -jal $$reta $pc i422 ; [call]: call new_32 -lw $r0 $$locbase i31 ; load word -addi $r1 $$locbase i72 ; get offset to local __ptr { { ptr, u64, u64 } } -addi $r2 $$locbase i200 ; get offset to local __ptr { { ptr, u64, u64 } } -move $$arg0 $r0 ; [call]: pass argument 0 -move $$arg1 $r1 ; [call]: pass argument 1 -move $$arg2 $r2 ; [call]: pass argument 2 -jal $$reta $pc i371 ; [call]: call abi_encode_31 -lw $r0 $$locbase i25 ; load word -lw $r1 $$locbase i27 ; load word +jal $$reta $pc i95 ; [call]: call main_22 +addi $r0 $$locbase i72 ; get offset to local __ptr { u64 } +movi $r1 i8 ; initialize constant into register retd $r0 $r1 move $$arg0 $r3 ; [call]: pass argument 0 move $$arg1 $$locbase ; [call]: pass argument 1 jal $$reta $pc i8 ; [call]: call decode_6 -addi $r0 $$locbase i144 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] +addi $r0 $$locbase i128 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] movi $r1 i24 ; get array element size -mul $r1 $r4 $r1 ; get offset to array element +mul $r1 $r2 $r1 ; get offset to array element add $r1 $r0 $r1 ; add array element offset to array base mcpi $r1 $$locbase i24 ; copy memory -add $r4 $r4 $one -jmpb $zero i34 +add $r2 $r2 $one +jmpb $zero i24 pshl i255 ; save registers 16..40 pshh i524288 ; save registers 40..64 move $$locbase $sp ; save locals base register for function decode_6 @@ -1843,21 +1793,21 @@ data_NonConfigurable_4 .word 14757395258967588866 0x00000000 MOVE R60 $pc ;; [26, 240, 48, 0] 0x00000004 JMPF $zero 0x4 ;; [116, 0, 0, 4] -0x00000008 ;; [0, 0, 0, 0, 0, 0, 8, 0] +0x00000008 ;; [0, 0, 0, 0, 0, 0, 7, 216] 0x00000010 ;; [0, 0, 0, 0, 0, 0, 0, 0] 0x00000018 LW R63 R60 0x1 ;; [93, 255, 192, 1] 0x0000001c ADD R63 R63 R60 ;; [16, 255, 255, 0] 0x00000020 MOVE R59 $sp ;; [26, 236, 80, 0] -0x00000024 CFEI 0x100 ;; [145, 0, 1, 0] +0x00000024 CFEI 0xd0 ;; [145, 0, 0, 208] 0x00000028 GTF $writable $zero 0xa ;; [97, 64, 0, 10] -0x0000002c SW R59 $writable 0x18 ;; [95, 237, 0, 24] -0x00000030 ADDI R19 R59 0xc0 ;; [80, 79, 176, 192] -0x00000034 ADDI $writable R59 0xe0 ;; [80, 67, 176, 224] +0x0000002c SW R59 $writable 0x16 ;; [95, 237, 0, 22] +0x00000030 ADDI R19 R59 0xb0 ;; [80, 79, 176, 176] +0x00000034 ADDI $writable R59 0xb8 ;; [80, 67, 176, 184] 0x00000038 MOVE R58 R19 ;; [26, 233, 48, 0] 0x0000003c MOVE R57 $writable ;; [26, 229, 0, 0] -0x00000040 JAL R62 $pc 0x30 ;; [153, 248, 48, 48] -0x00000044 ADDI R17 R59 0x90 ;; [80, 71, 176, 144] -0x00000048 ADDI R18 R59 0xe0 ;; [80, 75, 176, 224] +0x00000040 JAL R62 $pc 0x26 ;; [153, 248, 48, 38] +0x00000044 ADDI R17 R59 0x80 ;; [80, 71, 176, 128] +0x00000048 ADDI R18 R59 0xb8 ;; [80, 75, 176, 184] 0x0000004c MOVI $writable 0x18 ;; [114, 64, 0, 24] 0x00000050 MUL $writable $zero $writable ;; [27, 64, 4, 0] 0x00000054 ADD $writable R17 $writable ;; [16, 65, 20, 0] @@ -1866,497 +1816,487 @@ data_NonConfigurable_4 .word 14757395258967588866 0x00000060 MUL $writable $one $writable ;; [27, 64, 20, 0] 0x00000064 ADD $writable R17 $writable ;; [16, 65, 20, 0] 0x00000068 MCPI $writable R18 0x18 ;; [96, 65, 32, 24] -0x0000006c MOVE R20 $one ;; [26, 80, 16, 0] +0x0000006c MOVE R18 $one ;; [26, 72, 16, 0] 0x00000070 MOVI $writable 0x2 ;; [114, 64, 0, 2] -0x00000074 LT $writable R20 $writable ;; [22, 65, 68, 0] -0x00000078 JNZF $writable $zero 0x17 ;; [118, 64, 0, 23] -0x0000007c ADDI $writable R59 0x90 ;; [80, 67, 176, 144] -0x00000080 ADDI R17 R59 0x60 ;; [80, 71, 176, 96] +0x00000074 LT $writable R18 $writable ;; [22, 65, 36, 0] +0x00000078 JNZF $writable $zero 0xd ;; [118, 64, 0, 13] +0x0000007c ADDI $writable R59 0x80 ;; [80, 67, 176, 128] +0x00000080 ADDI R17 R59 0x50 ;; [80, 71, 176, 80] 0x00000084 MCPI R17 $writable 0x30 ;; [96, 69, 0, 48] -0x00000088 ADDI $writable R59 0x60 ;; [80, 67, 176, 96] +0x00000088 ADDI $writable R59 0x50 ;; [80, 67, 176, 80] 0x0000008c ADDI R17 R59 0x18 ;; [80, 71, 176, 24] 0x00000090 MCPI R17 $writable 0x30 ;; [96, 69, 0, 48] -0x00000094 ADDI $writable R59 0xf8 ;; [80, 67, 176, 248] +0x00000094 ADDI $writable R59 0x48 ;; [80, 67, 176, 72] 0x00000098 MOVE R58 R17 ;; [26, 233, 16, 0] 0x0000009c MOVE R57 $writable ;; [26, 229, 0, 0] -0x000000a0 JAL R62 $pc 0x69 ;; [153, 248, 48, 105] +0x000000a0 JAL R62 $pc 0x5f ;; [153, 248, 48, 95] 0x000000a4 ADDI $writable R59 0x48 ;; [80, 67, 176, 72] -0x000000a8 MOVE R58 $writable ;; [26, 233, 0, 0] -0x000000ac JAL R62 $pc 0x1a6 ;; [153, 248, 49, 166] -0x000000b0 LW $writable R59 0x1f ;; [93, 67, 176, 31] -0x000000b4 ADDI R17 R59 0x48 ;; [80, 71, 176, 72] -0x000000b8 ADDI R18 R59 0xc8 ;; [80, 75, 176, 200] -0x000000bc MOVE R58 $writable ;; [26, 233, 0, 0] -0x000000c0 MOVE R57 R17 ;; [26, 229, 16, 0] -0x000000c4 MOVE R56 R18 ;; [26, 225, 32, 0] -0x000000c8 JAL R62 $pc 0x173 ;; [153, 248, 49, 115] -0x000000cc LW $writable R59 0x19 ;; [93, 67, 176, 25] -0x000000d0 LW R17 R59 0x1b ;; [93, 71, 176, 27] -0x000000d4 RETD $writable R17 ;; [37, 65, 16, 0] -0x000000d8 MOVE R58 R19 ;; [26, 233, 48, 0] -0x000000dc MOVE R57 R59 ;; [26, 231, 176, 0] -0x000000e0 JAL R62 $pc 0x8 ;; [153, 248, 48, 8] -0x000000e4 ADDI $writable R59 0x90 ;; [80, 67, 176, 144] -0x000000e8 MOVI R17 0x18 ;; [114, 68, 0, 24] -0x000000ec MUL R17 R20 R17 ;; [27, 69, 68, 64] -0x000000f0 ADD R17 $writable R17 ;; [16, 69, 4, 64] -0x000000f4 MCPI R17 R59 0x18 ;; [96, 71, 176, 24] -0x000000f8 ADD R20 R20 $one ;; [16, 81, 64, 64] -0x000000fc JMPB $zero 0x22 ;; [117, 0, 0, 34] -0x00000100 PSHL 0xff ;; [149, 0, 0, 255] -0x00000104 PSHH 0x80000 ;; [150, 8, 0, 0] -0x00000108 MOVE R59 $sp ;; [26, 236, 80, 0] -0x0000010c CFEI 0xd8 ;; [145, 0, 0, 216] -0x00000110 MOVE R23 R58 ;; [26, 95, 160, 0] -0x00000114 MOVE R22 R57 ;; [26, 91, 144, 0] -0x00000118 MOVE R21 R62 ;; [26, 87, 224, 0] -0x0000011c ADDI $writable R59 0x48 ;; [80, 67, 176, 72] -0x00000120 MCPI $writable R58 0x8 ;; [96, 67, 160, 8] -0x00000124 MOVI R17 0x3 ;; [114, 68, 0, 3] -0x00000128 SW R59 R17 0xa ;; [95, 237, 16, 10] -0x0000012c MCPI R59 $writable 0x10 ;; [96, 237, 0, 16] -0x00000130 ADDI $writable R59 0xb8 ;; [80, 67, 176, 184] -0x00000134 MCPI $writable R59 0x10 ;; [96, 67, 176, 16] -0x00000138 LW $writable R23 0x0 ;; [93, 65, 112, 0] -0x0000013c MOVI R17 0x3 ;; [114, 68, 0, 3] -0x00000140 ADD $writable $writable R17 ;; [16, 65, 4, 64] -0x00000144 SW R23 $writable 0x0 ;; [95, 93, 0, 0] -0x00000148 ADDI $writable R59 0xb8 ;; [80, 67, 176, 184] -0x0000014c ADDI R17 R59 0x98 ;; [80, 71, 176, 152] -0x00000150 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x00000154 ADDI $writable R59 0x98 ;; [80, 67, 176, 152] -0x00000158 ADDI R17 R59 0xa8 ;; [80, 71, 176, 168] -0x0000015c MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x00000160 ADDI $writable R59 0xa8 ;; [80, 67, 176, 168] -0x00000164 ADDI R17 R59 0xc8 ;; [80, 71, 176, 200] -0x00000168 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x0000016c ADDI $writable R59 0xc8 ;; [80, 67, 176, 200] -0x00000170 ADDI R17 R59 0x10 ;; [80, 71, 176, 16] -0x00000174 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x00000178 ADDI $writable R59 0x58 ;; [80, 67, 176, 88] -0x0000017c MCPI $writable R17 0x10 ;; [96, 65, 16, 16] -0x00000180 LW $writable R59 0xb ;; [93, 67, 176, 11] -0x00000184 ADDI R17 R59 0x20 ;; [80, 71, 176, 32] -0x00000188 MCPI R17 $writable 0x8 ;; [96, 69, 0, 8] -0x0000018c ADDI $writable R59 0x40 ;; [80, 67, 176, 64] -0x00000190 MCPI $writable R17 0x8 ;; [96, 65, 16, 8] -0x00000194 LW R17 R23 0x0 ;; [93, 69, 112, 0] -0x00000198 LW R17 R17 0x0 ;; [93, 69, 16, 0] -0x0000019c LW R18 R23 0x0 ;; [93, 73, 112, 0] -0x000001a0 MOVI R19 0x8 ;; [114, 76, 0, 8] -0x000001a4 ADD R18 R18 R19 ;; [16, 73, 36, 192] -0x000001a8 SW R23 R18 0x0 ;; [95, 93, 32, 0] -0x000001ac EQ R18 R17 $zero ;; [19, 73, 16, 0] -0x000001b0 JNZF R18 $zero 0xf ;; [118, 72, 0, 15] -0x000001b4 EQ R17 R17 $one ;; [19, 69, 16, 64] -0x000001b8 JNZF R17 $zero 0x1 ;; [118, 68, 0, 1] -0x000001bc RVRT $zero ;; [54, 0, 0, 0] -0x000001c0 ADDI R17 R59 0x78 ;; [80, 71, 176, 120] -0x000001c4 SW R59 $one 0xf ;; [95, 236, 16, 15] -0x000001c8 LW R18 R23 0x0 ;; [93, 73, 112, 0] -0x000001cc LW R18 R18 0x0 ;; [93, 73, 32, 0] -0x000001d0 LW R19 R23 0x0 ;; [93, 77, 112, 0] -0x000001d4 MOVI R20 0x8 ;; [114, 80, 0, 8] -0x000001d8 ADD R19 R19 R20 ;; [16, 77, 53, 0] -0x000001dc SW R23 R19 0x0 ;; [95, 93, 48, 0] -0x000001e0 SW R59 R18 0x10 ;; [95, 237, 32, 16] -0x000001e4 ADDI R18 R59 0x88 ;; [80, 75, 176, 136] -0x000001e8 MCPI R18 R17 0x10 ;; [96, 73, 16, 16] -0x000001ec JMPF $zero 0xb ;; [116, 0, 0, 11] -0x000001f0 ADDI R17 R59 0x68 ;; [80, 71, 176, 104] -0x000001f4 SW R59 $zero 0xd ;; [95, 236, 0, 13] -0x000001f8 LW R18 R23 0x0 ;; [93, 73, 112, 0] -0x000001fc LW R18 R18 0x0 ;; [93, 73, 32, 0] -0x00000200 LW R19 R23 0x0 ;; [93, 77, 112, 0] -0x00000204 MOVI R20 0x8 ;; [114, 80, 0, 8] -0x00000208 ADD R19 R19 R20 ;; [16, 77, 53, 0] -0x0000020c SW R23 R19 0x0 ;; [95, 93, 48, 0] -0x00000210 SW R59 R18 0xe ;; [95, 237, 32, 14] -0x00000214 ADDI R18 R59 0x88 ;; [80, 75, 176, 136] -0x00000218 MCPI R18 R17 0x10 ;; [96, 73, 16, 16] -0x0000021c ADDI R17 R59 0x28 ;; [80, 71, 176, 40] -0x00000220 MCPI R17 $writable 0x8 ;; [96, 69, 0, 8] -0x00000224 ADDI $writable R17 0x8 ;; [80, 65, 16, 8] -0x00000228 MCPI $writable R18 0x10 ;; [96, 65, 32, 16] -0x0000022c MCPI R22 R17 0x18 ;; [96, 89, 16, 24] -0x00000230 CFSI 0xd8 ;; [146, 0, 0, 216] -0x00000234 MOVE R62 R21 ;; [26, 249, 80, 0] -0x00000238 POPH 0x80000 ;; [152, 8, 0, 0] -0x0000023c POPL 0xff ;; [151, 0, 0, 255] -0x00000240 JAL $zero R62 0x0 ;; [153, 3, 224, 0] -0x00000244 PSHL 0x1ff ;; [149, 0, 1, 255] -0x00000248 PSHH 0x80000 ;; [150, 8, 0, 0] -0x0000024c MOVE R59 $sp ;; [26, 236, 80, 0] -0x00000250 CFEI 0x4c0 ;; [145, 0, 4, 192] -0x00000254 MOVE R20 R57 ;; [26, 83, 144, 0] -0x00000258 MOVE R19 R62 ;; [26, 79, 224, 0] -0x0000025c ADDI $writable R59 0x410 ;; [80, 67, 180, 16] -0x00000260 MCPI $writable R58 0x30 ;; [96, 67, 160, 48] -0x00000264 ADDI $writable R59 0x410 ;; [80, 67, 180, 16] -0x00000268 ADDI R17 R59 0x3e0 ;; [80, 71, 179, 224] -0x0000026c MCPI R17 $writable 0x30 ;; [96, 69, 0, 48] -0x00000270 ADDI $writable R59 0x3e0 ;; [80, 67, 179, 224] -0x00000274 ADDI R17 R59 0x1b8 ;; [80, 71, 177, 184] -0x00000278 MOVE R58 R17 ;; [26, 233, 16, 0] -0x0000027c JAL R62 $pc 0x132 ;; [153, 248, 49, 50] -0x00000280 ADDI R18 R59 0x440 ;; [80, 75, 180, 64] -0x00000284 MCPI R18 $writable 0x30 ;; [96, 73, 0, 48] -0x00000288 ADDI $writable R59 0x290 ;; [80, 67, 178, 144] -0x0000028c MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x00000290 ADDI $writable R59 0x290 ;; [80, 67, 178, 144] -0x00000294 ADDI R17 R59 0x308 ;; [80, 71, 179, 8] +0x000000a8 MOVI R17 0x8 ;; [114, 68, 0, 8] +0x000000ac RETD $writable R17 ;; [37, 65, 16, 0] +0x000000b0 MOVE R58 R19 ;; [26, 233, 48, 0] +0x000000b4 MOVE R57 R59 ;; [26, 231, 176, 0] +0x000000b8 JAL R62 $pc 0x8 ;; [153, 248, 48, 8] +0x000000bc ADDI $writable R59 0x80 ;; [80, 67, 176, 128] +0x000000c0 MOVI R17 0x18 ;; [114, 68, 0, 24] +0x000000c4 MUL R17 R18 R17 ;; [27, 69, 36, 64] +0x000000c8 ADD R17 $writable R17 ;; [16, 69, 4, 64] +0x000000cc MCPI R17 R59 0x18 ;; [96, 71, 176, 24] +0x000000d0 ADD R18 R18 $one ;; [16, 73, 32, 64] +0x000000d4 JMPB $zero 0x18 ;; [117, 0, 0, 24] +0x000000d8 PSHL 0xff ;; [149, 0, 0, 255] +0x000000dc PSHH 0x80000 ;; [150, 8, 0, 0] +0x000000e0 MOVE R59 $sp ;; [26, 236, 80, 0] +0x000000e4 CFEI 0xd8 ;; [145, 0, 0, 216] +0x000000e8 MOVE R23 R58 ;; [26, 95, 160, 0] +0x000000ec MOVE R22 R57 ;; [26, 91, 144, 0] +0x000000f0 MOVE R21 R62 ;; [26, 87, 224, 0] +0x000000f4 ADDI $writable R59 0x48 ;; [80, 67, 176, 72] +0x000000f8 MCPI $writable R58 0x8 ;; [96, 67, 160, 8] +0x000000fc MOVI R17 0x3 ;; [114, 68, 0, 3] +0x00000100 SW R59 R17 0xa ;; [95, 237, 16, 10] +0x00000104 MCPI R59 $writable 0x10 ;; [96, 237, 0, 16] +0x00000108 ADDI $writable R59 0xb8 ;; [80, 67, 176, 184] +0x0000010c MCPI $writable R59 0x10 ;; [96, 67, 176, 16] +0x00000110 LW $writable R23 0x0 ;; [93, 65, 112, 0] +0x00000114 MOVI R17 0x3 ;; [114, 68, 0, 3] +0x00000118 ADD $writable $writable R17 ;; [16, 65, 4, 64] +0x0000011c SW R23 $writable 0x0 ;; [95, 93, 0, 0] +0x00000120 ADDI $writable R59 0xb8 ;; [80, 67, 176, 184] +0x00000124 ADDI R17 R59 0x98 ;; [80, 71, 176, 152] +0x00000128 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x0000012c ADDI $writable R59 0x98 ;; [80, 67, 176, 152] +0x00000130 ADDI R17 R59 0xa8 ;; [80, 71, 176, 168] +0x00000134 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x00000138 ADDI $writable R59 0xa8 ;; [80, 67, 176, 168] +0x0000013c ADDI R17 R59 0xc8 ;; [80, 71, 176, 200] +0x00000140 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x00000144 ADDI $writable R59 0xc8 ;; [80, 67, 176, 200] +0x00000148 ADDI R17 R59 0x10 ;; [80, 71, 176, 16] +0x0000014c MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x00000150 ADDI $writable R59 0x58 ;; [80, 67, 176, 88] +0x00000154 MCPI $writable R17 0x10 ;; [96, 65, 16, 16] +0x00000158 LW $writable R59 0xb ;; [93, 67, 176, 11] +0x0000015c ADDI R17 R59 0x20 ;; [80, 71, 176, 32] +0x00000160 MCPI R17 $writable 0x8 ;; [96, 69, 0, 8] +0x00000164 ADDI $writable R59 0x40 ;; [80, 67, 176, 64] +0x00000168 MCPI $writable R17 0x8 ;; [96, 65, 16, 8] +0x0000016c LW R17 R23 0x0 ;; [93, 69, 112, 0] +0x00000170 LW R17 R17 0x0 ;; [93, 69, 16, 0] +0x00000174 LW R18 R23 0x0 ;; [93, 73, 112, 0] +0x00000178 MOVI R19 0x8 ;; [114, 76, 0, 8] +0x0000017c ADD R18 R18 R19 ;; [16, 73, 36, 192] +0x00000180 SW R23 R18 0x0 ;; [95, 93, 32, 0] +0x00000184 EQ R18 R17 $zero ;; [19, 73, 16, 0] +0x00000188 JNZF R18 $zero 0xf ;; [118, 72, 0, 15] +0x0000018c EQ R17 R17 $one ;; [19, 69, 16, 64] +0x00000190 JNZF R17 $zero 0x1 ;; [118, 68, 0, 1] +0x00000194 RVRT $zero ;; [54, 0, 0, 0] +0x00000198 ADDI R17 R59 0x78 ;; [80, 71, 176, 120] +0x0000019c SW R59 $one 0xf ;; [95, 236, 16, 15] +0x000001a0 LW R18 R23 0x0 ;; [93, 73, 112, 0] +0x000001a4 LW R18 R18 0x0 ;; [93, 73, 32, 0] +0x000001a8 LW R19 R23 0x0 ;; [93, 77, 112, 0] +0x000001ac MOVI R20 0x8 ;; [114, 80, 0, 8] +0x000001b0 ADD R19 R19 R20 ;; [16, 77, 53, 0] +0x000001b4 SW R23 R19 0x0 ;; [95, 93, 48, 0] +0x000001b8 SW R59 R18 0x10 ;; [95, 237, 32, 16] +0x000001bc ADDI R18 R59 0x88 ;; [80, 75, 176, 136] +0x000001c0 MCPI R18 R17 0x10 ;; [96, 73, 16, 16] +0x000001c4 JMPF $zero 0xb ;; [116, 0, 0, 11] +0x000001c8 ADDI R17 R59 0x68 ;; [80, 71, 176, 104] +0x000001cc SW R59 $zero 0xd ;; [95, 236, 0, 13] +0x000001d0 LW R18 R23 0x0 ;; [93, 73, 112, 0] +0x000001d4 LW R18 R18 0x0 ;; [93, 73, 32, 0] +0x000001d8 LW R19 R23 0x0 ;; [93, 77, 112, 0] +0x000001dc MOVI R20 0x8 ;; [114, 80, 0, 8] +0x000001e0 ADD R19 R19 R20 ;; [16, 77, 53, 0] +0x000001e4 SW R23 R19 0x0 ;; [95, 93, 48, 0] +0x000001e8 SW R59 R18 0xe ;; [95, 237, 32, 14] +0x000001ec ADDI R18 R59 0x88 ;; [80, 75, 176, 136] +0x000001f0 MCPI R18 R17 0x10 ;; [96, 73, 16, 16] +0x000001f4 ADDI R17 R59 0x28 ;; [80, 71, 176, 40] +0x000001f8 MCPI R17 $writable 0x8 ;; [96, 69, 0, 8] +0x000001fc ADDI $writable R17 0x8 ;; [80, 65, 16, 8] +0x00000200 MCPI $writable R18 0x10 ;; [96, 65, 32, 16] +0x00000204 MCPI R22 R17 0x18 ;; [96, 89, 16, 24] +0x00000208 CFSI 0xd8 ;; [146, 0, 0, 216] +0x0000020c MOVE R62 R21 ;; [26, 249, 80, 0] +0x00000210 POPH 0x80000 ;; [152, 8, 0, 0] +0x00000214 POPL 0xff ;; [151, 0, 0, 255] +0x00000218 JAL $zero R62 0x0 ;; [153, 3, 224, 0] +0x0000021c PSHL 0x1ff ;; [149, 0, 1, 255] +0x00000220 PSHH 0x80000 ;; [150, 8, 0, 0] +0x00000224 MOVE R59 $sp ;; [26, 236, 80, 0] +0x00000228 CFEI 0x4c0 ;; [145, 0, 4, 192] +0x0000022c MOVE R20 R57 ;; [26, 83, 144, 0] +0x00000230 MOVE R19 R62 ;; [26, 79, 224, 0] +0x00000234 ADDI $writable R59 0x410 ;; [80, 67, 180, 16] +0x00000238 MCPI $writable R58 0x30 ;; [96, 67, 160, 48] +0x0000023c ADDI $writable R59 0x410 ;; [80, 67, 180, 16] +0x00000240 ADDI R17 R59 0x3e0 ;; [80, 71, 179, 224] +0x00000244 MCPI R17 $writable 0x30 ;; [96, 69, 0, 48] +0x00000248 ADDI $writable R59 0x3e0 ;; [80, 67, 179, 224] +0x0000024c ADDI R17 R59 0x1b8 ;; [80, 71, 177, 184] +0x00000250 MOVE R58 R17 ;; [26, 233, 16, 0] +0x00000254 JAL R62 $pc 0x132 ;; [153, 248, 49, 50] +0x00000258 ADDI R18 R59 0x440 ;; [80, 75, 180, 64] +0x0000025c MCPI R18 $writable 0x30 ;; [96, 73, 0, 48] +0x00000260 ADDI $writable R59 0x290 ;; [80, 67, 178, 144] +0x00000264 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x00000268 ADDI $writable R59 0x290 ;; [80, 67, 178, 144] +0x0000026c ADDI R17 R59 0x308 ;; [80, 71, 179, 8] +0x00000270 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x00000274 MOVE R24 $zero ;; [26, 96, 0, 0] +0x00000278 MOVI $writable 0x2 ;; [114, 64, 0, 2] +0x0000027c LT $writable R24 $writable ;; [22, 65, 132, 0] +0x00000280 JNZF $writable $zero 0x6e ;; [118, 64, 0, 110] +0x00000284 ADDI $writable R59 0x308 ;; [80, 67, 179, 8] +0x00000288 ADDI R17 R59 0x278 ;; [80, 71, 178, 120] +0x0000028c MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x00000290 ADDI $writable R59 0x278 ;; [80, 67, 178, 120] +0x00000294 ADDI R17 R59 0x4a8 ;; [80, 71, 180, 168] 0x00000298 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x0000029c MOVE R24 $zero ;; [26, 96, 0, 0] -0x000002a0 MOVI $writable 0x2 ;; [114, 64, 0, 2] -0x000002a4 LT $writable R24 $writable ;; [22, 65, 132, 0] -0x000002a8 JNZF $writable $zero 0x6e ;; [118, 64, 0, 110] -0x000002ac ADDI $writable R59 0x308 ;; [80, 67, 179, 8] -0x000002b0 ADDI R17 R59 0x278 ;; [80, 71, 178, 120] -0x000002b4 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x000002b8 ADDI $writable R59 0x278 ;; [80, 67, 178, 120] -0x000002bc ADDI R17 R59 0x4a8 ;; [80, 71, 180, 168] -0x000002c0 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x000002c4 ADDI $writable R59 0x4a8 ;; [80, 67, 180, 168] -0x000002c8 ADDI R17 R59 0x30 ;; [80, 71, 176, 48] -0x000002cc MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x000002d0 ADDI $writable R59 0x80 ;; [80, 67, 176, 128] -0x000002d4 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x000002d8 ADDI R17 $writable 0x10 ;; [80, 69, 0, 16] -0x000002dc ADDI R18 R59 0xb0 ;; [80, 75, 176, 176] -0x000002e0 MCPI R18 $writable 0x8 ;; [96, 73, 0, 8] -0x000002e4 ADDI $writable R18 0x8 ;; [80, 65, 32, 8] -0x000002e8 MCPI $writable R17 0x8 ;; [96, 65, 16, 8] -0x000002ec ADDI $writable R59 0x48 ;; [80, 67, 176, 72] -0x000002f0 MCPI $writable R18 0x10 ;; [96, 65, 32, 16] -0x000002f4 ADDI R17 R59 0x118 ;; [80, 71, 177, 24] -0x000002f8 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x000002fc LW $writable R63 0x0 ;; [93, 67, 240, 0] -0x00000300 LW R17 R59 0x23 ;; [93, 71, 176, 35] -0x00000304 LW R18 R59 0x24 ;; [93, 75, 176, 36] -0x00000308 LOGD $zero $writable R17 R18 ;; [52, 1, 4, 82] -0x0000030c ADDI $writable R59 0x410 ;; [80, 67, 180, 16] -0x00000310 MOVI R17 0x18 ;; [114, 68, 0, 24] -0x00000314 MUL R17 $zero R17 ;; [27, 68, 4, 64] -0x00000318 ADD R17 $writable R17 ;; [16, 69, 4, 64] -0x0000031c MOVI $writable 0x8 ;; [114, 64, 0, 8] -0x00000320 ADD $writable $writable R63 ;; [16, 65, 15, 192] -0x00000324 ADDI R18 R59 0x58 ;; [80, 75, 176, 88] -0x00000328 SW R59 $writable 0xb ;; [95, 237, 0, 11] -0x0000032c MOVI $writable 0x3 ;; [114, 64, 0, 3] -0x00000330 SW R59 $writable 0xc ;; [95, 237, 0, 12] -0x00000334 ADDI $writable R59 0x98 ;; [80, 67, 176, 152] -0x00000338 MCPI $writable R18 0x10 ;; [96, 65, 32, 16] -0x0000033c ADDI R18 R59 0x230 ;; [80, 75, 178, 48] -0x00000340 MCPI R18 R17 0x8 ;; [96, 73, 16, 8] -0x00000344 ADDI R17 R59 0x238 ;; [80, 71, 178, 56] -0x00000348 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x0000034c MOVE R58 R18 ;; [26, 233, 32, 0] -0x00000350 MOVE R57 R17 ;; [26, 229, 16, 0] -0x00000354 JAL R62 $pc 0x112 ;; [153, 248, 49, 18] -0x00000358 EQ $writable R61 $zero ;; [19, 67, 208, 0] -0x0000035c JNZF $writable $zero 0x3f ;; [118, 64, 0, 63] -0x00000360 ADDI $writable R59 0x410 ;; [80, 67, 180, 16] -0x00000364 MOVI R17 0x18 ;; [114, 68, 0, 24] -0x00000368 MUL R17 $zero R17 ;; [27, 68, 4, 64] -0x0000036c ADD R17 $writable R17 ;; [16, 69, 4, 64] -0x00000370 ADDI $writable R17 0x8 ;; [80, 65, 16, 8] -0x00000374 ADDI R17 R59 0x128 ;; [80, 71, 177, 40] -0x00000378 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x0000037c LW $writable R59 0x25 ;; [93, 67, 176, 37] -0x00000380 EQ $writable $writable $zero ;; [19, 65, 0, 0] -0x00000384 JNZF $writable $zero 0x1 ;; [118, 64, 0, 1] -0x00000388 RVRT $one ;; [54, 4, 0, 0] -0x0000038c LW $writable R59 0x26 ;; [93, 67, 176, 38] -0x00000390 MOVI R17 0x53a ;; [114, 68, 5, 58] -0x00000394 EQ $writable $writable R17 ;; [19, 65, 4, 64] -0x00000398 EQ $writable $writable $zero ;; [19, 65, 0, 0] -0x0000039c JNZF $writable $zero 0x2d ;; [118, 64, 0, 45] -0x000003a0 ADDI $writable R59 0x410 ;; [80, 67, 180, 16] -0x000003a4 MOVI R17 0x18 ;; [114, 68, 0, 24] -0x000003a8 MUL R17 $one R17 ;; [27, 68, 20, 64] -0x000003ac ADD R17 $writable R17 ;; [16, 69, 4, 64] -0x000003b0 MOVI $writable 0x10 ;; [114, 64, 0, 16] -0x000003b4 ADD $writable $writable R63 ;; [16, 65, 15, 192] -0x000003b8 ADDI R18 R59 0xc0 ;; [80, 75, 176, 192] -0x000003bc SW R59 $writable 0x18 ;; [95, 237, 0, 24] -0x000003c0 MOVI $writable 0x3 ;; [114, 64, 0, 3] -0x000003c4 SW R59 $writable 0x19 ;; [95, 237, 0, 25] -0x000003c8 ADDI $writable R59 0xe8 ;; [80, 67, 176, 232] -0x000003cc MCPI $writable R18 0x10 ;; [96, 65, 32, 16] -0x000003d0 ADDI R18 R59 0x248 ;; [80, 75, 178, 72] -0x000003d4 MCPI R18 R17 0x8 ;; [96, 73, 16, 8] -0x000003d8 ADDI R17 R59 0x250 ;; [80, 71, 178, 80] -0x000003dc MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x000003e0 MOVE R58 R18 ;; [26, 233, 32, 0] -0x000003e4 MOVE R57 R17 ;; [26, 229, 16, 0] -0x000003e8 JAL R62 $pc 0xed ;; [153, 248, 48, 237] -0x000003ec EQ $writable R61 $zero ;; [19, 67, 208, 0] -0x000003f0 JNZF $writable $zero 0x16 ;; [118, 64, 0, 22] -0x000003f4 ADDI $writable R59 0x410 ;; [80, 67, 180, 16] -0x000003f8 MOVI R17 0x18 ;; [114, 68, 0, 24] -0x000003fc MUL R17 $one R17 ;; [27, 68, 20, 64] -0x00000400 ADD R17 $writable R17 ;; [16, 69, 4, 64] -0x00000404 ADDI $writable R17 0x8 ;; [80, 65, 16, 8] -0x00000408 ADDI R17 R59 0x148 ;; [80, 71, 177, 72] -0x0000040c MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x00000410 LW $writable R59 0x29 ;; [93, 67, 176, 41] -0x00000414 EQ $writable $writable $one ;; [19, 65, 0, 64] -0x00000418 JNZF $writable $zero 0x2 ;; [118, 64, 0, 2] -0x0000041c MOVI $writable 0x2 ;; [114, 64, 0, 2] +0x0000029c ADDI $writable R59 0x4a8 ;; [80, 67, 180, 168] +0x000002a0 ADDI R17 R59 0x30 ;; [80, 71, 176, 48] +0x000002a4 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x000002a8 ADDI $writable R59 0x80 ;; [80, 67, 176, 128] +0x000002ac MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x000002b0 ADDI R17 $writable 0x10 ;; [80, 69, 0, 16] +0x000002b4 ADDI R18 R59 0xb0 ;; [80, 75, 176, 176] +0x000002b8 MCPI R18 $writable 0x8 ;; [96, 73, 0, 8] +0x000002bc ADDI $writable R18 0x8 ;; [80, 65, 32, 8] +0x000002c0 MCPI $writable R17 0x8 ;; [96, 65, 16, 8] +0x000002c4 ADDI $writable R59 0x48 ;; [80, 67, 176, 72] +0x000002c8 MCPI $writable R18 0x10 ;; [96, 65, 32, 16] +0x000002cc ADDI R17 R59 0x118 ;; [80, 71, 177, 24] +0x000002d0 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x000002d4 LW $writable R63 0x0 ;; [93, 67, 240, 0] +0x000002d8 LW R17 R59 0x23 ;; [93, 71, 176, 35] +0x000002dc LW R18 R59 0x24 ;; [93, 75, 176, 36] +0x000002e0 LOGD $zero $writable R17 R18 ;; [52, 1, 4, 82] +0x000002e4 ADDI $writable R59 0x410 ;; [80, 67, 180, 16] +0x000002e8 MOVI R17 0x18 ;; [114, 68, 0, 24] +0x000002ec MUL R17 $zero R17 ;; [27, 68, 4, 64] +0x000002f0 ADD R17 $writable R17 ;; [16, 69, 4, 64] +0x000002f4 MOVI $writable 0x8 ;; [114, 64, 0, 8] +0x000002f8 ADD $writable $writable R63 ;; [16, 65, 15, 192] +0x000002fc ADDI R18 R59 0x58 ;; [80, 75, 176, 88] +0x00000300 SW R59 $writable 0xb ;; [95, 237, 0, 11] +0x00000304 MOVI $writable 0x3 ;; [114, 64, 0, 3] +0x00000308 SW R59 $writable 0xc ;; [95, 237, 0, 12] +0x0000030c ADDI $writable R59 0x98 ;; [80, 67, 176, 152] +0x00000310 MCPI $writable R18 0x10 ;; [96, 65, 32, 16] +0x00000314 ADDI R18 R59 0x230 ;; [80, 75, 178, 48] +0x00000318 MCPI R18 R17 0x8 ;; [96, 73, 16, 8] +0x0000031c ADDI R17 R59 0x238 ;; [80, 71, 178, 56] +0x00000320 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x00000324 MOVE R58 R18 ;; [26, 233, 32, 0] +0x00000328 MOVE R57 R17 ;; [26, 229, 16, 0] +0x0000032c JAL R62 $pc 0x112 ;; [153, 248, 49, 18] +0x00000330 EQ $writable R61 $zero ;; [19, 67, 208, 0] +0x00000334 JNZF $writable $zero 0x3f ;; [118, 64, 0, 63] +0x00000338 ADDI $writable R59 0x410 ;; [80, 67, 180, 16] +0x0000033c MOVI R17 0x18 ;; [114, 68, 0, 24] +0x00000340 MUL R17 $zero R17 ;; [27, 68, 4, 64] +0x00000344 ADD R17 $writable R17 ;; [16, 69, 4, 64] +0x00000348 ADDI $writable R17 0x8 ;; [80, 65, 16, 8] +0x0000034c ADDI R17 R59 0x128 ;; [80, 71, 177, 40] +0x00000350 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x00000354 LW $writable R59 0x25 ;; [93, 67, 176, 37] +0x00000358 EQ $writable $writable $zero ;; [19, 65, 0, 0] +0x0000035c JNZF $writable $zero 0x1 ;; [118, 64, 0, 1] +0x00000360 RVRT $one ;; [54, 4, 0, 0] +0x00000364 LW $writable R59 0x26 ;; [93, 67, 176, 38] +0x00000368 MOVI R17 0x53a ;; [114, 68, 5, 58] +0x0000036c EQ $writable $writable R17 ;; [19, 65, 4, 64] +0x00000370 EQ $writable $writable $zero ;; [19, 65, 0, 0] +0x00000374 JNZF $writable $zero 0x2d ;; [118, 64, 0, 45] +0x00000378 ADDI $writable R59 0x410 ;; [80, 67, 180, 16] +0x0000037c MOVI R17 0x18 ;; [114, 68, 0, 24] +0x00000380 MUL R17 $one R17 ;; [27, 68, 20, 64] +0x00000384 ADD R17 $writable R17 ;; [16, 69, 4, 64] +0x00000388 MOVI $writable 0x10 ;; [114, 64, 0, 16] +0x0000038c ADD $writable $writable R63 ;; [16, 65, 15, 192] +0x00000390 ADDI R18 R59 0xc0 ;; [80, 75, 176, 192] +0x00000394 SW R59 $writable 0x18 ;; [95, 237, 0, 24] +0x00000398 MOVI $writable 0x3 ;; [114, 64, 0, 3] +0x0000039c SW R59 $writable 0x19 ;; [95, 237, 0, 25] +0x000003a0 ADDI $writable R59 0xe8 ;; [80, 67, 176, 232] +0x000003a4 MCPI $writable R18 0x10 ;; [96, 65, 32, 16] +0x000003a8 ADDI R18 R59 0x248 ;; [80, 75, 178, 72] +0x000003ac MCPI R18 R17 0x8 ;; [96, 73, 16, 8] +0x000003b0 ADDI R17 R59 0x250 ;; [80, 71, 178, 80] +0x000003b4 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x000003b8 MOVE R58 R18 ;; [26, 233, 32, 0] +0x000003bc MOVE R57 R17 ;; [26, 229, 16, 0] +0x000003c0 JAL R62 $pc 0xed ;; [153, 248, 48, 237] +0x000003c4 EQ $writable R61 $zero ;; [19, 67, 208, 0] +0x000003c8 JNZF $writable $zero 0x16 ;; [118, 64, 0, 22] +0x000003cc ADDI $writable R59 0x410 ;; [80, 67, 180, 16] +0x000003d0 MOVI R17 0x18 ;; [114, 68, 0, 24] +0x000003d4 MUL R17 $one R17 ;; [27, 68, 20, 64] +0x000003d8 ADD R17 $writable R17 ;; [16, 69, 4, 64] +0x000003dc ADDI $writable R17 0x8 ;; [80, 65, 16, 8] +0x000003e0 ADDI R17 R59 0x148 ;; [80, 71, 177, 72] +0x000003e4 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x000003e8 LW $writable R59 0x29 ;; [93, 67, 176, 41] +0x000003ec EQ $writable $writable $one ;; [19, 65, 0, 64] +0x000003f0 JNZF $writable $zero 0x2 ;; [118, 64, 0, 2] +0x000003f4 MOVI $writable 0x2 ;; [114, 64, 0, 2] +0x000003f8 RVRT $writable ;; [54, 64, 0, 0] +0x000003fc LW $writable R59 0x2a ;; [93, 67, 176, 42] +0x00000400 EQ $writable $writable $one ;; [19, 65, 0, 64] +0x00000404 EQ $writable $writable $zero ;; [19, 65, 0, 0] +0x00000408 JNZF $writable $zero 0x4 ;; [118, 64, 0, 4] +0x0000040c ADDI $writable R59 0x110 ;; [80, 67, 177, 16] +0x00000410 SW R59 $one 0x22 ;; [95, 236, 16, 34] +0x00000414 MCPI R20 $writable 0x8 ;; [96, 81, 0, 8] +0x00000418 JMPF $zero 0x8f ;; [116, 0, 0, 143] +0x0000041c LW $writable R63 0x3 ;; [93, 67, 240, 3] 0x00000420 RVRT $writable ;; [54, 64, 0, 0] -0x00000424 LW $writable R59 0x2a ;; [93, 67, 176, 42] -0x00000428 EQ $writable $writable $one ;; [19, 65, 0, 64] -0x0000042c EQ $writable $writable $zero ;; [19, 65, 0, 0] -0x00000430 JNZF $writable $zero 0x4 ;; [118, 64, 0, 4] -0x00000434 ADDI $writable R59 0x110 ;; [80, 67, 177, 16] -0x00000438 SW R59 $one 0x22 ;; [95, 236, 16, 34] -0x0000043c MCPI R20 $writable 0x8 ;; [96, 81, 0, 8] -0x00000440 JMPF $zero 0x8f ;; [116, 0, 0, 143] -0x00000444 LW $writable R63 0x3 ;; [93, 67, 240, 3] -0x00000448 RVRT $writable ;; [54, 64, 0, 0] -0x0000044c LW $writable R63 0x3 ;; [93, 67, 240, 3] -0x00000450 RVRT $writable ;; [54, 64, 0, 0] -0x00000454 LW $writable R63 0x3 ;; [93, 67, 240, 3] -0x00000458 RVRT $writable ;; [54, 64, 0, 0] -0x0000045c LW $writable R63 0x3 ;; [93, 67, 240, 3] -0x00000460 RVRT $writable ;; [54, 64, 0, 0] -0x00000464 ADDI $writable R59 0x440 ;; [80, 67, 180, 64] -0x00000468 MOVI R17 0x18 ;; [114, 68, 0, 24] -0x0000046c MUL R17 R24 R17 ;; [27, 69, 132, 64] -0x00000470 ADD R17 $writable R17 ;; [16, 69, 4, 64] -0x00000474 ADDI $writable R59 0x308 ;; [80, 67, 179, 8] -0x00000478 ADDI R18 R59 0x480 ;; [80, 75, 180, 128] -0x0000047c MCPI R18 R17 0x18 ;; [96, 73, 16, 24] -0x00000480 ADDI R17 R59 0x2a8 ;; [80, 71, 178, 168] -0x00000484 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x00000488 ADDI $writable R59 0x480 ;; [80, 67, 180, 128] -0x0000048c ADDI R17 R59 0x2a8 ;; [80, 71, 178, 168] -0x00000490 ADDI R18 R59 0x470 ;; [80, 75, 180, 112] -0x00000494 MCPI R18 $writable 0x8 ;; [96, 73, 0, 8] -0x00000498 ADDI $writable R59 0x2c0 ;; [80, 67, 178, 192] -0x0000049c MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x000004a0 ADDI $writable R59 0x470 ;; [80, 67, 180, 112] -0x000004a4 ADDI R17 R59 0x2c0 ;; [80, 71, 178, 192] -0x000004a8 ADDI R18 R59 0x478 ;; [80, 75, 180, 120] -0x000004ac MCPI R18 $writable 0x8 ;; [96, 73, 0, 8] -0x000004b0 ADDI $writable R59 0x2d8 ;; [80, 67, 178, 216] -0x000004b4 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x000004b8 ADDI $writable R59 0x2d8 ;; [80, 67, 178, 216] -0x000004bc MCPI R59 $writable 0x18 ;; [96, 237, 0, 24] -0x000004c0 ADDI $writable R59 0x68 ;; [80, 67, 176, 104] -0x000004c4 MCPI $writable R59 0x18 ;; [96, 67, 176, 24] -0x000004c8 LW $writable R59 0xd ;; [93, 67, 176, 13] -0x000004cc LW R23 R59 0xe ;; [93, 95, 176, 14] -0x000004d0 LW R17 R59 0xf ;; [93, 71, 176, 15] -0x000004d4 ADDI R18 R59 0x478 ;; [80, 75, 180, 120] -0x000004d8 MOVI R21 0x3 ;; [114, 84, 0, 3] -0x000004dc ADD R21 R17 R21 ;; [16, 85, 21, 64] -0x000004e0 GT R22 R21 R23 ;; [21, 89, 85, 192] -0x000004e4 JNZF R22 $zero 0x1 ;; [118, 88, 0, 1] -0x000004e8 JMPF $zero 0x7 ;; [116, 0, 0, 7] -0x000004ec MOVI R22 0x2 ;; [114, 88, 0, 2] -0x000004f0 MUL R22 R23 R22 ;; [27, 89, 117, 128] -0x000004f4 MOVI R23 0x3 ;; [114, 92, 0, 3] -0x000004f8 ADD R23 R22 R23 ;; [16, 93, 101, 192] -0x000004fc ALOC R23 ;; [38, 92, 0, 0] -0x00000500 MCP $hp $writable R17 ;; [40, 29, 4, 64] -0x00000504 MOVE $writable $hp ;; [26, 64, 112, 0] -0x00000508 ADDI R22 R59 0xa8 ;; [80, 91, 176, 168] -0x0000050c MCPI R22 R18 0x8 ;; [96, 89, 32, 8] -0x00000510 ADD R17 $writable R17 ;; [16, 69, 4, 64] -0x00000514 MCPI R17 R22 0x3 ;; [96, 69, 96, 3] -0x00000518 ADDI R17 R59 0xd0 ;; [80, 71, 176, 208] -0x0000051c SW R59 $writable 0x1a ;; [95, 237, 0, 26] -0x00000520 SW R59 R23 0x1b ;; [95, 237, 112, 27] -0x00000524 SW R59 R21 0x1c ;; [95, 237, 80, 28] -0x00000528 ADDI $writable R59 0x18 ;; [80, 67, 176, 24] -0x0000052c MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x00000530 ADDI R17 R59 0xf8 ;; [80, 71, 176, 248] -0x00000534 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x00000538 ADDI $writable R59 0x338 ;; [80, 67, 179, 56] +0x00000424 LW $writable R63 0x3 ;; [93, 67, 240, 3] +0x00000428 RVRT $writable ;; [54, 64, 0, 0] +0x0000042c LW $writable R63 0x3 ;; [93, 67, 240, 3] +0x00000430 RVRT $writable ;; [54, 64, 0, 0] +0x00000434 LW $writable R63 0x3 ;; [93, 67, 240, 3] +0x00000438 RVRT $writable ;; [54, 64, 0, 0] +0x0000043c ADDI $writable R59 0x440 ;; [80, 67, 180, 64] +0x00000440 MOVI R17 0x18 ;; [114, 68, 0, 24] +0x00000444 MUL R17 R24 R17 ;; [27, 69, 132, 64] +0x00000448 ADD R17 $writable R17 ;; [16, 69, 4, 64] +0x0000044c ADDI $writable R59 0x308 ;; [80, 67, 179, 8] +0x00000450 ADDI R18 R59 0x480 ;; [80, 75, 180, 128] +0x00000454 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] +0x00000458 ADDI R17 R59 0x2a8 ;; [80, 71, 178, 168] +0x0000045c MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x00000460 ADDI $writable R59 0x480 ;; [80, 67, 180, 128] +0x00000464 ADDI R17 R59 0x2a8 ;; [80, 71, 178, 168] +0x00000468 ADDI R18 R59 0x470 ;; [80, 75, 180, 112] +0x0000046c MCPI R18 $writable 0x8 ;; [96, 73, 0, 8] +0x00000470 ADDI $writable R59 0x2c0 ;; [80, 67, 178, 192] +0x00000474 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x00000478 ADDI $writable R59 0x470 ;; [80, 67, 180, 112] +0x0000047c ADDI R17 R59 0x2c0 ;; [80, 71, 178, 192] +0x00000480 ADDI R18 R59 0x478 ;; [80, 75, 180, 120] +0x00000484 MCPI R18 $writable 0x8 ;; [96, 73, 0, 8] +0x00000488 ADDI $writable R59 0x2d8 ;; [80, 67, 178, 216] +0x0000048c MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x00000490 ADDI $writable R59 0x2d8 ;; [80, 67, 178, 216] +0x00000494 MCPI R59 $writable 0x18 ;; [96, 237, 0, 24] +0x00000498 ADDI $writable R59 0x68 ;; [80, 67, 176, 104] +0x0000049c MCPI $writable R59 0x18 ;; [96, 67, 176, 24] +0x000004a0 LW $writable R59 0xd ;; [93, 67, 176, 13] +0x000004a4 LW R23 R59 0xe ;; [93, 95, 176, 14] +0x000004a8 LW R17 R59 0xf ;; [93, 71, 176, 15] +0x000004ac ADDI R18 R59 0x478 ;; [80, 75, 180, 120] +0x000004b0 MOVI R21 0x3 ;; [114, 84, 0, 3] +0x000004b4 ADD R21 R17 R21 ;; [16, 85, 21, 64] +0x000004b8 GT R22 R21 R23 ;; [21, 89, 85, 192] +0x000004bc JNZF R22 $zero 0x1 ;; [118, 88, 0, 1] +0x000004c0 JMPF $zero 0x7 ;; [116, 0, 0, 7] +0x000004c4 MOVI R22 0x2 ;; [114, 88, 0, 2] +0x000004c8 MUL R22 R23 R22 ;; [27, 89, 117, 128] +0x000004cc MOVI R23 0x3 ;; [114, 92, 0, 3] +0x000004d0 ADD R23 R22 R23 ;; [16, 93, 101, 192] +0x000004d4 ALOC R23 ;; [38, 92, 0, 0] +0x000004d8 MCP $hp $writable R17 ;; [40, 29, 4, 64] +0x000004dc MOVE $writable $hp ;; [26, 64, 112, 0] +0x000004e0 ADDI R22 R59 0xa8 ;; [80, 91, 176, 168] +0x000004e4 MCPI R22 R18 0x8 ;; [96, 89, 32, 8] +0x000004e8 ADD R17 $writable R17 ;; [16, 69, 4, 64] +0x000004ec MCPI R17 R22 0x3 ;; [96, 69, 96, 3] +0x000004f0 ADDI R17 R59 0xd0 ;; [80, 71, 176, 208] +0x000004f4 SW R59 $writable 0x1a ;; [95, 237, 0, 26] +0x000004f8 SW R59 R23 0x1b ;; [95, 237, 112, 27] +0x000004fc SW R59 R21 0x1c ;; [95, 237, 80, 28] +0x00000500 ADDI $writable R59 0x18 ;; [80, 67, 176, 24] +0x00000504 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x00000508 ADDI R17 R59 0xf8 ;; [80, 71, 176, 248] +0x0000050c MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x00000510 ADDI $writable R59 0x338 ;; [80, 67, 179, 56] +0x00000514 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x00000518 ADDI $writable R59 0x338 ;; [80, 67, 179, 56] +0x0000051c ADDI R17 R59 0x320 ;; [80, 71, 179, 32] +0x00000520 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x00000524 ADDI $writable R59 0x480 ;; [80, 67, 180, 128] +0x00000528 ADDI $writable $writable 0x8 ;; [80, 65, 0, 8] +0x0000052c ADDI R17 R59 0x320 ;; [80, 71, 179, 32] +0x00000530 ADDI R18 R59 0x498 ;; [80, 75, 180, 152] +0x00000534 MCPI R18 $writable 0x10 ;; [96, 73, 0, 16] +0x00000538 ADDI $writable R59 0x2f0 ;; [80, 67, 178, 240] 0x0000053c MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x00000540 ADDI $writable R59 0x338 ;; [80, 67, 179, 56] -0x00000544 ADDI R17 R59 0x320 ;; [80, 71, 179, 32] -0x00000548 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x0000054c ADDI $writable R59 0x480 ;; [80, 67, 180, 128] -0x00000550 ADDI $writable $writable 0x8 ;; [80, 65, 0, 8] -0x00000554 ADDI R17 R59 0x320 ;; [80, 71, 179, 32] -0x00000558 ADDI R18 R59 0x498 ;; [80, 75, 180, 152] -0x0000055c MCPI R18 $writable 0x10 ;; [96, 73, 0, 16] -0x00000560 ADDI $writable R59 0x2f0 ;; [80, 67, 178, 240] -0x00000564 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x00000568 ADDI $writable R59 0x498 ;; [80, 67, 180, 152] -0x0000056c ADDI R17 R59 0x138 ;; [80, 71, 177, 56] -0x00000570 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x00000574 LW $writable R59 0x27 ;; [93, 67, 176, 39] -0x00000578 EQ $writable $writable $zero ;; [19, 65, 0, 0] -0x0000057c JNZF $writable $zero 0x1e ;; [118, 64, 0, 30] -0x00000580 LW $writable R59 0x27 ;; [93, 67, 176, 39] -0x00000584 EQ $writable $writable $one ;; [19, 65, 0, 64] -0x00000588 JNZF $writable $zero 0x2 ;; [118, 64, 0, 2] -0x0000058c LW $writable R63 0x4 ;; [93, 67, 240, 4] -0x00000590 RVRT $writable ;; [54, 64, 0, 0] -0x00000594 LW $writable R59 0x28 ;; [93, 67, 176, 40] -0x00000598 ADDI R17 R59 0x2f0 ;; [80, 71, 178, 240] -0x0000059c ADDI R18 R59 0x200 ;; [80, 75, 178, 0] +0x00000540 ADDI $writable R59 0x498 ;; [80, 67, 180, 152] +0x00000544 ADDI R17 R59 0x138 ;; [80, 71, 177, 56] +0x00000548 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x0000054c LW $writable R59 0x27 ;; [93, 67, 176, 39] +0x00000550 EQ $writable $writable $zero ;; [19, 65, 0, 0] +0x00000554 JNZF $writable $zero 0x1e ;; [118, 64, 0, 30] +0x00000558 LW $writable R59 0x27 ;; [93, 67, 176, 39] +0x0000055c EQ $writable $writable $one ;; [19, 65, 0, 64] +0x00000560 JNZF $writable $zero 0x2 ;; [118, 64, 0, 2] +0x00000564 LW $writable R63 0x4 ;; [93, 67, 240, 4] +0x00000568 RVRT $writable ;; [54, 64, 0, 0] +0x0000056c LW $writable R59 0x28 ;; [93, 67, 176, 40] +0x00000570 ADDI R17 R59 0x2f0 ;; [80, 71, 178, 240] +0x00000574 ADDI R18 R59 0x200 ;; [80, 75, 178, 0] +0x00000578 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] +0x0000057c ADDI R17 R59 0x188 ;; [80, 71, 177, 136] +0x00000580 MOVE R58 $one ;; [26, 232, 16, 0] +0x00000584 MOVE R57 R18 ;; [26, 229, 32, 0] +0x00000588 MOVE R56 R17 ;; [26, 225, 16, 0] +0x0000058c JAL R62 $pc 0x38 ;; [153, 248, 48, 56] +0x00000590 ADDI R18 R59 0x398 ;; [80, 75, 179, 152] +0x00000594 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] +0x00000598 ADDI R17 R59 0x398 ;; [80, 71, 179, 152] +0x0000059c ADDI R18 R59 0x218 ;; [80, 75, 178, 24] 0x000005a0 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] -0x000005a4 ADDI R17 R59 0x188 ;; [80, 71, 177, 136] -0x000005a8 MOVE R58 $one ;; [26, 232, 16, 0] +0x000005a4 ADDI R17 R59 0x1a0 ;; [80, 71, 177, 160] +0x000005a8 MOVE R58 $writable ;; [26, 233, 0, 0] 0x000005ac MOVE R57 R18 ;; [26, 229, 32, 0] 0x000005b0 MOVE R56 R17 ;; [26, 225, 16, 0] -0x000005b4 JAL R62 $pc 0x38 ;; [153, 248, 48, 56] -0x000005b8 ADDI R18 R59 0x398 ;; [80, 75, 179, 152] -0x000005bc MCPI R18 R17 0x18 ;; [96, 73, 16, 24] -0x000005c0 ADDI R17 R59 0x398 ;; [80, 71, 179, 152] -0x000005c4 ADDI R18 R59 0x218 ;; [80, 75, 178, 24] -0x000005c8 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] -0x000005cc ADDI R17 R59 0x1a0 ;; [80, 71, 177, 160] -0x000005d0 MOVE R58 $writable ;; [26, 233, 0, 0] -0x000005d4 MOVE R57 R18 ;; [26, 229, 32, 0] -0x000005d8 MOVE R56 R17 ;; [26, 225, 16, 0] -0x000005dc JAL R62 $pc 0x2e ;; [153, 248, 48, 46] -0x000005e0 ADDI $writable R59 0x3b0 ;; [80, 67, 179, 176] -0x000005e4 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x000005e8 ADDI $writable R59 0x3b0 ;; [80, 67, 179, 176] -0x000005ec ADDI R17 R59 0x260 ;; [80, 71, 178, 96] -0x000005f0 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x000005f4 JMPF $zero 0x18 ;; [116, 0, 0, 24] -0x000005f8 LW $writable R59 0x28 ;; [93, 67, 176, 40] -0x000005fc ADDI R17 R59 0x2f0 ;; [80, 71, 178, 240] -0x00000600 ADDI R18 R59 0x1d0 ;; [80, 75, 177, 208] +0x000005b4 JAL R62 $pc 0x2e ;; [153, 248, 48, 46] +0x000005b8 ADDI $writable R59 0x3b0 ;; [80, 67, 179, 176] +0x000005bc MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x000005c0 ADDI $writable R59 0x3b0 ;; [80, 67, 179, 176] +0x000005c4 ADDI R17 R59 0x260 ;; [80, 71, 178, 96] +0x000005c8 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x000005cc JMPF $zero 0x18 ;; [116, 0, 0, 24] +0x000005d0 LW $writable R59 0x28 ;; [93, 67, 176, 40] +0x000005d4 ADDI R17 R59 0x2f0 ;; [80, 71, 178, 240] +0x000005d8 ADDI R18 R59 0x1d0 ;; [80, 75, 177, 208] +0x000005dc MCPI R18 R17 0x18 ;; [96, 73, 16, 24] +0x000005e0 ADDI R17 R59 0x158 ;; [80, 71, 177, 88] +0x000005e4 MOVE R58 $zero ;; [26, 232, 0, 0] +0x000005e8 MOVE R57 R18 ;; [26, 229, 32, 0] +0x000005ec MOVE R56 R17 ;; [26, 225, 16, 0] +0x000005f0 JAL R62 $pc 0x1f ;; [153, 248, 48, 31] +0x000005f4 ADDI R18 R59 0x350 ;; [80, 75, 179, 80] +0x000005f8 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] +0x000005fc ADDI R17 R59 0x350 ;; [80, 71, 179, 80] +0x00000600 ADDI R18 R59 0x1e8 ;; [80, 75, 177, 232] 0x00000604 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] -0x00000608 ADDI R17 R59 0x158 ;; [80, 71, 177, 88] -0x0000060c MOVE R58 $zero ;; [26, 232, 0, 0] +0x00000608 ADDI R17 R59 0x170 ;; [80, 71, 177, 112] +0x0000060c MOVE R58 $writable ;; [26, 233, 0, 0] 0x00000610 MOVE R57 R18 ;; [26, 229, 32, 0] 0x00000614 MOVE R56 R17 ;; [26, 225, 16, 0] -0x00000618 JAL R62 $pc 0x1f ;; [153, 248, 48, 31] -0x0000061c ADDI R18 R59 0x350 ;; [80, 75, 179, 80] -0x00000620 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] -0x00000624 ADDI R17 R59 0x350 ;; [80, 71, 179, 80] -0x00000628 ADDI R18 R59 0x1e8 ;; [80, 75, 177, 232] -0x0000062c MCPI R18 R17 0x18 ;; [96, 73, 16, 24] -0x00000630 ADDI R17 R59 0x170 ;; [80, 71, 177, 112] -0x00000634 MOVE R58 $writable ;; [26, 233, 0, 0] -0x00000638 MOVE R57 R18 ;; [26, 229, 32, 0] -0x0000063c MOVE R56 R17 ;; [26, 225, 16, 0] -0x00000640 JAL R62 $pc 0x15 ;; [153, 248, 48, 21] -0x00000644 ADDI $writable R59 0x380 ;; [80, 67, 179, 128] -0x00000648 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x0000064c ADDI $writable R59 0x380 ;; [80, 67, 179, 128] -0x00000650 ADDI R17 R59 0x260 ;; [80, 71, 178, 96] -0x00000654 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x00000658 ADDI $writable R59 0x3c8 ;; [80, 67, 179, 200] -0x0000065c MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x00000660 ADDI $writable R59 0x3c8 ;; [80, 67, 179, 200] -0x00000664 ADDI R17 R59 0x368 ;; [80, 71, 179, 104] -0x00000668 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x0000066c ADDI $writable R59 0x368 ;; [80, 67, 179, 104] -0x00000670 ADDI R17 R59 0x308 ;; [80, 71, 179, 8] -0x00000674 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x00000678 ADD R24 R24 $one ;; [16, 97, 128, 64] -0x0000067c JMPB $zero 0xf6 ;; [117, 0, 0, 246] -0x00000680 CFSI 0x4c0 ;; [146, 0, 4, 192] -0x00000684 MOVE R62 R19 ;; [26, 249, 48, 0] -0x00000688 POPH 0x80000 ;; [152, 8, 0, 0] -0x0000068c POPL 0x1ff ;; [151, 0, 1, 255] -0x00000690 JAL $zero R62 0x0 ;; [153, 3, 224, 0] -0x00000694 PSHL 0xff ;; [149, 0, 0, 255] -0x00000698 PSHH 0x80000 ;; [150, 8, 0, 0] -0x0000069c MOVE R59 $sp ;; [26, 236, 80, 0] -0x000006a0 CFEI 0x90 ;; [145, 0, 0, 144] -0x000006a4 MOVE $writable R58 ;; [26, 67, 160, 0] -0x000006a8 MOVE R17 R56 ;; [26, 71, 128, 0] -0x000006ac MOVE R18 R62 ;; [26, 75, 224, 0] -0x000006b0 ADDI R19 R59 0x78 ;; [80, 79, 176, 120] -0x000006b4 MCPI R19 R57 0x18 ;; [96, 79, 144, 24] -0x000006b8 ADDI R19 R59 0x78 ;; [80, 79, 176, 120] -0x000006bc MCPI R59 R19 0x18 ;; [96, 237, 48, 24] -0x000006c0 ADDI R19 R59 0x30 ;; [80, 79, 176, 48] -0x000006c4 MCPI R19 R59 0x18 ;; [96, 79, 176, 24] -0x000006c8 LW R19 R59 0x6 ;; [93, 79, 176, 6] -0x000006cc LW R23 R59 0x7 ;; [93, 95, 176, 7] -0x000006d0 LW R20 R59 0x8 ;; [93, 83, 176, 8] -0x000006d4 MOVI R21 0x8 ;; [114, 84, 0, 8] -0x000006d8 ADD R21 R20 R21 ;; [16, 85, 69, 64] -0x000006dc GT R22 R21 R23 ;; [21, 89, 85, 192] -0x000006e0 JNZF R22 $zero 0x1 ;; [118, 88, 0, 1] -0x000006e4 JMPF $zero 0x7 ;; [116, 0, 0, 7] -0x000006e8 MOVI R22 0x2 ;; [114, 88, 0, 2] -0x000006ec MUL R22 R23 R22 ;; [27, 89, 117, 128] -0x000006f0 MOVI R23 0x8 ;; [114, 92, 0, 8] -0x000006f4 ADD R23 R22 R23 ;; [16, 93, 101, 192] -0x000006f8 ALOC R23 ;; [38, 92, 0, 0] -0x000006fc MCP $hp R19 R20 ;; [40, 29, 53, 0] -0x00000700 MOVE R19 $hp ;; [26, 76, 112, 0] -0x00000704 ADD R20 R19 R20 ;; [16, 81, 53, 0] -0x00000708 SW R20 $writable 0x0 ;; [95, 81, 0, 0] -0x0000070c ADDI $writable R59 0x48 ;; [80, 67, 176, 72] -0x00000710 SW R59 R19 0x9 ;; [95, 237, 48, 9] -0x00000714 SW R59 R23 0xa ;; [95, 237, 112, 10] -0x00000718 SW R59 R21 0xb ;; [95, 237, 80, 11] -0x0000071c ADDI R19 R59 0x18 ;; [80, 79, 176, 24] -0x00000720 MCPI R19 $writable 0x18 ;; [96, 77, 0, 24] -0x00000724 ADDI $writable R59 0x60 ;; [80, 67, 176, 96] -0x00000728 MCPI $writable R19 0x18 ;; [96, 65, 48, 24] -0x0000072c MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x00000730 CFSI 0x90 ;; [146, 0, 0, 144] -0x00000734 MOVE R62 R18 ;; [26, 249, 32, 0] -0x00000738 POPH 0x80000 ;; [152, 8, 0, 0] -0x0000073c POPL 0xff ;; [151, 0, 0, 255] -0x00000740 JAL $zero R62 0x0 ;; [153, 3, 224, 0] -0x00000744 PSHL 0xf ;; [149, 0, 0, 15] -0x00000748 PSHH 0x80000 ;; [150, 8, 0, 0] -0x0000074c MOVE R59 $sp ;; [26, 236, 80, 0] -0x00000750 CFEI 0x48 ;; [145, 0, 0, 72] -0x00000754 MOVE $writable R58 ;; [26, 67, 160, 0] -0x00000758 MOVE R17 R62 ;; [26, 71, 224, 0] -0x0000075c MOVI R18 0x400 ;; [114, 72, 4, 0] -0x00000760 ALOC R18 ;; [38, 72, 0, 0] -0x00000764 ADDI R18 R59 0x18 ;; [80, 75, 176, 24] -0x00000768 SW R59 $hp 0x3 ;; [95, 236, 112, 3] -0x0000076c MOVI R19 0x400 ;; [114, 76, 4, 0] -0x00000770 SW R59 R19 0x4 ;; [95, 237, 48, 4] -0x00000774 SW R59 $zero 0x5 ;; [95, 236, 0, 5] -0x00000778 MCPI R59 R18 0x18 ;; [96, 237, 32, 24] -0x0000077c ADDI R18 R59 0x30 ;; [80, 75, 176, 48] -0x00000780 MCPI R18 R59 0x18 ;; [96, 75, 176, 24] -0x00000784 MCPI $writable R18 0x18 ;; [96, 65, 32, 24] -0x00000788 CFSI 0x48 ;; [146, 0, 0, 72] -0x0000078c MOVE R62 R17 ;; [26, 249, 16, 0] -0x00000790 POPH 0x80000 ;; [152, 8, 0, 0] -0x00000794 POPL 0xf ;; [151, 0, 0, 15] -0x00000798 JAL $zero R62 0x0 ;; [153, 3, 224, 0] -0x0000079c PSHL 0xf ;; [149, 0, 0, 15] -0x000007a0 PSHH 0x80000 ;; [150, 8, 0, 0] -0x000007a4 MOVE R59 $sp ;; [26, 236, 80, 0] -0x000007a8 CFEI 0x28 ;; [145, 0, 0, 40] -0x000007ac MOVE $writable R57 ;; [26, 67, 144, 0] -0x000007b0 MOVE R17 R62 ;; [26, 71, 224, 0] -0x000007b4 ADDI R18 R59 0x10 ;; [80, 75, 176, 16] -0x000007b8 MCPI R18 R58 0x8 ;; [96, 75, 160, 8] -0x000007bc ADDI R18 R59 0x18 ;; [80, 75, 176, 24] -0x000007c0 MCPI R18 $writable 0x10 ;; [96, 73, 0, 16] -0x000007c4 LW $writable R59 0x3 ;; [93, 67, 176, 3] -0x000007c8 LW R18 R59 0x4 ;; [93, 75, 176, 4] -0x000007cc SW R59 $writable 0x0 ;; [95, 237, 0, 0] -0x000007d0 SW R59 R18 0x1 ;; [95, 237, 32, 1] -0x000007d4 LW $writable R59 0x0 ;; [93, 67, 176, 0] -0x000007d8 ADDI R18 R59 0x10 ;; [80, 75, 176, 16] -0x000007dc MOVI R19 0x3 ;; [114, 76, 0, 3] -0x000007e0 MEQ $writable R18 $writable R19 ;; [41, 65, 36, 19] -0x000007e4 MOVE R61 $writable ;; [26, 245, 0, 0] -0x000007e8 CFSI 0x28 ;; [146, 0, 0, 40] -0x000007ec MOVE R62 R17 ;; [26, 249, 16, 0] -0x000007f0 POPH 0x80000 ;; [152, 8, 0, 0] -0x000007f4 POPL 0xf ;; [151, 0, 0, 15] -0x000007f8 JAL $zero R62 0x0 ;; [153, 3, 224, 0] -0x000007fc NOOP ;; [71, 0, 0, 0] +0x00000618 JAL R62 $pc 0x15 ;; [153, 248, 48, 21] +0x0000061c ADDI $writable R59 0x380 ;; [80, 67, 179, 128] +0x00000620 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x00000624 ADDI $writable R59 0x380 ;; [80, 67, 179, 128] +0x00000628 ADDI R17 R59 0x260 ;; [80, 71, 178, 96] +0x0000062c MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x00000630 ADDI $writable R59 0x3c8 ;; [80, 67, 179, 200] +0x00000634 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x00000638 ADDI $writable R59 0x3c8 ;; [80, 67, 179, 200] +0x0000063c ADDI R17 R59 0x368 ;; [80, 71, 179, 104] +0x00000640 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x00000644 ADDI $writable R59 0x368 ;; [80, 67, 179, 104] +0x00000648 ADDI R17 R59 0x308 ;; [80, 71, 179, 8] +0x0000064c MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x00000650 ADD R24 R24 $one ;; [16, 97, 128, 64] +0x00000654 JMPB $zero 0xf6 ;; [117, 0, 0, 246] +0x00000658 CFSI 0x4c0 ;; [146, 0, 4, 192] +0x0000065c MOVE R62 R19 ;; [26, 249, 48, 0] +0x00000660 POPH 0x80000 ;; [152, 8, 0, 0] +0x00000664 POPL 0x1ff ;; [151, 0, 1, 255] +0x00000668 JAL $zero R62 0x0 ;; [153, 3, 224, 0] +0x0000066c PSHL 0xff ;; [149, 0, 0, 255] +0x00000670 PSHH 0x80000 ;; [150, 8, 0, 0] +0x00000674 MOVE R59 $sp ;; [26, 236, 80, 0] +0x00000678 CFEI 0x90 ;; [145, 0, 0, 144] +0x0000067c MOVE $writable R58 ;; [26, 67, 160, 0] +0x00000680 MOVE R17 R56 ;; [26, 71, 128, 0] +0x00000684 MOVE R18 R62 ;; [26, 75, 224, 0] +0x00000688 ADDI R19 R59 0x78 ;; [80, 79, 176, 120] +0x0000068c MCPI R19 R57 0x18 ;; [96, 79, 144, 24] +0x00000690 ADDI R19 R59 0x78 ;; [80, 79, 176, 120] +0x00000694 MCPI R59 R19 0x18 ;; [96, 237, 48, 24] +0x00000698 ADDI R19 R59 0x30 ;; [80, 79, 176, 48] +0x0000069c MCPI R19 R59 0x18 ;; [96, 79, 176, 24] +0x000006a0 LW R19 R59 0x6 ;; [93, 79, 176, 6] +0x000006a4 LW R23 R59 0x7 ;; [93, 95, 176, 7] +0x000006a8 LW R20 R59 0x8 ;; [93, 83, 176, 8] +0x000006ac MOVI R21 0x8 ;; [114, 84, 0, 8] +0x000006b0 ADD R21 R20 R21 ;; [16, 85, 69, 64] +0x000006b4 GT R22 R21 R23 ;; [21, 89, 85, 192] +0x000006b8 JNZF R22 $zero 0x1 ;; [118, 88, 0, 1] +0x000006bc JMPF $zero 0x7 ;; [116, 0, 0, 7] +0x000006c0 MOVI R22 0x2 ;; [114, 88, 0, 2] +0x000006c4 MUL R22 R23 R22 ;; [27, 89, 117, 128] +0x000006c8 MOVI R23 0x8 ;; [114, 92, 0, 8] +0x000006cc ADD R23 R22 R23 ;; [16, 93, 101, 192] +0x000006d0 ALOC R23 ;; [38, 92, 0, 0] +0x000006d4 MCP $hp R19 R20 ;; [40, 29, 53, 0] +0x000006d8 MOVE R19 $hp ;; [26, 76, 112, 0] +0x000006dc ADD R20 R19 R20 ;; [16, 81, 53, 0] +0x000006e0 SW R20 $writable 0x0 ;; [95, 81, 0, 0] +0x000006e4 ADDI $writable R59 0x48 ;; [80, 67, 176, 72] +0x000006e8 SW R59 R19 0x9 ;; [95, 237, 48, 9] +0x000006ec SW R59 R23 0xa ;; [95, 237, 112, 10] +0x000006f0 SW R59 R21 0xb ;; [95, 237, 80, 11] +0x000006f4 ADDI R19 R59 0x18 ;; [80, 79, 176, 24] +0x000006f8 MCPI R19 $writable 0x18 ;; [96, 77, 0, 24] +0x000006fc ADDI $writable R59 0x60 ;; [80, 67, 176, 96] +0x00000700 MCPI $writable R19 0x18 ;; [96, 65, 48, 24] +0x00000704 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x00000708 CFSI 0x90 ;; [146, 0, 0, 144] +0x0000070c MOVE R62 R18 ;; [26, 249, 32, 0] +0x00000710 POPH 0x80000 ;; [152, 8, 0, 0] +0x00000714 POPL 0xff ;; [151, 0, 0, 255] +0x00000718 JAL $zero R62 0x0 ;; [153, 3, 224, 0] +0x0000071c PSHL 0xf ;; [149, 0, 0, 15] +0x00000720 PSHH 0x80000 ;; [150, 8, 0, 0] +0x00000724 MOVE R59 $sp ;; [26, 236, 80, 0] +0x00000728 CFEI 0x48 ;; [145, 0, 0, 72] +0x0000072c MOVE $writable R58 ;; [26, 67, 160, 0] +0x00000730 MOVE R17 R62 ;; [26, 71, 224, 0] +0x00000734 MOVI R18 0x400 ;; [114, 72, 4, 0] +0x00000738 ALOC R18 ;; [38, 72, 0, 0] +0x0000073c ADDI R18 R59 0x18 ;; [80, 75, 176, 24] +0x00000740 SW R59 $hp 0x3 ;; [95, 236, 112, 3] +0x00000744 MOVI R19 0x400 ;; [114, 76, 4, 0] +0x00000748 SW R59 R19 0x4 ;; [95, 237, 48, 4] +0x0000074c SW R59 $zero 0x5 ;; [95, 236, 0, 5] +0x00000750 MCPI R59 R18 0x18 ;; [96, 237, 32, 24] +0x00000754 ADDI R18 R59 0x30 ;; [80, 75, 176, 48] +0x00000758 MCPI R18 R59 0x18 ;; [96, 75, 176, 24] +0x0000075c MCPI $writable R18 0x18 ;; [96, 65, 32, 24] +0x00000760 CFSI 0x48 ;; [146, 0, 0, 72] +0x00000764 MOVE R62 R17 ;; [26, 249, 16, 0] +0x00000768 POPH 0x80000 ;; [152, 8, 0, 0] +0x0000076c POPL 0xf ;; [151, 0, 0, 15] +0x00000770 JAL $zero R62 0x0 ;; [153, 3, 224, 0] +0x00000774 PSHL 0xf ;; [149, 0, 0, 15] +0x00000778 PSHH 0x80000 ;; [150, 8, 0, 0] +0x0000077c MOVE R59 $sp ;; [26, 236, 80, 0] +0x00000780 CFEI 0x28 ;; [145, 0, 0, 40] +0x00000784 MOVE $writable R57 ;; [26, 67, 144, 0] +0x00000788 MOVE R17 R62 ;; [26, 71, 224, 0] +0x0000078c ADDI R18 R59 0x10 ;; [80, 75, 176, 16] +0x00000790 MCPI R18 R58 0x8 ;; [96, 75, 160, 8] +0x00000794 ADDI R18 R59 0x18 ;; [80, 75, 176, 24] +0x00000798 MCPI R18 $writable 0x10 ;; [96, 73, 0, 16] +0x0000079c LW $writable R59 0x3 ;; [93, 67, 176, 3] +0x000007a0 LW R18 R59 0x4 ;; [93, 75, 176, 4] +0x000007a4 SW R59 $writable 0x0 ;; [95, 237, 0, 0] +0x000007a8 SW R59 R18 0x1 ;; [95, 237, 32, 1] +0x000007ac LW $writable R59 0x0 ;; [93, 67, 176, 0] +0x000007b0 ADDI R18 R59 0x10 ;; [80, 75, 176, 16] +0x000007b4 MOVI R19 0x3 ;; [114, 76, 0, 3] +0x000007b8 MEQ $writable R18 $writable R19 ;; [41, 65, 36, 19] +0x000007bc MOVE R61 $writable ;; [26, 245, 0, 0] +0x000007c0 CFSI 0x28 ;; [146, 0, 0, 40] +0x000007c4 MOVE R62 R17 ;; [26, 249, 16, 0] +0x000007c8 POPH 0x80000 ;; [152, 8, 0, 0] +0x000007cc POPL 0xf ;; [151, 0, 0, 15] +0x000007d0 JAL $zero R62 0x0 ;; [153, 3, 224, 0] +0x000007d4 NOOP ;; [71, 0, 0, 0] .data_section: -0x00000800 .word i3647243719605075626, as hex be bytes ([32, 9D, 9C, D6, CC, 55, BE, AA]) -0x00000808 .bytes as hex ([73, 65, 74]), len i3, as ascii "set" -0x00000810 .bytes as hex ([61, 64, 64]), len i3, as ascii "add" -0x00000818 .word i18446744073709486084, as hex be bytes ([FF, FF, FF, FF, FF, FF, 00, 04]) -0x00000820 .word i14757395258967588866, as hex be bytes ([CC, CC, CC, CC, CC, CC, 00, 02]) +0x000007d8 .word i3647243719605075626, as hex be bytes ([32, 9D, 9C, D6, CC, 55, BE, AA]) +0x000007e0 .bytes as hex ([73, 65, 74]), len i3, as ascii "set" +0x000007e8 .bytes as hex ([61, 64, 64]), len i3, as ascii "add" +0x000007f0 .word i18446744073709486084, as hex be bytes ([FF, FF, FF, FF, FF, FF, 00, 04]) +0x000007f8 .word i14757395258967588866, as hex be bytes ([CC, CC, CC, CC, CC, CC, 00, 02]) ;; --- END OF TARGET BYTECODE --- - Finished release [optimized + fuel] target(s) [2.088 KB] in ??? + Finished release [optimized + fuel] target(s) [2.048 KB] in ??? diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panic_handling_in_unit_tests/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panic_handling_in_unit_tests/stdout.snap index 00eda9497c0..56bdf174f99 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panic_handling_in_unit_tests/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panic_handling_in_unit_tests/stdout.snap @@ -19,7 +19,7 @@ warning: Error message is empty ____ Compiled script "panic_handling_in_unit_tests" with 1 warning. - Finished debug [unoptimized + fuel] target(s) [8.168 KB] in ??? + Finished debug [unoptimized + fuel] target(s) [8.312 KB] in ??? Running 2 tests, filtered 18 tests tested -- panic_handling_in_unit_tests @@ -56,7 +56,7 @@ warning: Error message is empty ____ Compiled script "panic_handling_in_unit_tests" with 1 warning. - Finished debug [unoptimized + fuel] target(s) [8.168 KB] in ??? + Finished debug [unoptimized + fuel] target(s) [8.312 KB] in ??? Running 20 tests, filtered 0 tests tested -- panic_handling_in_unit_tests @@ -69,7 +69,7 @@ tested -- panic_handling_in_unit_tests test failing_error_signal_assert_eq ... FAILED (???, 3010 gas) test failing_error_signal_assert_ne ... FAILED (???, 3000 gas) test failing_error_signal_require_str_error ... FAILED (???, 976 gas) - test failing_error_signal_require_enum_error ... FAILED (???, 1103 gas) + test failing_error_signal_require_enum_error ... FAILED (???, 1131 gas) test failing_panic_no_arg ... FAILED (???, 771 gas) test failing_panic_unit_arg ... FAILED (???, 771 gas) test failing_panic_const_eval_str_arg ... FAILED (???, 79 gas) @@ -78,9 +78,9 @@ tested -- panic_handling_in_unit_tests test failing_panic_non_const_eval_str_arg ... FAILED (???, 957 gas) test failing_panic_non_const_eval_str_empty_arg ... FAILED (???, 939 gas) test failing_panic_non_const_eval_str_whitespace_arg ... FAILED (???, 943 gas) - test failing_panic_error_enum_arg ... FAILED (???, 1073 gas) - test failing_panic_error_enum_arg_with_empty_msg ... FAILED (???, 1230 gas) - test failing_panic_error_enum_arg_with_whitespace_msg ... FAILED (???, 1259 gas) + test failing_panic_error_enum_arg ... FAILED (???, 1101 gas) + test failing_panic_error_enum_arg_with_empty_msg ... FAILED (???, 1258 gas) + test failing_panic_error_enum_arg_with_whitespace_msg ... FAILED (???, 1287 gas) failures: test failing_revert_intrinsic, "test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panic_handling_in_unit_tests/src/main.sw":34 diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_contract/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_contract/stdout.snap index 078424290d6..afe03a054c6 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_contract/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_contract/stdout.snap @@ -9,17 +9,17 @@ output: Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling library panicking_lib (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib) Compiling contract panicking_contract (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_contract) - Finished debug [unoptimized + fuel] target(s) [8.656 KB] in ??? + Finished debug [unoptimized + fuel] target(s) [8.824 KB] in ??? Running 12 tests, filtered 0 tests tested -- panicking_contract - test test_panicking_in_contract_self_impl ... ok (???, 11201 gas) + test test_panicking_in_contract_self_impl ... ok (???, 11217 gas) revert code: 828000000000000c ├─ panic message: panicking in contract self impl ├─ panicked: in ::panicking_in_contract_self_impl │ └─ at panicking_contract@1.2.3, src/main.sw:22:9 - test test_directly_panicking_method ... ok (???, 12206 gas) + test test_directly_panicking_method ... ok (???, 12258 gas) revert code: 820000000000000b ├─ panic message: Error C. ├─ panic value: C(true) @@ -27,7 +27,7 @@ tested -- panicking_contract │ └─ at panicking_contract@1.2.3, src/main.sw:28:9 decoded log values: C(true), log rb: 5503570629422409978 - test test_nested_panic_inlined ... ok (???, 12940 gas) + test test_nested_panic_inlined ... ok (???, 12992 gas) revert code: 8000000000c01001 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]) @@ -39,7 +39,7 @@ C(true), log rb: 5503570629422409978 └─ at panicking_contract@1.2.3, src/main.sw:32:9 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 5503570629422409978 - test test_nested_panic_inlined_same_revert_code ... ok (???, 12940 gas) + test test_nested_panic_inlined_same_revert_code ... ok (???, 12992 gas) revert code: 8000000000c01001 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]) @@ -51,7 +51,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_contract@1.2.3, src/main.sw:32:9 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 5503570629422409978 - test test_nested_panic_non_inlined ... ok (???, 13050 gas) + test test_nested_panic_non_inlined ... ok (???, 13102 gas) revert code: 8180000002804808 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -63,7 +63,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_contract@1.2.3, src/main.sw:40:9 decoded log values: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]), log rb: 5503570629422409978 - test test_nested_panic_non_inlined_same_revert_code ... ok (???, 13050 gas) + test test_nested_panic_non_inlined_same_revert_code ... ok (???, 13102 gas) revert code: 8180000002804808 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -75,7 +75,7 @@ E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { d └─ at panicking_contract@1.2.3, src/main.sw:40:9 decoded log values: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]), log rb: 5503570629422409978 - test test_generic_panic_with_unit ... ok (???, 11831 gas) + test test_generic_panic_with_unit ... ok (???, 11847 gas) revert code: 8100000000003806 ├─ panic value: () ├─ panicked: in panicking_lib::generic_panic @@ -84,7 +84,7 @@ E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { d └─ at panicking_contract@1.2.3, src/main.sw:48:9 decoded log values: (), log rb: 3330666440490685604 - test test_generic_panic_with_unit_same_revert_code ... ok (???, 11831 gas) + test test_generic_panic_with_unit_same_revert_code ... ok (???, 11847 gas) revert code: 8100000000003806 ├─ panic value: () ├─ panicked: in panicking_lib::generic_panic @@ -93,7 +93,7 @@ E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { d └─ at panicking_contract@1.2.3, src/main.sw:48:9 decoded log values: (), log rb: 3330666440490685604 - test test_generic_panic_with_str ... ok (???, 11990 gas) + test test_generic_panic_with_str ... ok (???, 12006 gas) revert code: 8080000000002804 ├─ panic message: generic panic with string ├─ panicked: in panicking_lib::generic_panic @@ -102,7 +102,7 @@ E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { d └─ at panicking_contract@1.2.3, src/main.sw:56:9 decoded log values: AsciiString { data: "generic panic with string" }, log rb: 10098701174489624218 - test test_generic_panic_with_different_str_same_revert_code ... ok (???, 12213 gas) + test test_generic_panic_with_different_str_same_revert_code ... ok (???, 12229 gas) revert code: 808000000000d019 ├─ panic message: generic panic with different string ├─ panicked: in panicking_lib::generic_panic @@ -111,7 +111,7 @@ AsciiString { data: "generic panic with string" }, log rb: 10098701174489624218 └─ at panicking_contract@1.2.3, src/main.sw:60:9 decoded log values: AsciiString { data: "generic panic with different string" }, log rb: 10098701174489624218 - test test_generic_panic_with_error_type_enum ... ok (???, 12101 gas) + test test_generic_panic_with_error_type_enum ... ok (???, 12153 gas) revert code: 830000000000700d ├─ panic message: Error A. ├─ panic value: A @@ -121,7 +121,7 @@ AsciiString { data: "generic panic with different string" }, log rb: 10098701174 └─ at panicking_contract@1.2.3, src/main.sw:64:9 decoded log values: A, log rb: 5503570629422409978 - test test_generic_panic_with_error_type_enum_different_variant_same_revert_code ... ok (???, 12370 gas) + test test_generic_panic_with_error_type_enum_different_variant_same_revert_code ... ok (???, 12422 gas) revert code: 830000000000e01b ├─ panic message: Error B. ├─ panic value: B(42) @@ -143,17 +143,17 @@ output: Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling library panicking_lib (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib) Compiling contract panicking_contract (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_contract) - Finished release [optimized + fuel] target(s) [6.472 KB] in ??? + Finished release [optimized + fuel] target(s) [6.488 KB] in ??? Running 12 tests, filtered 0 tests tested -- panicking_contract - test test_panicking_in_contract_self_impl ... ok (???, 10464 gas) + test test_panicking_in_contract_self_impl ... ok (???, 10465 gas) revert code: 8280000000000000 ├─ panic message: panicking in contract self impl └─ panicked: in ::panicking_in_contract_self_impl └─ at panicking_contract@1.2.3, src/main.sw:22:9 - test test_directly_panicking_method ... ok (???, 11384 gas) + test test_directly_panicking_method ... ok (???, 11391 gas) revert code: 8200000000000000 ├─ panic message: Error C. ├─ panic value: C(true) @@ -161,7 +161,7 @@ tested -- panicking_contract └─ at panicking_contract@1.2.3, src/main.sw:28:9 decoded log values: C(true), log rb: 5503570629422409978 - test test_nested_panic_inlined ... ok (???, 12040 gas) + test test_nested_panic_inlined ... ok (???, 12047 gas) revert code: 8000000000000000 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]) @@ -169,7 +169,7 @@ C(true), log rb: 5503570629422409978 └─ at panicking_lib, src/lib.sw:35:5 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 5503570629422409978 - test test_nested_panic_inlined_same_revert_code ... ok (???, 12040 gas) + test test_nested_panic_inlined_same_revert_code ... ok (???, 12047 gas) revert code: 8000000000000000 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]) @@ -177,7 +177,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_lib, src/lib.sw:35:5 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 5503570629422409978 - test test_nested_panic_non_inlined ... ok (???, 12098 gas) + test test_nested_panic_non_inlined ... ok (???, 12105 gas) revert code: 8180000000000000 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -185,7 +185,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_lib, src/lib.sw:41:9 decoded log values: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]), log rb: 5503570629422409978 - test test_nested_panic_non_inlined_same_revert_code ... ok (???, 12098 gas) + test test_nested_panic_non_inlined_same_revert_code ... ok (???, 12105 gas) revert code: 8180000000000000 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -193,35 +193,35 @@ E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { d └─ at panicking_lib, src/lib.sw:41:9 decoded log values: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]), log rb: 5503570629422409978 - test test_generic_panic_with_unit ... ok (???, 11046 gas) + test test_generic_panic_with_unit ... ok (???, 11047 gas) revert code: 8100000000000000 ├─ panic value: () └─ panicked: in panicking_lib::generic_panic └─ at panicking_lib, src/lib.sw:74:5 decoded log values: (), log rb: 3330666440490685604 - test test_generic_panic_with_unit_same_revert_code ... ok (???, 11046 gas) + test test_generic_panic_with_unit_same_revert_code ... ok (???, 11047 gas) revert code: 8100000000000000 ├─ panic value: () └─ panicked: in panicking_lib::generic_panic └─ at panicking_lib, src/lib.sw:74:5 decoded log values: (), log rb: 3330666440490685604 - test test_generic_panic_with_str ... ok (???, 11231 gas) + test test_generic_panic_with_str ... ok (???, 11232 gas) revert code: 8080000000000000 ├─ panic message: generic panic with string └─ panicked: in panicking_lib::generic_panic └─ at panicking_lib, src/lib.sw:74:5 decoded log values: AsciiString { data: "generic panic with string" }, log rb: 10098701174489624218 - test test_generic_panic_with_different_str_same_revert_code ... ok (???, 11314 gas) + test test_generic_panic_with_different_str_same_revert_code ... ok (???, 11315 gas) revert code: 8080000000000000 ├─ panic message: generic panic with different string └─ panicked: in panicking_lib::generic_panic └─ at panicking_lib, src/lib.sw:74:5 decoded log values: AsciiString { data: "generic panic with different string" }, log rb: 10098701174489624218 - test test_generic_panic_with_error_type_enum ... ok (???, 11289 gas) + test test_generic_panic_with_error_type_enum ... ok (???, 11296 gas) revert code: 8300000000000000 ├─ panic message: Error A. ├─ panic value: A @@ -229,7 +229,7 @@ AsciiString { data: "generic panic with different string" }, log rb: 10098701174 └─ at panicking_lib, src/lib.sw:74:5 decoded log values: A, log rb: 5503570629422409978 - test test_generic_panic_with_error_type_enum_different_variant_same_revert_code ... ok (???, 11436 gas) + test test_generic_panic_with_error_type_enum_different_variant_same_revert_code ... ok (???, 11445 gas) revert code: 8300000000000000 ├─ panic message: Error B. ├─ panic value: B(42) diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib/stdout.snap index e135261c0d9..2f68588a806 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib/stdout.snap @@ -8,12 +8,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling library panicking_lib (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib) - Finished debug [unoptimized + fuel] target(s) [6.928 KB] in ??? + Finished debug [unoptimized + fuel] target(s) [7.76 KB] in ??? Running 18 tests, filtered 0 tests tested -- panicking_lib - test test_nested_panic_inlined ... ok (???, 1976 gas) + test test_nested_panic_inlined ... ok (???, 2041 gas) revert code: 8000000000001001 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]) @@ -25,7 +25,7 @@ tested -- panicking_lib └─ at panicking_lib, src/lib.sw:55:5 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 2721958641300806892 - test test_nested_panic_inlined_same_revert_code ... ok (???, 1976 gas) + test test_nested_panic_inlined_same_revert_code ... ok (???, 2041 gas) revert code: 8000000000001801 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]) @@ -37,7 +37,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_lib, src/lib.sw:60:5 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 2721958641300806892 - test test_nested_panic_non_inlined ... ok (???, 2020 gas) + test test_nested_panic_non_inlined ... ok (???, 2085 gas) revert code: 8080000000002804 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -49,7 +49,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_lib, src/lib.sw:65:5 decoded log values: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]), log rb: 2721958641300806892 - test test_nested_panic_non_inlined_same_revert_code ... ok (???, 2020 gas) + test test_nested_panic_non_inlined_same_revert_code ... ok (???, 2085 gas) revert code: 8080000000003004 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -97,7 +97,7 @@ AsciiString { data: "generic panic with string" }, log rb: 10098701174489624218 └─ at panicking_lib, src/lib.sw:98:5 decoded log values: AsciiString { data: "generic panic different string" }, log rb: 10098701174489624218 - test test_generic_panic_with_error_type_enum_variant ... ok (???, 989 gas) + test test_generic_panic_with_error_type_enum_variant ... ok (???, 1054 gas) revert code: 820000000000000b ├─ panic message: Error A. ├─ panic value: A @@ -107,7 +107,7 @@ AsciiString { data: "generic panic different string" }, log rb: 1009870117448962 └─ at panicking_lib, src/lib.sw:103:5 decoded log values: A, log rb: 2721958641300806892 - test test_generic_panic_with_error_type_enum_different_variant_same_revert_code ... ok (???, 989 gas) + test test_generic_panic_with_error_type_enum_different_variant_same_revert_code ... ok (???, 1054 gas) revert code: 820000000000000c ├─ panic message: Error A. ├─ panic value: A @@ -136,7 +136,7 @@ A, log rb: 2721958641300806892 ├─ panic message: panic with string └─ panicked: in panicking_lib::test_panic_with_str └─ at panicking_lib, src/lib.sw:123:5 - test test_panic_with_error_type_enum ... ok (???, 1189 gas) + test test_panic_with_error_type_enum ... ok (???, 1254 gas) revert code: 8400000000000000 ├─ panic message: Error C. ├─ panic value: C(true) @@ -144,28 +144,28 @@ A, log rb: 2721958641300806892 └─ at panicking_lib, src/lib.sw:128:5 decoded log values: C(true), log rb: 2721958641300806892 - test test_panic_with_generic_error_type_enum ... ok (???, 1050 gas) + test test_panic_with_generic_error_type_enum ... ok (???, 1076 gas) revert code: 8480000000000000 ├─ panic value: A(42) └─ panicked: in panicking_lib::test_panic_with_generic_error_type_enum └─ at panicking_lib, src/lib.sw:133:5 decoded log values: A(42), log rb: 12408470889216862137 - test test_panic_with_nested_generic_error_type ... ok (???, 1644 gas) + test test_panic_with_nested_generic_error_type ... ok (???, 1668 gas) revert code: 8500000000000000 ├─ panic value: B(B(C(true))) └─ panicked: in panicking_lib::test_panic_with_nested_generic_error_type └─ at panicking_lib, src/lib.sw:138:5 decoded log values: B(B(C(true))), log rb: 14988555917426256081 - test test_panic_with_generic_error_type_enum_with_abi_encode ... ok (???, 1050 gas) + test test_panic_with_generic_error_type_enum_with_abi_encode ... ok (???, 1076 gas) revert code: 8580000000000000 ├─ panic value: A(42) └─ panicked: in panicking_lib::test_panic_with_generic_error_type_enum_with_abi_encode └─ at panicking_lib, src/lib.sw:143:5 decoded log values: A(42), log rb: 17388243649088655852 - test test_panic_with_nested_generic_error_type_enum_with_abi_encode ... ok (???, 1644 gas) + test test_panic_with_nested_generic_error_type_enum_with_abi_encode ... ok (???, 1668 gas) revert code: 8600000000000000 ├─ panic value: B(B(C(true))) └─ panicked: in panicking_lib::test_panic_with_nested_generic_error_type_enum_with_abi_encode @@ -183,12 +183,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling library panicking_lib (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib) - Finished release [optimized + fuel] target(s) [4.48 KB] in ??? + Finished release [optimized + fuel] target(s) [4.984 KB] in ??? Running 18 tests, filtered 0 tests tested -- panicking_lib - test test_nested_panic_inlined ... ok (???, 1718 gas) + test test_nested_panic_inlined ... ok (???, 1754 gas) revert code: 8000000000000000 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]) @@ -196,7 +196,7 @@ tested -- panicking_lib └─ at panicking_lib, src/lib.sw:35:5 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 2721958641300806892 - test test_nested_panic_inlined_same_revert_code ... ok (???, 1718 gas) + test test_nested_panic_inlined_same_revert_code ... ok (???, 1754 gas) revert code: 8000000000000000 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]) @@ -204,7 +204,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_lib, src/lib.sw:35:5 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 2721958641300806892 - test test_nested_panic_non_inlined ... ok (???, 1752 gas) + test test_nested_panic_non_inlined ... ok (???, 1788 gas) revert code: 8080000000000000 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -212,7 +212,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_lib, src/lib.sw:41:9 decoded log values: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]), log rb: 2721958641300806892 - test test_nested_panic_non_inlined_same_revert_code ... ok (???, 1752 gas) + test test_nested_panic_non_inlined_same_revert_code ... ok (???, 1788 gas) revert code: 8080000000000000 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -248,7 +248,7 @@ AsciiString { data: "generic panic with string" }, log rb: 10098701174489624218 └─ at panicking_lib, src/lib.sw:74:5 decoded log values: AsciiString { data: "generic panic different string" }, log rb: 10098701174489624218 - test test_generic_panic_with_error_type_enum_variant ... ok (???, 901 gas) + test test_generic_panic_with_error_type_enum_variant ... ok (???, 937 gas) revert code: 8200000000000000 ├─ panic message: Error A. ├─ panic value: A @@ -256,7 +256,7 @@ AsciiString { data: "generic panic different string" }, log rb: 1009870117448962 └─ at panicking_lib, src/lib.sw:74:5 decoded log values: A, log rb: 2721958641300806892 - test test_generic_panic_with_error_type_enum_different_variant_same_revert_code ... ok (???, 901 gas) + test test_generic_panic_with_error_type_enum_different_variant_same_revert_code ... ok (???, 937 gas) revert code: 8200000000000000 ├─ panic message: Error A. ├─ panic value: A @@ -283,7 +283,7 @@ A, log rb: 2721958641300806892 ├─ panic message: panic with string └─ panicked: in panicking_lib::test_panic_with_str └─ at panicking_lib, src/lib.sw:123:5 - test test_panic_with_error_type_enum ... ok (???, 1067 gas) + test test_panic_with_error_type_enum ... ok (???, 1103 gas) revert code: 8400000000000000 ├─ panic message: Error C. ├─ panic value: C(true) @@ -291,28 +291,28 @@ A, log rb: 2721958641300806892 └─ at panicking_lib, src/lib.sw:128:5 decoded log values: C(true), log rb: 2721958641300806892 - test test_panic_with_generic_error_type_enum ... ok (???, 940 gas) + test test_panic_with_generic_error_type_enum ... ok (???, 1020 gas) revert code: 8480000000000000 ├─ panic value: A(42) └─ panicked: in panicking_lib::test_panic_with_generic_error_type_enum └─ at panicking_lib, src/lib.sw:133:5 decoded log values: A(42), log rb: 12408470889216862137 - test test_panic_with_nested_generic_error_type ... ok (???, 1354 gas) + test test_panic_with_nested_generic_error_type ... ok (???, 1510 gas) revert code: 8500000000000000 ├─ panic value: B(B(C(true))) └─ panicked: in panicking_lib::test_panic_with_nested_generic_error_type └─ at panicking_lib, src/lib.sw:138:5 decoded log values: B(B(C(true))), log rb: 14988555917426256081 - test test_panic_with_generic_error_type_enum_with_abi_encode ... ok (???, 940 gas) + test test_panic_with_generic_error_type_enum_with_abi_encode ... ok (???, 1020 gas) revert code: 8580000000000000 ├─ panic value: A(42) └─ panicked: in panicking_lib::test_panic_with_generic_error_type_enum_with_abi_encode └─ at panicking_lib, src/lib.sw:143:5 decoded log values: A(42), log rb: 17388243649088655852 - test test_panic_with_nested_generic_error_type_enum_with_abi_encode ... ok (???, 1354 gas) + test test_panic_with_nested_generic_error_type_enum_with_abi_encode ... ok (???, 1510 gas) revert code: 8600000000000000 ├─ panic value: B(B(C(true))) └─ panicked: in panicking_lib::test_panic_with_nested_generic_error_type_enum_with_abi_encode diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_script/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_script/stdout.snap index 157ee5bb111..a45a7eca40f 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_script/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_script/stdout.snap @@ -9,12 +9,12 @@ output: Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling library panicking_lib (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib) Compiling script panicking_script (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_script) - Finished debug [unoptimized + fuel] target(s) [3.84 KB] in ??? + Finished debug [unoptimized + fuel] target(s) [4.008 KB] in ??? Running 11 tests, filtered 0 tests tested -- panicking_script - test test_panic_in_main ... ok (???, 1111 gas) + test test_panic_in_main ... ok (???, 1147 gas) revert code: 8000000000000000 ├─ panic message: Error C. ├─ panic value: C(true) @@ -22,7 +22,7 @@ tested -- panicking_script └─ at panicking_script, src/main.sw:6:5 decoded log values: C(true), log rb: 5503570629422409978 - test test_nested_panic_inlined ... ok (???, 1930 gas) + test test_nested_panic_inlined ... ok (???, 1966 gas) revert code: 8080000000001001 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]) @@ -34,7 +34,7 @@ C(true), log rb: 5503570629422409978 └─ at panicking_script, src/main.sw:16:5 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 5503570629422409978 - test test_nested_panic_inlined_same_revert_code ... ok (???, 1930 gas) + test test_nested_panic_inlined_same_revert_code ... ok (???, 1966 gas) revert code: 8080000000001801 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]) @@ -46,7 +46,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_script, src/main.sw:21:5 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 5503570629422409978 - test test_nested_panic_non_inlined ... ok (???, 1972 gas) + test test_nested_panic_non_inlined ... ok (???, 2008 gas) revert code: 8100000000002804 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -58,7 +58,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_script, src/main.sw:26:5 decoded log values: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]), log rb: 5503570629422409978 - test test_nested_panic_non_inlined_same_revert_code ... ok (???, 1972 gas) + test test_nested_panic_non_inlined_same_revert_code ... ok (???, 2008 gas) revert code: 8100000000003004 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -106,7 +106,7 @@ AsciiString { data: "generic panic with string" }, log rb: 10098701174489624218 └─ at panicking_script, src/main.sw:51:5 decoded log values: AsciiString { data: "generic panic with different string" }, log rb: 10098701174489624218 - test test_generic_panic_with_error_type_enum ... ok (???, 941 gas) + test test_generic_panic_with_error_type_enum ... ok (???, 977 gas) revert code: 828000000000000b ├─ panic message: Error A. ├─ panic value: A @@ -116,7 +116,7 @@ AsciiString { data: "generic panic with different string" }, log rb: 10098701174 └─ at panicking_script, src/main.sw:56:5 decoded log values: A, log rb: 5503570629422409978 - test test_generic_panic_with_error_type_enum_different_variant_same_revert_code ... ok (???, 1078 gas) + test test_generic_panic_with_error_type_enum_different_variant_same_revert_code ... ok (???, 1114 gas) revert code: 828000000000000c ├─ panic message: Error B. ├─ panic value: B(42) @@ -138,12 +138,12 @@ output: Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling library panicking_lib (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib) Compiling script panicking_script (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_script) - Finished release [optimized + fuel] target(s) [3.208 KB] in ??? + Finished release [optimized + fuel] target(s) [3.216 KB] in ??? Running 11 tests, filtered 0 tests tested -- panicking_script - test test_panic_in_main ... ok (???, 1006 gas) + test test_panic_in_main ... ok (???, 1012 gas) revert code: 8000000000000000 ├─ panic message: Error C. ├─ panic value: C(true) @@ -151,7 +151,7 @@ tested -- panicking_script └─ at panicking_script, src/main.sw:6:5 decoded log values: C(true), log rb: 5503570629422409978 - test test_nested_panic_inlined ... ok (???, 1695 gas) + test test_nested_panic_inlined ... ok (???, 1701 gas) revert code: 8080000000000000 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]) @@ -159,7 +159,7 @@ C(true), log rb: 5503570629422409978 └─ at panicking_lib, src/lib.sw:35:5 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 5503570629422409978 - test test_nested_panic_inlined_same_revert_code ... ok (???, 1695 gas) + test test_nested_panic_inlined_same_revert_code ... ok (???, 1701 gas) revert code: 8080000000000000 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]) @@ -167,7 +167,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_lib, src/lib.sw:35:5 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 5503570629422409978 - test test_nested_panic_non_inlined ... ok (???, 1727 gas) + test test_nested_panic_non_inlined ... ok (???, 1733 gas) revert code: 8100000000000000 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -175,7 +175,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_lib, src/lib.sw:41:9 decoded log values: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]), log rb: 5503570629422409978 - test test_nested_panic_non_inlined_same_revert_code ... ok (???, 1727 gas) + test test_nested_panic_non_inlined_same_revert_code ... ok (???, 1733 gas) revert code: 8100000000000000 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -211,7 +211,7 @@ AsciiString { data: "generic panic with string" }, log rb: 10098701174489624218 └─ at panicking_lib, src/lib.sw:74:5 decoded log values: AsciiString { data: "generic panic with different string" }, log rb: 10098701174489624218 - test test_generic_panic_with_error_type_enum ... ok (???, 876 gas) + test test_generic_panic_with_error_type_enum ... ok (???, 882 gas) revert code: 8280000000000000 ├─ panic message: Error A. ├─ panic value: A @@ -219,7 +219,7 @@ AsciiString { data: "generic panic with different string" }, log rb: 10098701174 └─ at panicking_lib, src/lib.sw:74:5 decoded log values: A, log rb: 5503570629422409978 - test test_generic_panic_with_error_type_enum_different_variant_same_revert_code ... ok (???, 975 gas) + test test_generic_panic_with_error_type_enum_different_variant_same_revert_code ... ok (???, 983 gas) revert code: 8280000000000000 ├─ panic message: Error B. ├─ panic value: B(42) diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/panic_in_non_statement_positions/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/panic_in_non_statement_positions/stdout.snap index 69823175843..8d7e534dfa3 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/panic_in_non_statement_positions/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/panic_in_non_statement_positions/stdout.snap @@ -287,57 +287,57 @@ warning ____ Compiled library "panic_in_non_statement_positions" with 23 warnings. - Finished debug [unoptimized + fuel] target(s) [1.856 KB] in ??? + Finished debug [unoptimized + fuel] target(s) [1.976 KB] in ??? Running 16 tests, filtered 0 tests tested -- panic_in_non_statement_positions - test in_init ... ok (???, 1015 gas) + test in_init ... ok (???, 663 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_array ... ok (???, 1015 gas) + test in_array ... ok (???, 663 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_length_1_array ... ok (???, 1015 gas) + test in_length_1_array ... ok (???, 663 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_length_2_array_first ... ok (???, 1015 gas) + test in_length_2_array_first ... ok (???, 663 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_length_2_array_second ... ok (???, 1015 gas) + test in_length_2_array_second ... ok (???, 663 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_tuple ... ok (???, 1015 gas) + test in_tuple ... ok (???, 663 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_struct ... ok (???, 1015 gas) + test in_struct ... ok (???, 663 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_parentheses ... ok (???, 1015 gas) + test in_parentheses ... ok (???, 663 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_if_condition ... ok (???, 1015 gas) + test in_if_condition ... ok (???, 663 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_while_condition ... ok (???, 1015 gas) + test in_while_condition ... ok (???, 663 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_enum ... ok (???, 1015 gas) + test in_enum ... ok (???, 663 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_enum_multivariant ... ok (???, 1015 gas) + test in_enum_multivariant ... ok (???, 663 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_fun_arg ... ok (???, 1015 gas) + test in_fun_arg ... ok (???, 663 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_lazy_and ... ok (???, 1015 gas) + test in_lazy_and ... ok (???, 663 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_lazy_or ... ok (???, 1015 gas) + test in_lazy_or ... ok (???, 663 gas) decoded log values: E(42), log rb: 5087777005172090899 - test in_match_scrutinee ... ok (???, 1015 gas) + test in_match_scrutinee ... ok (???, 663 gas) decoded log values: E(42), log rb: 5087777005172090899 diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call/stdout.snap index 7d34101c64d..ced2169b723 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call/stdout.snap @@ -8,40 +8,40 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [26.672 KB] in ??? + Finished release [optimized + fuel] target(s) [25.928 KB] in ??? Running 29 tests, filtered 0 tests tested -- const_of_contract_call - test cost_of_in_bool ... ok (???, 11683 gas) - test cost_of_in_u8 ... ok (???, 11496 gas) - test cost_of_in_u16 ... ok (???, 11903 gas) - test cost_of_in_u32 ... ok (???, 12156 gas) - test cost_of_in_u64 ... ok (???, 11534 gas) - test cost_of_in_u256 ... ok (???, 11684 gas) - test cost_of_in_b256 ... ok (???, 11666 gas) - test cost_of_in_str_0 ... ok (???, 11893 gas) - test cost_of_in_str_1 ... ok (???, 12072 gas) - test cost_of_in_str_8 ... ok (???, 12091 gas) - test cost_of_in_str_16 ... ok (???, 12084 gas) - test cost_of_in_str_32 ... ok (???, 12098 gas) - test cost_of_in_array_0 ... ok (???, 11520 gas) - test cost_of_in_array_1 ... ok (???, 11798 gas) - test cost_of_in_array_8 ... ok (???, 13591 gas) - test cost_of_in_array_16 ... ok (???, 14481 gas) - test cost_of_in_array_32 ... ok (???, 17367 gas) - test cost_of_in_array_64 ... ok (???, 23177 gas) - test cost_of_in_tuple_0 ... ok (???, 11516 gas) - test cost_of_in_tuple_1 ... ok (???, 11999 gas) - test cost_of_in_tuple_2 ... ok (???, 12277 gas) - test cost_of_in_tuple_3 ... ok (???, 12529 gas) - test cost_of_in_tuple_4 ... ok (???, 12831 gas) - test in_struct_u64 ... ok (???, 11985 gas) - test in_struct_u64_u64 ... ok (???, 12264 gas) - test in_struct_u64_u64_u64 ... ok (???, 12523 gas) - test in_enum_u64 ... ok (???, 12338 gas) - test in_enum_u64_u64 ... ok (???, 12343 gas) - test in_enum_u64_u64_u64 ... ok (???, 12359 gas) + test cost_of_in_bool ... ok (???, 11523 gas) + test cost_of_in_u8 ... ok (???, 11338 gas) + test cost_of_in_u16 ... ok (???, 11743 gas) + test cost_of_in_u32 ... ok (???, 11998 gas) + test cost_of_in_u64 ... ok (???, 11372 gas) + test cost_of_in_u256 ... ok (???, 11526 gas) + test cost_of_in_b256 ... ok (???, 11508 gas) + test cost_of_in_str_0 ... ok (???, 11735 gas) + test cost_of_in_str_1 ... ok (???, 11914 gas) + test cost_of_in_str_8 ... ok (???, 11933 gas) + test cost_of_in_str_16 ... ok (???, 11926 gas) + test cost_of_in_str_32 ... ok (???, 11940 gas) + test cost_of_in_array_0 ... ok (???, 11362 gas) + test cost_of_in_array_1 ... ok (???, 11640 gas) + test cost_of_in_array_8 ... ok (???, 13433 gas) + test cost_of_in_array_16 ... ok (???, 14323 gas) + test cost_of_in_array_32 ... ok (???, 17209 gas) + test cost_of_in_array_64 ... ok (???, 23019 gas) + test cost_of_in_tuple_0 ... ok (???, 11358 gas) + test cost_of_in_tuple_1 ... ok (???, 11839 gas) + test cost_of_in_tuple_2 ... ok (???, 12119 gas) + test cost_of_in_tuple_3 ... ok (???, 12371 gas) + test cost_of_in_tuple_4 ... ok (???, 12673 gas) + test in_struct_u64 ... ok (???, 11539 gas) + test in_struct_u64_u64 ... ok (???, 11697 gas) + test in_struct_u64_u64_u64 ... ok (???, 11836 gas) + test in_enum_u64 ... ok (???, 11797 gas) + test in_enum_u64_u64 ... ok (???, 11794 gas) + test in_enum_u64_u64_u64 ... ok (???, 11810 gas) test result: OK. 29 passed; 0 failed; finished in ??? @@ -216,12 +216,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.504 KB] in ??? + Finished release [optimized + fuel] target(s) [1.432 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test in_enum_u64 ... ok (???, 11131 gas) + test in_enum_u64 ... ok (???, 10778 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -236,12 +236,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.608 KB] in ??? + Finished release [optimized + fuel] target(s) [1.536 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test in_enum_u64_u64 ... ok (???, 11161 gas) + test in_enum_u64_u64 ... ok (???, 10810 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -256,12 +256,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.752 KB] in ??? + Finished release [optimized + fuel] target(s) [1.68 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test in_enum_u64_u64_u64 ... ok (???, 11182 gas) + test in_enum_u64_u64_u64 ... ok (???, 10818 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -376,12 +376,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.352 KB] in ??? + Finished release [optimized + fuel] target(s) [1.256 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test in_struct_u64 ... ok (???, 10744 gas) + test in_struct_u64 ... ok (???, 10542 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -396,12 +396,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.456 KB] in ??? + Finished release [optimized + fuel] target(s) [1.36 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test in_struct_u64_u64 ... ok (???, 11072 gas) + test in_struct_u64_u64 ... ok (???, 10702 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -416,12 +416,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.512 KB] in ??? + Finished release [optimized + fuel] target(s) [1.424 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test in_struct_u64_u64_u64 ... ok (???, 11335 gas) + test in_struct_u64_u64_u64 ... ok (???, 10830 gas) test result: OK. 1 passed; 0 failed; finished in ??? From de6654092859e081e9318d50da86241ea80d7e02 Mon Sep 17 00:00:00 2001 From: Daniel Frederico Lins Leite Date: Fri, 21 Nov 2025 10:53:37 -0300 Subject: [PATCH 15/27] update tests --- .../array_of_structs_caller/src/main.sw | 2 +- .../require_contract_deployment/call_basic_storage/src/main.sw | 2 +- .../require_contract_deployment/caller_context_test/src/main.sw | 2 +- .../storage_access_caller/src/main.sw | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/array_of_structs_caller/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/array_of_structs_caller/src/main.sw index 1d8562bb38a..ab1da91d799 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/array_of_structs_caller/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/array_of_structs_caller/src/main.sw @@ -6,7 +6,7 @@ use std::hash::*; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0x14ed3cd06c2947248f69d54bfa681fe40d26267be84df7e19e253622b7921bbe; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0x1e1d89d5875879e9808a9aaa6355daf06caab07644c9e6e017cee6978714fe3e; // AUTO-CONTRACT-ID ../../test_contracts/array_of_structs_contract --release +const CONTRACT_ID = 0x6d297512e2d6f749e99ecdd1c7f3116febfd6669e266f530212cfbac5ff21d18; // AUTO-CONTRACT-ID ../../test_contracts/array_of_structs_contract --release fn get_address() -> Option { Some(CONTRACT_ID.into()) diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_basic_storage/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_basic_storage/src/main.sw index 1024cb5ab20..a304ea3faa8 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_basic_storage/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_basic_storage/src/main.sw @@ -4,7 +4,7 @@ use basic_storage_abi::{BasicStorage, Quad}; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0x94db39f409a31b9f2ebcadeea44378e419208c20de90f5d8e1e33dc1523754cb; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0xd0d47213c317fcd05e487f919298c1cda7f4408f6837cac9a63738ebefd5105b; // AUTO-CONTRACT-ID ../../test_contracts/basic_storage --release +const CONTRACT_ID = 0x82f47603bb3bf5405fcbe012138d5e94e22a1b20b0d9ad9572aea7708f7770c5; // AUTO-CONTRACT-ID ../../test_contracts/basic_storage --release fn main() -> u64 { let addr = abi(BasicStorage, CONTRACT_ID); diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/caller_context_test/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/caller_context_test/src/main.sw index 3557ca6ab73..2b54a67cd62 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/caller_context_test/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/caller_context_test/src/main.sw @@ -6,7 +6,7 @@ use context_testing_abi::*; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0x6054c11cda000f5990373a4d61929396165be4dfdd61d5b7bd26da60ab0d8577; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0x8c0a8521084c52e50d9fdb160c37d7794f667b6392b1a137c3d2e723f41bac68; // AUTO-CONTRACT-ID ../../test_contracts/context_testing_contract --release +const CONTRACT_ID = 0x40df1c650f64f506d88231b9e4321cf02d602196962bd5e1b45b703c903b662e; // AUTO-CONTRACT-ID ../../test_contracts/context_testing_contract --release fn main() -> bool { let gas: u64 = u64::max(); diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/storage_access_caller/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/storage_access_caller/src/main.sw index 6c42a3a24b1..224fea8ffe1 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/storage_access_caller/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/storage_access_caller/src/main.sw @@ -6,7 +6,7 @@ use std::hash::*; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0x3bc28acd66d327b8c1b9624c1fabfc07e9ffa1b5d71c2832c3bfaaf8f4b805e9; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0x41cb96888e22eb480abc7d14d2eb7e46e0b3577adbe9ddac6545a25322377eed; // AUTO-CONTRACT-ID ../../test_contracts/storage_access_contract --release +const CONTRACT_ID = 0x7c09f4b3cdd055f2e4de154302412219589b9faf3246fce6a4e3b9d5aa8148ce; // AUTO-CONTRACT-ID ../../test_contracts/storage_access_contract --release fn main() -> bool { let caller = abi(StorageAccess, CONTRACT_ID); From 6bb5d71adf9e88bdf39e78b5ae17dfe93980466e Mon Sep 17 00:00:00 2001 From: Daniel Frederico Lins Leite Date: Fri, 21 Nov 2025 12:21:40 -0300 Subject: [PATCH 16/27] more trivial types --- forc-plugins/forc-client/tests/deploy.rs | 8 ++++---- sway-lib-std/generate.sh | 13 ++++++++++--- sway-lib-std/src/codec.sw | 19 ++++--------------- 3 files changed, 18 insertions(+), 22 deletions(-) diff --git a/forc-plugins/forc-client/tests/deploy.rs b/forc-plugins/forc-client/tests/deploy.rs index 6d2f6d66608..d88c50a3b05 100644 --- a/forc-plugins/forc-client/tests/deploy.rs +++ b/forc-plugins/forc-client/tests/deploy.rs @@ -377,7 +377,7 @@ async fn test_simple_deploy() { node.kill().unwrap(); let expected = vec![DeployedPackage::Contract(DeployedContract { id: ContractId::from_str( - "e3e0f5c8c9585a7dc6673775a73104acc847905b5e7ea085db822241444fee7e", + "2105f7490b862ada104f4da5bfca173ad4ee1f2e5dae92c26665ddd5bb4a951f", ) .unwrap(), proxy: None, @@ -421,7 +421,7 @@ async fn test_deploy_submit_only() { node.kill().unwrap(); let expected = vec![DeployedPackage::Contract(DeployedContract { id: ContractId::from_str( - "e3e0f5c8c9585a7dc6673775a73104acc847905b5e7ea085db822241444fee7e", + "2105f7490b862ada104f4da5bfca173ad4ee1f2e5dae92c26665ddd5bb4a951f", ) .unwrap(), proxy: None, @@ -468,12 +468,12 @@ async fn test_deploy_fresh_proxy() { node.kill().unwrap(); let impl_contract = DeployedPackage::Contract(DeployedContract { id: ContractId::from_str( - "e3e0f5c8c9585a7dc6673775a73104acc847905b5e7ea085db822241444fee7e", + "2105f7490b862ada104f4da5bfca173ad4ee1f2e5dae92c26665ddd5bb4a951f", ) .unwrap(), proxy: Some( ContractId::from_str( - "92343c25e373958aee4cecfe58ab6533261b5f54de471291c22ee05182d39122", + "00802a2891db52f7a85183fe76c95804e2feb2c1831d755651e5179f777793ba", ) .unwrap(), ), diff --git a/sway-lib-std/generate.sh b/sway-lib-std/generate.sh index d94f610d42d..33030ded73b 100755 --- a/sway-lib-std/generate.sh +++ b/sway-lib-std/generate.sh @@ -13,7 +13,7 @@ remove_generated_code "ARRAY_ENCODE" "codec.sw" START=1 END=64 for ((i=END;i>=START;i--)); do - CODE="#[cfg(experimental_const_generics = false)]\nimpl AbiEncode for [T; $i] where T: AbiEncode { fn is_encode_trivial() -> bool { false } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; while i < $i { buffer = self[i].abi_encode(buffer); i += 1; }; buffer } }" + CODE="#[cfg(experimental_const_generics = false)]\nimpl AbiEncode for [T; $i] where T: AbiEncode { fn is_encode_trivial() -> bool { is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; let mut i = 0; while i < $i { buffer = self[i].abi_encode(buffer); i += 1; }; buffer } }" sed -i "s/\/\/ BEGIN ARRAY_ENCODE/\/\/ BEGIN ARRAY_ENCODE\n$CODE/g" ./src/codec.sw done @@ -21,7 +21,7 @@ remove_generated_code "ARRAY_DECODE" "codec.sw" START=1 END=64 for ((i=END;i>=START;i--)); do - CODE="#[cfg(experimental_const_generics = false)]\nimpl AbiDecode for [T; $i] where T: AbiDecode { fn is_decode_trivial() -> bool { false } fn abi_decode(ref mut buffer: BufferReader) -> [T; $i] { let first: T = buffer.decode::(); let mut array = [first; $i]; let mut i = 1; while i < $i { array[i] = buffer.decode::(); i += 1; }; array } }" + CODE="#[cfg(experimental_const_generics = false)]\nimpl AbiDecode for [T; $i] where T: AbiDecode { fn is_decode_trivial() -> bool { is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; $i] { let first: T = buffer.decode::(); let mut array = [first; $i]; let mut i = 1; while i < $i { array[i] = buffer.decode::(); i += 1; }; array } }" sed -i "s/\/\/ BEGIN ARRAY_DECODE/\/\/ BEGIN ARRAY_DECODE\n$CODE/g" ./src/codec.sw done @@ -64,7 +64,14 @@ generate_tuple_encode() { CODE="$CODE $element: AbiEncode, " done - CODE="$CODE{ fn is_encode_trivial() -> bool { false } fn abi_encode(self, buffer: Buffer) -> Buffer { " + ISTRIVIAL="" + for element in ${elements[@]} + do + ISTRIVIAL="$ISTRIVIAL \&\& is_encode_trivial::<$element>()\n" + done + ISTRIVIAL=$(echo $ISTRIVIAL | sort -nu) + + CODE="$CODE{ fn is_encode_trivial() -> bool { __runtime_mem_id::() == __encoding_mem_id::() $ISTRIVIAL } fn abi_encode(self, buffer: Buffer) -> Buffer { " i=0 for element in ${elements[@]} diff --git a/sway-lib-std/src/codec.sw b/sway-lib-std/src/codec.sw index 2be19dbd255..b8946c1f231 100644 --- a/sway-lib-std/src/codec.sw +++ b/sway-lib-std/src/codec.sw @@ -74,9 +74,6 @@ impl BufferReader { #[inline(always)] pub fn from_script_data() -> raw_ptr { - // let ptr = __gtf::(0, 0xA); // SCRIPT_DATA - // let _len = __gtf::(0, 0x4); // SCRIPT_DATA_LEN - // BufferReader { ptr } __gtf::(0, 0xA) } @@ -92,18 +89,8 @@ impl BufferReader { #[inline(always)] pub fn from_predicate_data_by_index(predicate_index: u64) -> raw_ptr { match __gtf::(predicate_index, 0x200) { // GTF_INPUT_TYPE - 0u8 => { - // let ptr = __gtf::(predicate_index, 0x20C); // INPUT_COIN_PREDICATE_DATA - // let _len = __gtf::(predicate_index, 0x20A); // INPUT_COIN_PREDICATE_DATA_LENGTH - // BufferReader { ptr } - __gtf::(predicate_index, 0x20C) - }, - 2u8 => { - // let ptr = __gtf::(predicate_index, 0x24A); // INPUT_MESSAGE_PREDICATE_DATA - // let _len = __gtf::(predicate_index, 0x247); // INPUT_MESSAGE_PREDICATE_DATA_LENGTH - // BufferReader { ptr } - __gtf::(predicate_index, 0x24A) - }, + 0u8 => __gtf::(predicate_index, 0x20C), + 2u8 => __gtf::(predicate_index, 0x24A), _ => __revert(0), } } @@ -283,6 +270,8 @@ impl AbiEncode for str { #[cfg(experimental_const_generics = true)] impl AbiEncode for str[N] { + // str[N] have alignments and paddings that make them not trivial + // for more information see comments on a test named: string_array fn is_encode_trivial() -> bool { false } From a3ab8ac6cd7448f9e1f59f1967d91b20b83e0dad Mon Sep 17 00:00:00 2001 From: Daniel Frederico Lins Leite Date: Fri, 21 Nov 2025 12:34:23 -0300 Subject: [PATCH 17/27] more trivial types --- sway-lib-std/generate.sh | 11 +- sway-lib-std/src/codec.sw | 360 +++++++++++++++++++------------------- 2 files changed, 188 insertions(+), 183 deletions(-) diff --git a/sway-lib-std/generate.sh b/sway-lib-std/generate.sh index 33030ded73b..81d6989b7d7 100755 --- a/sway-lib-std/generate.sh +++ b/sway-lib-std/generate.sh @@ -67,9 +67,8 @@ generate_tuple_encode() { ISTRIVIAL="" for element in ${elements[@]} do - ISTRIVIAL="$ISTRIVIAL \&\& is_encode_trivial::<$element>()\n" + ISTRIVIAL="$ISTRIVIAL \&\& is_encode_trivial::<$element>()" done - ISTRIVIAL=$(echo $ISTRIVIAL | sort -nu) CODE="$CODE{ fn is_encode_trivial() -> bool { __runtime_mem_id::() == __encoding_mem_id::() $ISTRIVIAL } fn abi_encode(self, buffer: Buffer) -> Buffer { " @@ -136,7 +135,13 @@ generate_tuple_decode() { CODE="$CODE $element: AbiDecode, " done - CODE="$CODE{ fn is_decode_trivial() -> bool { false } fn abi_decode(ref mut buffer: BufferReader) -> Self { (" + ISTRIVIAL="" + for element in ${elements[@]} + do + ISTRIVIAL="$ISTRIVIAL \&\& is_decode_trivial::<$element>()" + done + + CODE="$CODE{ fn is_decode_trivial() -> bool { __runtime_mem_id::() == __encoding_mem_id::() $ISTRIVIA } fn abi_decode(ref mut buffer: BufferReader) -> Self { (" for element in ${elements[@]} do diff --git a/sway-lib-std/src/codec.sw b/sway-lib-std/src/codec.sw index b8946c1f231..0d8d3824f23 100644 --- a/sway-lib-std/src/codec.sw +++ b/sway-lib-std/src/codec.sw @@ -1053,7 +1053,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1071,7 +1071,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1089,7 +1089,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1107,7 +1107,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1125,7 +1125,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1143,7 +1143,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1161,7 +1161,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1179,7 +1179,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1197,7 +1197,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1215,7 +1215,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1233,7 +1233,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1251,7 +1251,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1269,7 +1269,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1287,7 +1287,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1305,7 +1305,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1323,7 +1323,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1341,7 +1341,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1359,7 +1359,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1377,7 +1377,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1395,7 +1395,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1413,7 +1413,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1431,7 +1431,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1449,7 +1449,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1467,7 +1467,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1485,7 +1485,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1503,7 +1503,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1521,7 +1521,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1539,7 +1539,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1557,7 +1557,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1575,7 +1575,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1593,7 +1593,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1611,7 +1611,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1629,7 +1629,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1647,7 +1647,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1665,7 +1665,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1683,7 +1683,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1701,7 +1701,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1719,7 +1719,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1737,7 +1737,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1755,7 +1755,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1773,7 +1773,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1791,7 +1791,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1809,7 +1809,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1827,7 +1827,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1845,7 +1845,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1863,7 +1863,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1881,7 +1881,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1899,7 +1899,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1917,7 +1917,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1935,7 +1935,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1953,7 +1953,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1971,7 +1971,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -1989,7 +1989,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -2007,7 +2007,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -2025,7 +2025,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -2043,7 +2043,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -2061,7 +2061,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -2079,7 +2079,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -2097,7 +2097,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -2115,7 +2115,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -2133,7 +2133,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -2151,7 +2151,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -2169,7 +2169,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -2187,7 +2187,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let mut buffer = buffer; @@ -2218,7 +2218,7 @@ where A: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -2231,7 +2231,7 @@ where B: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -2246,7 +2246,7 @@ where C: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -2263,7 +2263,7 @@ where D: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -2282,7 +2282,7 @@ where E: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -2303,7 +2303,7 @@ where F: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -2326,7 +2326,7 @@ where G: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -2351,7 +2351,7 @@ where H: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -2378,7 +2378,7 @@ where I: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -2407,7 +2407,7 @@ where J: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -2438,7 +2438,7 @@ where K: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -2471,7 +2471,7 @@ where L: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -2506,7 +2506,7 @@ where M: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -2543,7 +2543,7 @@ where N: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -2582,7 +2582,7 @@ where O: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -2623,7 +2623,7 @@ where P: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::

() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -2711,7 +2711,7 @@ where R: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::

() && is_encode_trivial::() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -2758,7 +2758,7 @@ where S: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::

() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -2807,7 +2807,7 @@ where T: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::

() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -2858,7 +2858,7 @@ where U: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::

() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -2911,7 +2911,7 @@ where V: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::

() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -2966,7 +2966,7 @@ where W: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::

() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -3023,7 +3023,7 @@ where X: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::

() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -3082,7 +3082,7 @@ where Y: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::

() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -3143,7 +3143,7 @@ where Z: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::

() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -4214,7 +4214,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 1] { let first: T = buffer.decode::(); @@ -4233,7 +4233,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 2] { let first: T = buffer.decode::(); @@ -4252,7 +4252,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 3] { let first: T = buffer.decode::(); @@ -4271,7 +4271,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 4] { let first: T = buffer.decode::(); @@ -4290,7 +4290,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 5] { let first: T = buffer.decode::(); @@ -4309,7 +4309,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 6] { let first: T = buffer.decode::(); @@ -4328,7 +4328,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 7] { let first: T = buffer.decode::(); @@ -4347,7 +4347,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 8] { let first: T = buffer.decode::(); @@ -4366,7 +4366,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 9] { let first: T = buffer.decode::(); @@ -4385,7 +4385,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 10] { let first: T = buffer.decode::(); @@ -4404,7 +4404,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 11] { let first: T = buffer.decode::(); @@ -4423,7 +4423,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 12] { let first: T = buffer.decode::(); @@ -4442,7 +4442,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 13] { let first: T = buffer.decode::(); @@ -4461,7 +4461,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 14] { let first: T = buffer.decode::(); @@ -4480,7 +4480,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 15] { let first: T = buffer.decode::(); @@ -4499,7 +4499,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 16] { let first: T = buffer.decode::(); @@ -4518,7 +4518,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 17] { let first: T = buffer.decode::(); @@ -4537,7 +4537,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 18] { let first: T = buffer.decode::(); @@ -4556,7 +4556,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 19] { let first: T = buffer.decode::(); @@ -4575,7 +4575,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 20] { let first: T = buffer.decode::(); @@ -4594,7 +4594,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 21] { let first: T = buffer.decode::(); @@ -4613,7 +4613,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 22] { let first: T = buffer.decode::(); @@ -4632,7 +4632,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 23] { let first: T = buffer.decode::(); @@ -4651,7 +4651,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 24] { let first: T = buffer.decode::(); @@ -4670,7 +4670,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 25] { let first: T = buffer.decode::(); @@ -4689,7 +4689,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 26] { let first: T = buffer.decode::(); @@ -4708,7 +4708,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 27] { let first: T = buffer.decode::(); @@ -4727,7 +4727,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 28] { let first: T = buffer.decode::(); @@ -4746,7 +4746,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 29] { let first: T = buffer.decode::(); @@ -4765,7 +4765,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 30] { let first: T = buffer.decode::(); @@ -4784,7 +4784,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 31] { let first: T = buffer.decode::(); @@ -4803,7 +4803,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 32] { let first: T = buffer.decode::(); @@ -4822,7 +4822,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 33] { let first: T = buffer.decode::(); @@ -4841,7 +4841,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 34] { let first: T = buffer.decode::(); @@ -4860,7 +4860,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 35] { let first: T = buffer.decode::(); @@ -4879,7 +4879,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 36] { let first: T = buffer.decode::(); @@ -4898,7 +4898,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 37] { let first: T = buffer.decode::(); @@ -4917,7 +4917,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 38] { let first: T = buffer.decode::(); @@ -4936,7 +4936,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 39] { let first: T = buffer.decode::(); @@ -4955,7 +4955,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 40] { let first: T = buffer.decode::(); @@ -4974,7 +4974,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 41] { let first: T = buffer.decode::(); @@ -4993,7 +4993,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 42] { let first: T = buffer.decode::(); @@ -5012,7 +5012,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 43] { let first: T = buffer.decode::(); @@ -5031,7 +5031,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 44] { let first: T = buffer.decode::(); @@ -5050,7 +5050,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 45] { let first: T = buffer.decode::(); @@ -5069,7 +5069,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 46] { let first: T = buffer.decode::(); @@ -5088,7 +5088,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 47] { let first: T = buffer.decode::(); @@ -5107,7 +5107,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 48] { let first: T = buffer.decode::(); @@ -5126,7 +5126,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 49] { let first: T = buffer.decode::(); @@ -5145,7 +5145,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 50] { let first: T = buffer.decode::(); @@ -5164,7 +5164,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 51] { let first: T = buffer.decode::(); @@ -5183,7 +5183,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 52] { let first: T = buffer.decode::(); @@ -5202,7 +5202,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 53] { let first: T = buffer.decode::(); @@ -5221,7 +5221,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 54] { let first: T = buffer.decode::(); @@ -5240,7 +5240,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 55] { let first: T = buffer.decode::(); @@ -5259,7 +5259,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 56] { let first: T = buffer.decode::(); @@ -5278,7 +5278,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 57] { let first: T = buffer.decode::(); @@ -5297,7 +5297,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 58] { let first: T = buffer.decode::(); @@ -5316,7 +5316,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 59] { let first: T = buffer.decode::(); @@ -5335,7 +5335,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 60] { let first: T = buffer.decode::(); @@ -5354,7 +5354,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 61] { let first: T = buffer.decode::(); @@ -5373,7 +5373,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 62] { let first: T = buffer.decode::(); @@ -5392,7 +5392,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 63] { let first: T = buffer.decode::(); @@ -5411,7 +5411,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> [T; 64] { let first: T = buffer.decode::(); @@ -5441,7 +5441,7 @@ where A: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { (A::abi_decode(buffer), ) @@ -5453,7 +5453,7 @@ where B: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { (A::abi_decode(buffer), B::abi_decode(buffer)) @@ -5466,7 +5466,7 @@ where C: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { (A::abi_decode(buffer), B::abi_decode(buffer), C::abi_decode(buffer)) @@ -5480,7 +5480,7 @@ where D: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5500,7 +5500,7 @@ where E: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5522,7 +5522,7 @@ where F: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5546,7 +5546,7 @@ where G: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5572,7 +5572,7 @@ where H: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5600,7 +5600,7 @@ where I: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5630,7 +5630,7 @@ where J: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5662,7 +5662,7 @@ where K: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5696,7 +5696,7 @@ where L: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5732,7 +5732,7 @@ where M: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5770,7 +5770,7 @@ where N: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5810,7 +5810,7 @@ where O: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5852,7 +5852,7 @@ where P: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5896,7 +5896,7 @@ where Q: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5942,7 +5942,7 @@ where R: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5990,7 +5990,7 @@ where S: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -6040,7 +6040,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -6092,7 +6092,7 @@ where U: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -6146,7 +6146,7 @@ where V: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -6202,7 +6202,7 @@ where W: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -6260,7 +6260,7 @@ where X: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -6320,7 +6320,7 @@ where Y: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -6382,7 +6382,7 @@ where Z: AbiDecode, { fn is_decode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( From ba9822927bd2a4d04bf05cb3e9d2483b26553a03 Mon Sep 17 00:00:00 2001 From: Daniel Frederico Lins Leite Date: Fri, 21 Nov 2025 13:01:34 -0300 Subject: [PATCH 18/27] update tests --- .../json_abi_oracle_new_encoding.release.json | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_consts/json_abi_oracle_new_encoding.release.json b/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_consts/json_abi_oracle_new_encoding.release.json index dcbe9941ccc..d70f40298c6 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_consts/json_abi_oracle_new_encoding.release.json +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_consts/json_abi_oracle_new_encoding.release.json @@ -63,97 +63,97 @@ "concreteTypeId": "b760f44fa5965c2474a3b471467a22c43185152129295af588b022ae50b50903", "indirect": false, "name": "BOOL", - "offset": 4608 + "offset": 4408 }, { "concreteTypeId": "c89951a24c6ca28c13fd1cfdc646b2b656d69e61a92b91023be7eb58eb914b6b", "indirect": false, "name": "U8", - "offset": 4800 + "offset": 4600 }, { "concreteTypeId": "c89951a24c6ca28c13fd1cfdc646b2b656d69e61a92b91023be7eb58eb914b6b", "indirect": false, "name": "ANOTHER_U8", - "offset": 4536 + "offset": 4336 }, { "concreteTypeId": "29881aad8730c5ab11d275376323d8e4ff4179aae8ccb6c13fe4902137e162ef", "indirect": false, "name": "U16", - "offset": 4744 + "offset": 4544 }, { "concreteTypeId": "d7649d428b9ff33d188ecbf38a7e4d8fd167fa01b2e10fe9a8f9308e52f1d7cc", "indirect": false, "name": "U32", - "offset": 4784 + "offset": 4584 }, { "concreteTypeId": "d7649d428b9ff33d188ecbf38a7e4d8fd167fa01b2e10fe9a8f9308e52f1d7cc", "indirect": false, "name": "U64", - "offset": 4792 + "offset": 4592 }, { "concreteTypeId": "1b5759d94094368cfd443019e7ca5ec4074300e544e5ea993a979f5da627261e", "indirect": false, "name": "U256", - "offset": 4752 + "offset": 4552 }, { "concreteTypeId": "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b", "indirect": false, "name": "B256", - "offset": 4576 + "offset": 4376 }, { "concreteTypeId": "81fc10c4681a3271cf2d66b2ec6fbc8ed007a442652930844fcf11818c295bff", "indirect": false, "name": "CONFIGURABLE_STRUCT", - "offset": 4696 + "offset": 4496 }, { "concreteTypeId": "a2922861f03be8a650595dd76455b95383a61b46dd418f02607fa2e00dc39d5c", "indirect": false, "name": "CONFIGURABLE_ENUM_A", - "offset": 4616 + "offset": 4416 }, { "concreteTypeId": "a2922861f03be8a650595dd76455b95383a61b46dd418f02607fa2e00dc39d5c", "indirect": false, "name": "CONFIGURABLE_ENUM_B", - "offset": 4656 + "offset": 4456 }, { "concreteTypeId": "4926d35d1a5157936b0a29bc126b8aace6d911209a5c130e9b716b0c73643ea6", "indirect": false, "name": "ARRAY_BOOL", - "offset": 4544 + "offset": 4344 }, { "concreteTypeId": "776fb5a3824169d6736138565fdc20aad684d9111266a5ff6d5c675280b7e199", "indirect": false, "name": "ARRAY_U64", - "offset": 4552 + "offset": 4352 }, { "concreteTypeId": "c998ca9a5f221fe7b5c66ae70c8a9562b86d964408b00d17f883c906bc1fe4be", "indirect": false, "name": "TUPLE_BOOL_U64", - "offset": 4728 + "offset": 4528 }, { "concreteTypeId": "94f0fa95c830be5e4f711963e83259fe7e8bc723278ab6ec34449e791a99b53a", "indirect": false, "name": "STR_4", - "offset": 4720 + "offset": 4520 }, { "concreteTypeId": "c89951a24c6ca28c13fd1cfdc646b2b656d69e61a92b91023be7eb58eb914b6b", "indirect": false, "name": "NOT_USED", - "offset": 4712 + "offset": 4512 } ], "encodingVersion": "1", From 3fb9d593f7a994371bb64427f2b927b62f583cdf Mon Sep 17 00:00:00 2001 From: Daniel Frederico Lins Leite Date: Fri, 21 Nov 2025 13:02:38 -0300 Subject: [PATCH 19/27] update tests --- .../array_of_structs_caller/src/main.sw | 2 +- .../require_contract_deployment/asset_ops_test/src/main.sw | 2 +- .../call_abi_with_tuples/src/main.sw | 2 +- .../require_contract_deployment/call_basic_storage/src/main.sw | 2 +- .../call_contract_with_type_aliases/src/main.sw | 2 +- .../call_increment_contract/src/main.sw | 2 +- .../require_contract_deployment/caller_context_test/src/main.sw | 2 +- .../nested_struct_args_caller/src/main.sw | 2 +- .../storage_access_caller/src/main.sw | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/array_of_structs_caller/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/array_of_structs_caller/src/main.sw index ab1da91d799..b1d00c3e5cf 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/array_of_structs_caller/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/array_of_structs_caller/src/main.sw @@ -6,7 +6,7 @@ use std::hash::*; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0x14ed3cd06c2947248f69d54bfa681fe40d26267be84df7e19e253622b7921bbe; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0x6d297512e2d6f749e99ecdd1c7f3116febfd6669e266f530212cfbac5ff21d18; // AUTO-CONTRACT-ID ../../test_contracts/array_of_structs_contract --release +const CONTRACT_ID = 0xc4b8bded498f485ba3a464cc4fa5422c46f0075d2deab484a16fb1d5053b578c; // AUTO-CONTRACT-ID ../../test_contracts/array_of_structs_contract --release fn get_address() -> Option { Some(CONTRACT_ID.into()) diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/asset_ops_test/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/asset_ops_test/src/main.sw index 5aeba8134f9..1c13b2c38b5 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/asset_ops_test/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/asset_ops_test/src/main.sw @@ -9,7 +9,7 @@ use test_fuel_coin_abi::*; #[cfg(experimental_new_encoding = false)] const FUEL_COIN_CONTRACT_ID = 0xec2277ebe007ade87e3d797c3b1e070dcd542d5ef8f038b471f262ef9cebc87c; #[cfg(experimental_new_encoding = true)] -const FUEL_COIN_CONTRACT_ID = 0x019a2c24d20edd8a4e657f29f2ef0442886fad8d58fc8f148c4b4f7cf698f6f9; // AUTO-CONTRACT-ID ../../test_contracts/test_fuel_coin_contract --release +const FUEL_COIN_CONTRACT_ID = 0x81114b99801793bccd9f6910b877a08017e774796f51f0214ac31f613771c3a8; // AUTO-CONTRACT-ID ../../test_contracts/test_fuel_coin_contract --release #[cfg(experimental_new_encoding = false)] const BALANCE_CONTRACT_ID = 0xf6cd545152ac83225e8e7df2efb5c6fa6e37bc9b9e977b5ea8103d28668925df; diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_abi_with_tuples/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_abi_with_tuples/src/main.sw index 1889abd6d4e..eb96eacfb6c 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_abi_with_tuples/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_abi_with_tuples/src/main.sw @@ -6,7 +6,7 @@ use abi_with_tuples::{MyContract, Location, Person}; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0xfdc14550c8aee742cd556d0ab7f378b7be0d3b1e6e086c097352e94590d4ed02; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0x068c2cf8b47b8a5fdd51cc392f2da252dc5f37973e055022ba2bdf65d4e9fa2e; // AUTO-CONTRACT-ID ../../test_contracts/abi_with_tuples_contract --release +const CONTRACT_ID = 0x98d52336c320159daf918a4d2f87401e3b8d9f3c84b1c32104b5ee163e40dbe4; // AUTO-CONTRACT-ID ../../test_contracts/abi_with_tuples_contract --release fn main() -> bool { let the_abi = abi(MyContract, CONTRACT_ID); diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_basic_storage/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_basic_storage/src/main.sw index a304ea3faa8..77daa1f8171 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_basic_storage/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_basic_storage/src/main.sw @@ -4,7 +4,7 @@ use basic_storage_abi::{BasicStorage, Quad}; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0x94db39f409a31b9f2ebcadeea44378e419208c20de90f5d8e1e33dc1523754cb; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0x82f47603bb3bf5405fcbe012138d5e94e22a1b20b0d9ad9572aea7708f7770c5; // AUTO-CONTRACT-ID ../../test_contracts/basic_storage --release +const CONTRACT_ID = 0x6cb2040c222f09ded36f53bb229f2f273f490d9b3eb4b3afd89814df4624f403; // AUTO-CONTRACT-ID ../../test_contracts/basic_storage --release fn main() -> u64 { let addr = abi(BasicStorage, CONTRACT_ID); diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_contract_with_type_aliases/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_contract_with_type_aliases/src/main.sw index 5510a3fe600..acb7d51eae2 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_contract_with_type_aliases/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_contract_with_type_aliases/src/main.sw @@ -5,7 +5,7 @@ use contract_with_type_aliases_abi::*; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0x0cbeb6efe3104b460be769bdc4ea101ebf16ccc16f2d7b667ec3e1c7f5ce35b5; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0x4db16ddb761462809edf79a19b39b80997a2dbf6b5b4005fc242de45aafa8304; // AUTO-CONTRACT-ID ../../test_contracts/contract_with_type_aliases --release +const CONTRACT_ID = 0xf6a0b274b90eca9200b907be431e492c0881d4a024a0736e79081f0bdc159574; // AUTO-CONTRACT-ID ../../test_contracts/contract_with_type_aliases --release fn main() { let caller = abi(MyContract, CONTRACT_ID); diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_increment_contract/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_increment_contract/src/main.sw index e83141b2635..7c689c47f21 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_increment_contract/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_increment_contract/src/main.sw @@ -6,7 +6,7 @@ use dynamic_contract_call::*; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0xd1b4047af7ef111c023ab71069e01dc2abfde487c0a0ce1268e4f447e6c6e4c2; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0xd2ab0bac5310cec9f8efadf63b24f9f49c3bd575ed3d31ba6b1a7a597bc3f016; // AUTO-CONTRACT-ID ../../test_contracts/increment_contract --release +const CONTRACT_ID = 0xe653ffa93aec77d0fe59344134b1fb6253d999886eb8d0f43751a19fccb6f997; // AUTO-CONTRACT-ID ../../test_contracts/increment_contract --release fn main() -> bool { let the_abi = abi(Incrementor, CONTRACT_ID); diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/caller_context_test/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/caller_context_test/src/main.sw index 2b54a67cd62..09882c3e82b 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/caller_context_test/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/caller_context_test/src/main.sw @@ -6,7 +6,7 @@ use context_testing_abi::*; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0x6054c11cda000f5990373a4d61929396165be4dfdd61d5b7bd26da60ab0d8577; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0x40df1c650f64f506d88231b9e4321cf02d602196962bd5e1b45b703c903b662e; // AUTO-CONTRACT-ID ../../test_contracts/context_testing_contract --release +const CONTRACT_ID = 0x5c30fd73b7c199ee05027d969778afb842994751df73577c30a14afc75df0bb2; // AUTO-CONTRACT-ID ../../test_contracts/context_testing_contract --release fn main() -> bool { let gas: u64 = u64::max(); diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/nested_struct_args_caller/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/nested_struct_args_caller/src/main.sw index 95f57ce0715..19c145a130e 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/nested_struct_args_caller/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/nested_struct_args_caller/src/main.sw @@ -5,7 +5,7 @@ use nested_struct_args_abi::*; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0xe63d33a1b3a6903808b379f6a41a72fa8a370e8b76626775e7d9d2f9c4c5da40; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0x21c061779100f9201d1d42d858f3b7974729ecf2db59b212dee596882a6b5ac5; // AUTO-CONTRACT-ID ../../test_contracts/nested_struct_args_contract --release +const CONTRACT_ID = 0x9d7fb4ad635265fc55a5c9eca1b5569785a9cbdae8dd05c50087292f2e3f4260; // AUTO-CONTRACT-ID ../../test_contracts/nested_struct_args_contract --release fn main() -> bool { let caller = abi(NestedStructArgs, CONTRACT_ID); diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/storage_access_caller/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/storage_access_caller/src/main.sw index 224fea8ffe1..44e91f89a11 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/storage_access_caller/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/storage_access_caller/src/main.sw @@ -6,7 +6,7 @@ use std::hash::*; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0x3bc28acd66d327b8c1b9624c1fabfc07e9ffa1b5d71c2832c3bfaaf8f4b805e9; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0x7c09f4b3cdd055f2e4de154302412219589b9faf3246fce6a4e3b9d5aa8148ce; // AUTO-CONTRACT-ID ../../test_contracts/storage_access_contract --release +const CONTRACT_ID = 0x08259a690a4209743bb3be3bb6a400077f9d360d3e250d2cf11443a3563bbdb6; // AUTO-CONTRACT-ID ../../test_contracts/storage_access_contract --release fn main() -> bool { let caller = abi(StorageAccess, CONTRACT_ID); From ed22272e67adb279647d3ed02cbe292b21a94f9f Mon Sep 17 00:00:00 2001 From: Daniel Frederico Lins Leite Date: Fri, 21 Nov 2025 13:25:09 -0300 Subject: [PATCH 20/27] update tests --- .../language/array/array_repeat/stdout.snap | 24 +- .../configurable_dedup_decode/stdout.snap | 187 +- .../language/const_generics/stdout.snap | 3 +- .../should_pass/language/logging/stdout.snap | 68 +- .../main_args/main_args_one_u64/stdout.snap | 199 +- .../main_args/main_args_two_u64/stdout.snap | 251 +- .../main_args_various_types/stdout.snap | 2560 +++++++++-------- .../panicking_contract/stdout.snap | 32 +- .../panicking_lib/stdout.snap | 18 +- .../panicking_script/stdout.snap | 2 +- .../const_of_contract_call/stdout.snap | 156 +- 11 files changed, 1674 insertions(+), 1826 deletions(-) diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/array/array_repeat/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/array/array_repeat/stdout.snap index 1dbd21ee5e4..7902c446148 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/array/array_repeat/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/array/array_repeat/stdout.snap @@ -495,11 +495,11 @@ script { !116 = span !109 1257 1262 !117 = (!107 !108 !110 !111 !116) !118 = "test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-assert/src/codec.sw" -!119 = span !118 81768 82193 -!120 = fn_name_span !118 81775 81785 +!119 = span !118 93590 94015 +!120 = fn_name_span !118 93597 93607 !121 = (!119 !120 !48) -!122 = span !118 81952 81962 -!123 = fn_call_path_span !118 81957 81960 +!122 = span !118 93774 93784 +!123 = fn_call_path_span !118 93779 93782 !124 = span !109 2911 2927 !125 = fn_call_path_span !109 2911 2921 !126 = (!122 !123 !124 !125) @@ -508,22 +508,22 @@ script { !129 = (!122 !123) !130 = span !109 2928 2929 !131 = (!122 !123 !130) -!132 = span !118 81931 82046 -!133 = span !118 81978 81987 -!134 = span !118 82001 82016 +!132 = span !118 93753 93868 +!133 = span !118 93800 93809 +!134 = span !118 93823 93838 !135 = "test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-assert/src/logging.sw" !136 = span !135 591 596 !137 = span !135 577 651 !138 = fn_name_span !135 584 587 !139 = (!137 !138) !140 = span !135 642 647 -!141 = span !118 80995 80999 +!141 = span !118 92817 92821 !142 = (!140 !141) -!143 = span !118 80973 81088 +!143 = span !118 92795 92910 !144 = (!140 !143) -!145 = span !118 81015 81024 -!146 = span !118 81038 81053 -!147 = span !118 81105 81116 +!145 = span !118 92837 92846 +!146 = span !118 92860 92875 +!147 = span !118 92927 92938 !148 = (!140 !147) !149 = (!140 !147) !150 = (!140 !147) diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/stdout.snap index 91e50d19e4b..df13273fa2e 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/stdout.snap @@ -15,74 +15,40 @@ library { // IR: Final script { TUPLE = config { u64 }, abi_decode_in_place_0, 0x0000000000000002, !1 - WRAPPED = config { u64 }, abi_decode_in_place_7, 0x0000000000000001, !2 + WRAPPED = config { u64 }, abi_decode_in_place_0, 0x0000000000000001, !2 pub fn abi_decode_in_place_0(ptr !4: ptr, len !5: u64, target !6: ptr) -> (), !10 { - local mut { ptr } buffer - local { u64 } temp - - entry(ptr: ptr, len: u64, target: ptr): - v0 = get_local __ptr { ptr }, buffer, !14 - v1 = const u64 0 - v2 = get_elem_ptr v0, __ptr ptr, v1, !15 - store ptr to v2, !16 - v3 = get_local __ptr { ptr }, buffer, !17 - v4 = const u64 0 - v5 = get_elem_ptr v3, __ptr ptr, v4, !25 - v6 = load v5, !26 - v7 = asm(ptr: v6, val) -> u64 val, !28 { - lw val ptr i0, !29 - } - v8 = load v5, !30 - v9 = const u64 8, !31 - v10 = add v8, v9, !32 - store v10 to v5, !34 - v11 = get_local __ptr { u64 }, temp, !36 - v12 = const u64 0 - v13 = get_elem_ptr v11, __ptr u64, v12, !37 - store v7 to v13, !38 - v14 = get_local __ptr { u64 }, temp, !39 - v15 = cast_ptr v14 to ptr, !40 - v16 = const u64 8 - v17 = asm(target: target, temp: v15, size: v16) -> (), !41 { - mcp target temp size, !42 - } - v18 = const unit () - ret () v18 - } - - pub fn abi_decode_in_place_7(ptr !4: ptr, len !5: u64, target !6: ptr) -> (), !43 { entry(ptr: ptr, len: u64, target: ptr): - v0 = asm(src: ptr, target: target, len: len) -> (), !44 { - mcp target src len, !45 + v0 = asm(src: ptr, target: target, len: len) -> (), !11 { + mcp target src len, !12 } v1 = const unit () ret () v1 } - pub entry fn __entry() -> __ptr never, !49 { + pub entry fn __entry() -> __ptr never, !16 { local u64 _result entry(): - v0 = call main_15(), !52 - v1 = get_local __ptr u64, _result, !53 - store v0 to v1, !53 - v2 = get_local __ptr u64, _result, !54 + v0 = call main_15(), !19 + v1 = get_local __ptr u64, _result, !20 + store v0 to v1, !20 + v2 = get_local __ptr u64, _result, !21 v3 = const u64 8 - retd v2 v3, !58 + retd v2 v3, !25 } - entry_orig fn main_15() -> u64, !61 { + entry_orig fn main_15() -> u64, !28 { entry(): - v0 = get_config __ptr { u64 }, WRAPPED, !62 + v0 = get_config __ptr { u64 }, WRAPPED, !29 v1 = const u64 0 - v2 = get_elem_ptr v0, __ptr u64, v1, !63 + v2 = get_elem_ptr v0, __ptr u64, v1, !30 v3 = load v2 - v4 = get_config __ptr { u64 }, TUPLE, !64 + v4 = get_config __ptr { u64 }, TUPLE, !31 v5 = const u64 0 - v6 = get_elem_ptr v4, __ptr u64, v5, !65 + v6 = get_elem_ptr v4, __ptr u64, v5, !32 v7 = load v6 - v8 = add v3, v7, !68 + v8 = add v3, v7, !35 ret u64 v8 } } @@ -91,71 +57,38 @@ script { !1 = span !0 177 182 !2 = span !0 136 143 !3 = "sway-lib-std/src/codec.sw" -!4 = span !3 82242 82245 -!5 = span !3 82256 82259 -!6 = span !3 82266 82272 -!7 = span !3 82212 82726 -!8 = fn_name_span !3 82219 82238 +!4 = span !3 94064 94067 +!5 = span !3 94078 94081 +!6 = span !3 94088 94094 +!7 = span !3 94034 94548 +!8 = fn_name_span !3 94041 94060 !9 = inline "never" !10 = (!7 !8 !9) -!11 = span !3 82473 82507 -!12 = fn_call_path_span !3 82473 82497 -!13 = span !3 739 759 -!14 = (!11 !12 !13) -!15 = (!11 !12) -!16 = (!11 !12 !13) -!17 = span !3 82542 82548 -!18 = span !3 82528 82549 -!19 = fn_call_path_span !3 82528 82541 -!20 = span !3 134798 134819 -!21 = fn_call_path_span !3 134798 134811 -!22 = span !3 83379 83407 -!23 = fn_call_path_span !3 83386 83398 -!24 = span !3 625 641 -!25 = (!18 !19 !20 !21 !22 !23 !24) -!26 = (!18 !19 !20 !21 !22 !23) -!27 = span !3 2927 3008 -!28 = (!18 !19 !20 !21 !22 !23 !27) -!29 = span !3 2965 2978 -!30 = (!18 !19 !20 !21 !22 !23) -!31 = (!18 !19 !20 !21 !22 !23) -!32 = (!18 !19 !20 !21 !22 !23) -!33 = span !3 3018 3057 -!34 = (!18 !19 !20 !21 !22 !23 !33) -!35 = span !3 134797 134822 -!36 = (!18 !19 !35) -!37 = (!18 !19 !35) -!38 = (!18 !19 !35) -!39 = span !3 82620 82624 -!40 = span !3 82610 82625 -!41 = span !3 82559 82718 -!42 = span !3 82687 82707 -!43 = (!7 !8 !9) -!44 = span !3 82351 82434 -!45 = span !3 82405 82423 -!46 = "test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/src/main..sw" -!47 = span !46 0 131 -!48 = fn_name_span !46 7 14 -!49 = (!47 !48) -!50 = span !46 59 65 -!51 = fn_call_path_span !46 59 63 -!52 = (!50 !51) -!53 = span !46 40 66 -!54 = span !46 109 116 -!55 = span !46 83 117 -!56 = fn_call_path_span !46 83 100 -!57 = span !3 81408 81434 -!58 = (!55 !56 !57) -!59 = span !0 202 246 -!60 = fn_name_span !0 205 209 -!61 = (!59 !60) -!62 = span !0 225 232 -!63 = span !0 30 36 -!64 = span !0 237 242 -!65 = span !0 243 244 -!66 = span !0 225 244 -!67 = fn_call_path_span !0 235 236 -!68 = (!66 !67) +!11 = span !3 94173 94256 +!12 = span !3 94227 94245 +!13 = "test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_dedup_decode/src/main..sw" +!14 = span !13 0 131 +!15 = fn_name_span !13 7 14 +!16 = (!14 !15) +!17 = span !13 59 65 +!18 = fn_call_path_span !13 59 63 +!19 = (!17 !18) +!20 = span !13 40 66 +!21 = span !13 109 116 +!22 = span !13 83 117 +!23 = fn_call_path_span !13 83 100 +!24 = span !3 93230 93256 +!25 = (!22 !23 !24) +!26 = span !0 202 246 +!27 = fn_name_span !0 205 209 +!28 = (!26 !27) +!29 = span !0 225 232 +!30 = span !0 30 36 +!31 = span !0 237 242 +!32 = span !0 243 244 +!33 = span !0 225 244 +!34 = fn_call_path_span !0 235 236 +!35 = (!33 !34) ;; ASM: Final program ;; Program kind: Script @@ -176,38 +109,16 @@ jal $$reta $pc i12 ; decode configurable TUPLE addr $$arg0 data_Configurable_1; get pointer to configurable WRAPPED default value addi $$arg1 $zero i8 ; get length of configurable WRAPPED default value addi $$arg2 $ssp i8 ; get pointer to configurable WRAPPED stack address -jal $$reta $pc i29 ; decode configurable WRAPPED +jal $$reta $pc i7 ; decode configurable WRAPPED move $$locbase $sp ; save locals base register for function __entry cfei i8 ; allocate 8 bytes for locals and 0 slots for call arguments -jal $$reta $pc i35 ; [call]: call main_15 +jal $$reta $pc i13 ; [call]: call main_15 sw $$locbase $$retv i0 ; store word movi $r0 i8 ; initialize constant into register retd $$locbase $r0 -pshl i31 ; save registers 16..40 -pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function abi_decode_in_place_0 -cfei i16 ; allocate 16 bytes for locals and 0 slots for call arguments -move $r2 $$arg2 ; save argument 2 (target) -move $r3 $$reta ; save return address -sw $$locbase $$arg0 i0 ; store word -lw $r0 $$locbase i0 ; load word -lw $r1 $r0 i0 ; lw val ptr i0 -lw $r0 $$locbase i0 ; load word -movi $r4 i8 ; initialize constant into register -add $r0 $r0 $r4 -sw $$locbase $r0 i0 ; store word -sw $$locbase $r1 i1 ; store word -addi $r0 $$locbase i8 ; get offset to local __ptr { u64 } -movi $r1 i8 ; initialize constant into register -mcp $r2 $r0 $r1 ; mcp target temp size -cfsi i16 ; free 16 bytes for locals and 0 slots for extra call arguments -move $$reta $r3 ; restore return address -poph i524288 ; restore registers 40..64 -popl i31 ; restore registers 16..40 -jal $zero $$reta i0 ; return from call pshl i1 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function abi_decode_in_place_7 +move $$locbase $sp ; save locals base register for function abi_decode_in_place_0 move $r0 $$reta ; save return address mcp $$arg2 $$arg0 $$arg1 ; mcp target src len move $$reta $r0 ; restore return address @@ -229,4 +140,4 @@ data__0 .bytes[8] 00 00 00 00 00 00 00 02 ........ data__1 .bytes[8] 00 00 00 00 00 00 00 01 ........ - Finished release [optimized + fuel] target(s) [280 B] in ??? + Finished release [optimized + fuel] target(s) [192 B] in ??? diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/const_generics/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/const_generics/stdout.snap index 76a47eb6e59..899d1288715 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/const_generics/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/const_generics/stdout.snap @@ -1,5 +1,6 @@ --- source: test/src/snapshot/mod.rs +snapshot_kind: text --- > forc build --path test/src/e2e_vm_tests/test_programs/should_pass/language/const_generics --release exit status: 1 @@ -410,7 +411,7 @@ warning ____ Compiled script "const_generics" with 2 warnings. - Finished release [optimized + fuel] target(s) [888 B] in ??? + Finished release [optimized + fuel] target(s) [784 B] in ??? Running 1 test, filtered 0 tests tested -- const_generics diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/logging/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/logging/stdout.snap index 14ed53388ac..06e6ee3916d 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/logging/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/logging/stdout.snap @@ -1227,7 +1227,7 @@ script { !9 = span !0 83 117 !10 = fn_call_path_span !0 83 100 !11 = "test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-vec/src/codec.sw" -!12 = span !11 81408 81434 +!12 = span !11 93230 93256 !13 = (!9 !10 !12) !14 = "test/src/e2e_vm_tests/test_programs/should_pass/language/logging/src/main.sw" !15 = span !14 594 999 @@ -1298,25 +1298,25 @@ script { !80 = inline "never" !81 = (!78 !79 !80) !82 = span !14 584 588 -!83 = span !11 80995 80999 +!83 = span !11 92817 92821 !84 = (!82 !83) -!85 = span !11 80973 81088 +!85 = span !11 92795 92910 !86 = (!82 !85) -!87 = span !11 81015 81024 -!88 = span !11 81038 81053 -!89 = span !11 81105 81116 +!87 = span !11 92837 92846 +!88 = span !11 92860 92875 +!89 = span !11 92927 92938 !90 = (!82 !89) !91 = (!82 !89) !92 = (!82 !89) !93 = (!82 !89) !94 = (!82 !89) -!95 = span !11 5357 5361 -!96 = span !11 5343 5488 -!97 = fn_name_span !11 5346 5356 +!95 = span !11 4642 4646 +!96 = span !11 4628 4773 +!97 = fn_name_span !11 4631 4641 !98 = (!96 !97) -!99 = span !11 5451 5457 +!99 = span !11 4736 4742 !100 = span !11 87 114 -!101 = span !11 5399 5482 +!101 = span !11 4684 4767 !102 = span !11 160 260 !103 = fn_name_span !11 167 170 !104 = (!102 !103) @@ -1393,20 +1393,20 @@ script { !175 = fn_call_path_span !24 6194 6196 !176 = (!174 !175) !177 = (!78 !79 !80) -!178 = span !11 80891 80915 -!179 = fn_call_path_span !11 80891 80908 -!180 = span !11 4291 4313 -!181 = fn_call_path_span !11 4291 4311 +!178 = span !11 92713 92737 +!179 = fn_call_path_span !11 92713 92730 +!180 = span !11 3576 3598 +!181 = fn_call_path_span !11 3576 3596 !182 = span !0 156 213 !183 = fn_call_path_span !0 183 185 !184 = (!82 !178 !179 !180 !181 !182 !183) !185 = span !0 156 308 !186 = (!82 !178 !179 !180 !181 !185) -!187 = span !11 5797 5802 +!187 = span !11 5082 5087 !188 = (!82 !178 !179 !180 !181 !185) !189 = span !0 156 339 !190 = (!82 !178 !179 !180 !181 !189) -!191 = span !11 6031 6035 +!191 = span !11 5316 5320 !192 = (!82 !178 !179 !180 !181 !189) !193 = span !0 156 369 !194 = (!82 !178 !179 !180 !181 !193) @@ -1425,10 +1425,10 @@ script { !207 = (!82 !89) !208 = (!82 !89) !209 = (!82 !89) -!210 = span !11 81189 81193 +!210 = span !11 93011 93015 !211 = (!82 !210) -!212 = span !11 81189 81219 -!213 = fn_call_path_span !11 81194 81204 +!212 = span !11 93011 93041 +!213 = fn_call_path_span !11 93016 93026 !214 = (!82 !212 !213) !215 = (!82 !212 !213) !216 = span !0 576 580 @@ -1449,7 +1449,7 @@ script { !231 = span !0 616 641 !232 = fn_call_path_span !0 623 633 !233 = (!82 !212 !213 !231 !232) -!234 = span !11 5686 5692 +!234 = span !11 4971 4977 !235 = (!82 !212 !213 !231 !232 !234) !236 = (!82 !212 !213 !231 !232 !100) !237 = (!82 !212 !213 !231 !232) @@ -1475,7 +1475,7 @@ script { !257 = (!82 !212 !213 !231 !232) !258 = (!82 !212 !213 !231 !232) !259 = (!82 !212 !213 !231 !232) -!260 = span !11 5634 5717 +!260 = span !11 4919 5002 !261 = (!82 !212 !213 !231 !232 !260) !262 = (!82 !212 !213 !231 !232) !263 = span !0 603 642 @@ -1489,7 +1489,7 @@ script { !271 = span !0 656 681 !272 = fn_call_path_span !0 663 673 !273 = (!82 !212 !213 !271 !272) -!274 = span !11 5921 5927 +!274 = span !11 5206 5212 !275 = (!82 !212 !213 !271 !272 !274) !276 = (!82 !212 !213 !271 !272 !100) !277 = (!82 !212 !213 !271 !272) @@ -1519,7 +1519,7 @@ script { !301 = (!82 !212 !213 !271 !272) !302 = (!82 !212 !213 !271 !272) !303 = (!82 !212 !213 !271 !272) -!304 = span !11 5869 5952 +!304 = span !11 5154 5237 !305 = (!82 !212 !213 !271 !272 !304) !306 = (!82 !212 !213 !271 !272) !307 = span !0 643 682 @@ -1534,7 +1534,7 @@ script { !316 = span !0 696 721 !317 = fn_call_path_span !0 703 713 !318 = (!82 !212 !213 !316 !317) -!319 = span !11 6154 6160 +!319 = span !11 5439 5445 !320 = (!82 !212 !213 !316 !317 !319) !321 = (!82 !212 !213 !316 !317 !100) !322 = (!82 !212 !213 !316 !317) @@ -1561,7 +1561,7 @@ script { !343 = (!82 !212 !213 !316 !317) !344 = (!82 !212 !213 !316 !317) !345 = (!82 !212 !213 !316 !317) -!346 = span !11 6102 6185 +!346 = span !11 5387 5470 !347 = (!82 !212 !213 !316 !317 !346) !348 = (!82 !212 !213 !316 !317) !349 = span !0 683 722 @@ -1636,7 +1636,7 @@ script { !418 = fn_call_path_span !0 783 793 !419 = (!82 !212 !213 !417 !418) !420 = (!82 !212 !213 !417 !418) -!421 = span !11 6425 6431 +!421 = span !11 5710 5716 !422 = (!82 !212 !213 !417 !418 !421) !423 = (!82 !212 !213 !417 !418 !100) !424 = (!82 !212 !213 !417 !418) @@ -1646,7 +1646,7 @@ script { !428 = (!82 !212 !213 !417 !418) !429 = (!82 !212 !213 !417 !418) !430 = (!82 !212 !213 !417 !418) -!431 = span !11 6440 6444 +!431 = span !11 5725 5729 !432 = (!82 !212 !213 !417 !418 !431) !433 = (!82 !212 !213 !417 !418) !434 = (!82 !212 !213 !417 !418) @@ -1666,7 +1666,7 @@ script { !448 = (!82 !212 !213 !417 !418) !449 = (!82 !212 !213 !417 !418) !450 = (!82 !212 !213 !417 !418) -!451 = span !11 6373 6456 +!451 = span !11 5658 5741 !452 = (!82 !212 !213 !417 !418 !451) !453 = (!82 !212 !213 !417 !418) !454 = span !0 763 802 @@ -1681,7 +1681,7 @@ script { !463 = fn_call_path_span !0 823 833 !464 = (!82 !212 !213 !462 !463) !465 = (!82 !212 !213 !462 !463) -!466 = span !11 5217 5223 +!466 = span !11 4502 4508 !467 = (!82 !212 !213 !462 !463 !466) !468 = (!82 !212 !213 !462 !463 !100) !469 = (!82 !212 !213 !462 !463) @@ -1691,7 +1691,7 @@ script { !473 = (!82 !212 !213 !462 !463) !474 = (!82 !212 !213 !462 !463) !475 = (!82 !212 !213 !462 !463) -!476 = span !11 5232 5236 +!476 = span !11 4517 4521 !477 = (!82 !212 !213 !462 !463 !476) !478 = (!82 !212 !213 !462 !463) !479 = (!82 !212 !213 !462 !463) @@ -1711,16 +1711,16 @@ script { !493 = (!82 !212 !213 !462 !463) !494 = (!82 !212 !213 !462 !463) !495 = (!82 !212 !213 !462 !463) -!496 = span !11 5165 5248 +!496 = span !11 4450 4533 !497 = (!82 !212 !213 !462 !463 !496) !498 = (!82 !212 !213 !462 !463) !499 = span !0 803 842 !500 = (!82 !212 !213 !499) !501 = span !0 864 870 !502 = (!82 !212 !213 !501) -!503 = span !11 81176 81220 +!503 = span !11 92998 93042 !504 = (!82 !503) -!505 = span !11 81229 81235 +!505 = span !11 93051 93057 !506 = (!82 !505) !507 = (!82 !212 !213 !462 !463) !508 = (!82 !212 !213 !462 !463) diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/stdout.snap index 9d4e3035b3a..af19c448242 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/stdout.snap @@ -26,49 +26,35 @@ library { // IR: Final script { pub entry fn __entry() -> __ptr never, !3 { + local mut { u64 } __aggr_memcpy_0 local u64 _result local { u64 } args - local mut { ptr } buffer entry(): v0 = const u64 0, !5 v1 = gtf v0, 10, !11 v2 = bitcast v1 to ptr, !12 - v3 = get_local __ptr { ptr }, buffer, !16 - v4 = const u64 0 - v5 = get_elem_ptr v3, __ptr ptr, v4, !17 - store v2 to v5, !18 - v6 = get_local __ptr { ptr }, buffer, !20 + v3 = cast_ptr v2 to __ptr { u64 }, !15 + v4 = get_local __ptr { u64 }, __aggr_memcpy_0 + mem_copy_val v4, v3 + v5 = get_local __ptr { u64 }, args, !16 + mem_copy_val v5, v4 + v6 = get_local __ptr { u64 }, args, !17 v7 = const u64 0 - v8 = get_elem_ptr v6, __ptr ptr, v7, !28 - v9 = load v8, !29 - v10 = asm(ptr: v9, val) -> u64 val, !31 { - lw val ptr i0, !32 - } - v11 = load v8, !33 - v12 = const u64 8, !34 - v13 = add v11, v12, !35 - store v13 to v8, !37 - v14 = get_local __ptr { u64 }, args, !39 - v15 = const u64 0 - v16 = get_elem_ptr v14, __ptr u64, v15, !40 - store v10 to v16, !41 - v17 = get_local __ptr { u64 }, args, !42 - v18 = const u64 0 - v19 = get_elem_ptr v17, __ptr u64, v18, !43 - v20 = load v19 - v21 = call main_8(v20), !46 - v22 = get_local __ptr u64, _result, !47 - store v21 to v22, !47 - v23 = get_local __ptr u64, _result, !48 - v24 = const u64 8 - retd v23 v24, !52 + v8 = get_elem_ptr v6, __ptr u64, v7, !18 + v9 = load v8 + v10 = call main_9(v9), !21 + v11 = get_local __ptr u64, _result, !22 + store v10 to v11, !22 + v12 = get_local __ptr u64, _result, !23 + v13 = const u64 8 + retd v12 v13, !27 } - entry_orig fn main_8(baba !54: u64) -> u64, !57 { + entry_orig fn main_9(baba !29: u64) -> u64, !32 { entry(baba: u64): - v0 = const u64 1, !58 - v1 = add baba, v0, !61 + v0 = const u64 1, !33 + v1 = add baba, v0, !36 ret u64 v1 } } @@ -78,63 +64,38 @@ script { !2 = fn_name_span !0 7 14 !3 = (!1 !2) !4 = "test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core/src/codec.sw" -!5 = span !4 1699 1700 +!5 = span !4 1542 1543 !6 = span !0 59 89 !7 = fn_call_path_span !0 59 77 -!8 = span !4 160666 160698 -!9 = fn_call_path_span !4 160666 160696 -!10 = span !4 1682 1706 +!8 = span !4 175056 175088 +!9 = fn_call_path_span !4 175056 175086 +!10 = span !4 1525 1549 !11 = (!6 !7 !8 !9 !10) !12 = (!6 !7 !8 !9 !10) -!13 = span !4 160641 160699 -!14 = fn_call_path_span !4 160641 160660 -!15 = span !4 160514 160534 -!16 = (!6 !7 !13 !14 !15) -!17 = (!6 !7 !13 !14) -!18 = (!6 !7 !13 !14 !15) -!19 = span !4 160558 160564 -!20 = (!6 !7 !13 !14 !19) -!21 = span !4 160544 160565 -!22 = fn_call_path_span !4 160544 160557 -!23 = span !4 134798 134819 -!24 = fn_call_path_span !4 134798 134811 -!25 = span !4 83379 83407 -!26 = fn_call_path_span !4 83386 83398 -!27 = span !4 625 641 -!28 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26 !27) -!29 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26) -!30 = span !4 2927 3008 -!31 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26 !30) -!32 = span !4 2965 2978 -!33 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26) -!34 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26) -!35 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26) -!36 = span !4 3018 3057 -!37 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26 !36) -!38 = span !4 134797 134822 -!39 = (!6 !7 !13 !14 !21 !22 !38) -!40 = (!6 !7 !13 !14 !21 !22 !38) -!41 = (!6 !7 !13 !14 !21 !22 !38) -!42 = span !0 131 135 -!43 = span !0 136 137 -!44 = span !0 126 138 -!45 = fn_call_path_span !0 126 130 -!46 = (!44 !45) -!47 = span !0 107 139 -!48 = span !0 182 189 -!49 = span !0 156 190 -!50 = fn_call_path_span !0 156 173 -!51 = span !4 81408 81434 -!52 = (!49 !50 !51) -!53 = "test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/src/main.sw" -!54 = span !53 17 21 -!55 = span !53 9 51 -!56 = fn_name_span !53 12 16 -!57 = (!55 !56) -!58 = span !53 48 49 -!59 = span !53 41 49 -!60 = fn_call_path_span !53 46 47 -!61 = (!59 !60) +!13 = span !4 175031 175089 +!14 = fn_call_path_span !4 175031 175050 +!15 = (!6 !7 !13 !14) +!16 = span !0 40 90 +!17 = span !0 131 135 +!18 = span !0 136 137 +!19 = span !0 126 138 +!20 = fn_call_path_span !0 126 130 +!21 = (!19 !20) +!22 = span !0 107 139 +!23 = span !0 182 189 +!24 = span !0 156 190 +!25 = fn_call_path_span !0 156 173 +!26 = span !4 93230 93256 +!27 = (!24 !25 !26) +!28 = "test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/src/main.sw" +!29 = span !28 17 21 +!30 = span !28 9 51 +!31 = fn_name_span !28 12 16 +!32 = (!30 !31) +!33 = span !28 48 49 +!34 = span !28 41 49 +!35 = fn_call_path_span !28 46 47 +!36 = (!34 !35) ;; ASM: Final program ;; Program kind: Script @@ -151,23 +112,19 @@ cfei i0 ; allocate stack space for globals move $$locbase $sp ; save locals base register for function __entry cfei i24 ; allocate 24 bytes for locals and 0 slots for call arguments gtf $r0 $zero i10 ; get transaction field -sw $$locbase $r0 i2 ; store word +mcpi $$locbase $r0 i8 ; copy memory +addi $r0 $$locbase i16 ; get offset to local __ptr { u64 } +mcpi $r0 $$locbase i8 ; copy memory lw $r0 $$locbase i2 ; load word -lw $r0 $r0 i0 ; lw val ptr i0 -lw $r1 $$locbase i2 ; load word -movi $r2 i8 ; initialize constant into register -add $r1 $r1 $r2 -sw $$locbase $r1 i2 ; store word -sw $$locbase $r0 i1 ; store word -lw $r0 $$locbase i1 ; load word move $$arg0 $r0 ; [call]: pass argument 0 -jal $$reta $pc i4 ; [call]: call main_8 -sw $$locbase $$retv i0 ; store word -movi $r0 i8 ; initialize constant into register -retd $$locbase $r0 +jal $$reta $pc i5 ; [call]: call main_9 +sw $$locbase $$retv i1 ; store word +addi $r0 $$locbase i8 ; get offset to local __ptr u64 +movi $r1 i8 ; initialize constant into register +retd $r0 $r1 pshl i1 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function main_8 +move $$locbase $sp ; save locals base register for function main_9 add $r0 $$arg0 $one move $$retv $r0 ; set return value poph i524288 ; restore registers 40..64 @@ -180,37 +137,33 @@ jal $zero $$reta i0 ; return from call 0x00000000 MOVE R60 $pc ;; [26, 240, 48, 0] 0x00000004 JMPF $zero 0x4 ;; [116, 0, 0, 4] -0x00000008 ;; [0, 0, 0, 0, 0, 0, 0, 136] +0x00000008 ;; [0, 0, 0, 0, 0, 0, 0, 120] 0x00000010 ;; [0, 0, 0, 0, 0, 0, 0, 0] 0x00000018 LW R63 R60 0x1 ;; [93, 255, 192, 1] 0x0000001c ADD R63 R63 R60 ;; [16, 255, 255, 0] 0x00000020 MOVE R59 $sp ;; [26, 236, 80, 0] 0x00000024 CFEI 0x18 ;; [145, 0, 0, 24] 0x00000028 GTF $writable $zero 0xa ;; [97, 64, 0, 10] -0x0000002c SW R59 $writable 0x2 ;; [95, 237, 0, 2] -0x00000030 LW $writable R59 0x2 ;; [93, 67, 176, 2] -0x00000034 LW $writable $writable 0x0 ;; [93, 65, 0, 0] -0x00000038 LW R17 R59 0x2 ;; [93, 71, 176, 2] -0x0000003c MOVI R18 0x8 ;; [114, 72, 0, 8] -0x00000040 ADD R17 R17 R18 ;; [16, 69, 20, 128] -0x00000044 SW R59 R17 0x2 ;; [95, 237, 16, 2] -0x00000048 SW R59 $writable 0x1 ;; [95, 237, 0, 1] -0x0000004c LW $writable R59 0x1 ;; [93, 67, 176, 1] -0x00000050 MOVE R58 $writable ;; [26, 233, 0, 0] -0x00000054 JAL R62 $pc 0x4 ;; [153, 248, 48, 4] -0x00000058 SW R59 R61 0x0 ;; [95, 239, 208, 0] -0x0000005c MOVI $writable 0x8 ;; [114, 64, 0, 8] -0x00000060 RETD R59 $writable ;; [37, 237, 0, 0] -0x00000064 PSHL 0x1 ;; [149, 0, 0, 1] -0x00000068 PSHH 0x80000 ;; [150, 8, 0, 0] -0x0000006c MOVE R59 $sp ;; [26, 236, 80, 0] -0x00000070 ADD $writable R58 $one ;; [16, 67, 160, 64] -0x00000074 MOVE R61 $writable ;; [26, 245, 0, 0] -0x00000078 POPH 0x80000 ;; [152, 8, 0, 0] -0x0000007c POPL 0x1 ;; [151, 0, 0, 1] -0x00000080 JAL $zero R62 0x0 ;; [153, 3, 224, 0] -0x00000084 NOOP ;; [71, 0, 0, 0] +0x0000002c MCPI R59 $writable 0x8 ;; [96, 237, 0, 8] +0x00000030 ADDI $writable R59 0x10 ;; [80, 67, 176, 16] +0x00000034 MCPI $writable R59 0x8 ;; [96, 67, 176, 8] +0x00000038 LW $writable R59 0x2 ;; [93, 67, 176, 2] +0x0000003c MOVE R58 $writable ;; [26, 233, 0, 0] +0x00000040 JAL R62 $pc 0x5 ;; [153, 248, 48, 5] +0x00000044 SW R59 R61 0x1 ;; [95, 239, 208, 1] +0x00000048 ADDI $writable R59 0x8 ;; [80, 67, 176, 8] +0x0000004c MOVI R17 0x8 ;; [114, 68, 0, 8] +0x00000050 RETD $writable R17 ;; [37, 65, 16, 0] +0x00000054 PSHL 0x1 ;; [149, 0, 0, 1] +0x00000058 PSHH 0x80000 ;; [150, 8, 0, 0] +0x0000005c MOVE R59 $sp ;; [26, 236, 80, 0] +0x00000060 ADD $writable R58 $one ;; [16, 67, 160, 64] +0x00000064 MOVE R61 $writable ;; [26, 245, 0, 0] +0x00000068 POPH 0x80000 ;; [152, 8, 0, 0] +0x0000006c POPL 0x1 ;; [151, 0, 0, 1] +0x00000070 JAL $zero R62 0x0 ;; [153, 3, 224, 0] +0x00000074 NOOP ;; [71, 0, 0, 0] .data_section: ;; --- END OF TARGET BYTECODE --- - Finished release [optimized + fuel] target(s) [136 B] in ??? + Finished release [optimized + fuel] target(s) [120 B] in ??? diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/stdout.snap index 76af4093300..1345e4215fa 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/stdout.snap @@ -26,63 +26,38 @@ library { // IR: Final script { pub entry fn __entry() -> __ptr never, !3 { + local mut { u64, u64 } __aggr_memcpy_0 local u64 _result local { u64, u64 } args - local mut { ptr } buffer entry(): v0 = const u64 0, !5 v1 = gtf v0, 10, !11 v2 = bitcast v1 to ptr, !12 - v3 = get_local __ptr { ptr }, buffer, !16 - v4 = const u64 0 - v5 = get_elem_ptr v3, __ptr ptr, v4, !17 - store v2 to v5, !18 - v6 = get_local __ptr { ptr }, buffer, !20 + v3 = cast_ptr v2 to __ptr { u64, u64 }, !15 + v4 = get_local __ptr { u64, u64 }, __aggr_memcpy_0 + mem_copy_val v4, v3 + v5 = get_local __ptr { u64, u64 }, args, !16 + mem_copy_val v5, v4 + v6 = get_local __ptr { u64, u64 }, args, !17 v7 = const u64 0 - v8 = get_elem_ptr v6, __ptr ptr, v7, !28 - v9 = load v8, !29 - v10 = asm(ptr: v9, val) -> u64 val, !31 { - lw val ptr i0, !32 - } - v11 = load v8, !33 - v12 = const u64 8, !34 - v13 = add v11, v12, !35 - store v13 to v8, !37 - v14 = load v8, !40 - v15 = asm(ptr: v14, val) -> u64 val, !41 { - lw val ptr i0, !32 - } - v16 = load v8, !42 - v17 = const u64 8, !43 - v18 = add v16, v17, !44 - store v18 to v8, !45 - v19 = get_local __ptr { u64, u64 }, args, !47 - v20 = const u64 0 - v21 = get_elem_ptr v19, __ptr u64, v20, !48 - store v10 to v21, !49 - v22 = const u64 1 - v23 = get_elem_ptr v19, __ptr u64, v22, !50 - store v15 to v23, !51 - v24 = get_local __ptr { u64, u64 }, args, !52 - v25 = const u64 0 - v26 = get_elem_ptr v24, __ptr u64, v25, !53 - v27 = load v26 - v28 = get_local __ptr { u64, u64 }, args, !54 - v29 = const u64 1 - v30 = get_elem_ptr v28, __ptr u64, v29, !55 - v31 = load v30 - v32 = call main_8(v27, v31), !58 - v33 = get_local __ptr u64, _result, !59 - store v32 to v33, !59 - v34 = get_local __ptr u64, _result, !60 - v35 = const u64 8 - retd v34 v35, !64 + v8 = get_elem_ptr v6, __ptr u64, v7, !18 + v9 = load v8 + v10 = get_local __ptr { u64, u64 }, args, !19 + v11 = const u64 1 + v12 = get_elem_ptr v10, __ptr u64, v11, !20 + v13 = load v12 + v14 = call main_9(v9, v13), !23 + v15 = get_local __ptr u64, _result, !24 + store v14 to v15, !24 + v16 = get_local __ptr u64, _result, !25 + v17 = const u64 8 + retd v16 v17, !29 } - entry_orig fn main_8(baba !66: u64, keke !67: u64) -> u64, !70 { + entry_orig fn main_9(baba !31: u64, keke !32: u64) -> u64, !35 { entry(baba: u64, keke: u64): - v0 = add baba, keke, !73 + v0 = add baba, keke, !38 ret u64 v0 } } @@ -92,75 +67,40 @@ script { !2 = fn_name_span !0 7 14 !3 = (!1 !2) !4 = "test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core/src/codec.sw" -!5 = span !4 1699 1700 +!5 = span !4 1542 1543 !6 = span !0 64 99 !7 = fn_call_path_span !0 64 82 -!8 = span !4 160666 160698 -!9 = fn_call_path_span !4 160666 160696 -!10 = span !4 1682 1706 +!8 = span !4 175056 175088 +!9 = fn_call_path_span !4 175056 175086 +!10 = span !4 1525 1549 !11 = (!6 !7 !8 !9 !10) !12 = (!6 !7 !8 !9 !10) -!13 = span !4 160641 160699 -!14 = fn_call_path_span !4 160641 160660 -!15 = span !4 160514 160534 -!16 = (!6 !7 !13 !14 !15) -!17 = (!6 !7 !13 !14) -!18 = (!6 !7 !13 !14 !15) -!19 = span !4 160558 160564 -!20 = (!6 !7 !13 !14 !19) -!21 = span !4 160544 160565 -!22 = fn_call_path_span !4 160544 160557 -!23 = span !4 135031 135052 -!24 = fn_call_path_span !4 135031 135044 -!25 = span !4 83379 83407 -!26 = fn_call_path_span !4 83386 83398 -!27 = span !4 625 641 -!28 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26 !27) -!29 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26) -!30 = span !4 2927 3008 -!31 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26 !30) -!32 = span !4 2965 2978 -!33 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26) -!34 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26) -!35 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26) -!36 = span !4 3018 3057 -!37 = (!6 !7 !13 !14 !21 !22 !23 !24 !25 !26 !36) -!38 = span !4 135054 135075 -!39 = fn_call_path_span !4 135054 135067 -!40 = (!6 !7 !13 !14 !21 !22 !38 !39 !25 !26) -!41 = (!6 !7 !13 !14 !21 !22 !38 !39 !25 !26 !30) -!42 = (!6 !7 !13 !14 !21 !22 !38 !39 !25 !26) -!43 = (!6 !7 !13 !14 !21 !22 !38 !39 !25 !26) -!44 = (!6 !7 !13 !14 !21 !22 !38 !39 !25 !26) -!45 = (!6 !7 !13 !14 !21 !22 !38 !39 !25 !26 !36) -!46 = span !4 135030 135076 -!47 = (!6 !7 !13 !14 !21 !22 !46) -!48 = (!6 !7 !13 !14 !21 !22 !46) -!49 = (!6 !7 !13 !14 !21 !22 !46) -!50 = (!6 !7 !13 !14 !21 !22 !46) -!51 = (!6 !7 !13 !14 !21 !22 !46) -!52 = span !0 141 145 -!53 = span !0 146 147 -!54 = span !0 149 153 -!55 = span !0 154 155 -!56 = span !0 136 156 -!57 = fn_call_path_span !0 136 140 -!58 = (!56 !57) -!59 = span !0 117 157 -!60 = span !0 200 207 -!61 = span !0 174 208 -!62 = fn_call_path_span !0 174 191 -!63 = span !4 81408 81434 -!64 = (!61 !62 !63) -!65 = "test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/src/main.sw" -!66 = span !65 17 21 -!67 = span !65 28 32 -!68 = span !65 9 65 -!69 = fn_name_span !65 12 16 -!70 = (!68 !69) -!71 = span !65 52 63 -!72 = fn_call_path_span !65 57 58 -!73 = (!71 !72) +!13 = span !4 175031 175089 +!14 = fn_call_path_span !4 175031 175050 +!15 = (!6 !7 !13 !14) +!16 = span !0 40 100 +!17 = span !0 141 145 +!18 = span !0 146 147 +!19 = span !0 149 153 +!20 = span !0 154 155 +!21 = span !0 136 156 +!22 = fn_call_path_span !0 136 140 +!23 = (!21 !22) +!24 = span !0 117 157 +!25 = span !0 200 207 +!26 = span !0 174 208 +!27 = fn_call_path_span !0 174 191 +!28 = span !4 93230 93256 +!29 = (!26 !27 !28) +!30 = "test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/src/main.sw" +!31 = span !30 17 21 +!32 = span !30 28 32 +!33 = span !30 9 65 +!34 = fn_name_span !30 12 16 +!35 = (!33 !34) +!36 = span !30 52 63 +!37 = fn_call_path_span !30 57 58 +!38 = (!36 !37) ;; ASM: Final program ;; Program kind: Script @@ -175,34 +115,23 @@ lw $$ds $$tmp i1 add $$ds $$ds $$tmp cfei i0 ; allocate stack space for globals move $$locbase $sp ; save locals base register for function __entry -cfei i32 ; allocate 32 bytes for locals and 0 slots for call arguments +cfei i40 ; allocate 40 bytes for locals and 0 slots for call arguments gtf $r0 $zero i10 ; get transaction field -sw $$locbase $r0 i3 ; store word +mcpi $$locbase $r0 i16 ; copy memory +addi $r0 $$locbase i24 ; get offset to local __ptr { u64, u64 } +mcpi $r0 $$locbase i16 ; copy memory lw $r0 $$locbase i3 ; load word -lw $r3 $r0 i0 ; lw val ptr i0 -lw $r0 $$locbase i3 ; load word -movi $r1 i8 ; initialize constant into register -add $r0 $r0 $r1 -sw $$locbase $r0 i3 ; store word -lw $r0 $$locbase i3 ; load word -lw $r0 $r0 i0 ; lw val ptr i0 -lw $r1 $$locbase i3 ; load word -movi $r2 i8 ; initialize constant into register -add $r1 $r1 $r2 -sw $$locbase $r1 i3 ; store word -sw $$locbase $r3 i1 ; store word -sw $$locbase $r0 i2 ; store word -lw $r0 $$locbase i1 ; load word -lw $r1 $$locbase i2 ; load word +lw $r1 $$locbase i4 ; load word move $$arg0 $r0 ; [call]: pass argument 0 move $$arg1 $r1 ; [call]: pass argument 1 -jal $$reta $pc i4 ; [call]: call main_8 -sw $$locbase $$retv i0 ; store word -movi $r0 i8 ; initialize constant into register -retd $$locbase $r0 +jal $$reta $pc i5 ; [call]: call main_9 +sw $$locbase $$retv i2 ; store word +addi $r0 $$locbase i16 ; get offset to local __ptr u64 +movi $r1 i8 ; initialize constant into register +retd $r0 $r1 pshl i1 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function main_8 +move $$locbase $sp ; save locals base register for function main_9 add $r0 $$arg0 $$arg1 move $$retv $r0 ; set return value poph i524288 ; restore registers 40..64 @@ -215,45 +144,35 @@ jal $zero $$reta i0 ; return from call 0x00000000 MOVE R60 $pc ;; [26, 240, 48, 0] 0x00000004 JMPF $zero 0x4 ;; [116, 0, 0, 4] -0x00000008 ;; [0, 0, 0, 0, 0, 0, 0, 168] +0x00000008 ;; [0, 0, 0, 0, 0, 0, 0, 128] 0x00000010 ;; [0, 0, 0, 0, 0, 0, 0, 0] 0x00000018 LW R63 R60 0x1 ;; [93, 255, 192, 1] 0x0000001c ADD R63 R63 R60 ;; [16, 255, 255, 0] 0x00000020 MOVE R59 $sp ;; [26, 236, 80, 0] -0x00000024 CFEI 0x20 ;; [145, 0, 0, 32] +0x00000024 CFEI 0x28 ;; [145, 0, 0, 40] 0x00000028 GTF $writable $zero 0xa ;; [97, 64, 0, 10] -0x0000002c SW R59 $writable 0x3 ;; [95, 237, 0, 3] -0x00000030 LW $writable R59 0x3 ;; [93, 67, 176, 3] -0x00000034 LW R19 $writable 0x0 ;; [93, 77, 0, 0] +0x0000002c MCPI R59 $writable 0x10 ;; [96, 237, 0, 16] +0x00000030 ADDI $writable R59 0x18 ;; [80, 67, 176, 24] +0x00000034 MCPI $writable R59 0x10 ;; [96, 67, 176, 16] 0x00000038 LW $writable R59 0x3 ;; [93, 67, 176, 3] -0x0000003c MOVI R17 0x8 ;; [114, 68, 0, 8] -0x00000040 ADD $writable $writable R17 ;; [16, 65, 4, 64] -0x00000044 SW R59 $writable 0x3 ;; [95, 237, 0, 3] -0x00000048 LW $writable R59 0x3 ;; [93, 67, 176, 3] -0x0000004c LW $writable $writable 0x0 ;; [93, 65, 0, 0] -0x00000050 LW R17 R59 0x3 ;; [93, 71, 176, 3] -0x00000054 MOVI R18 0x8 ;; [114, 72, 0, 8] -0x00000058 ADD R17 R17 R18 ;; [16, 69, 20, 128] -0x0000005c SW R59 R17 0x3 ;; [95, 237, 16, 3] -0x00000060 SW R59 R19 0x1 ;; [95, 237, 48, 1] -0x00000064 SW R59 $writable 0x2 ;; [95, 237, 0, 2] -0x00000068 LW $writable R59 0x1 ;; [93, 67, 176, 1] -0x0000006c LW R17 R59 0x2 ;; [93, 71, 176, 2] -0x00000070 MOVE R58 $writable ;; [26, 233, 0, 0] -0x00000074 MOVE R57 R17 ;; [26, 229, 16, 0] -0x00000078 JAL R62 $pc 0x4 ;; [153, 248, 48, 4] -0x0000007c SW R59 R61 0x0 ;; [95, 239, 208, 0] -0x00000080 MOVI $writable 0x8 ;; [114, 64, 0, 8] -0x00000084 RETD R59 $writable ;; [37, 237, 0, 0] -0x00000088 PSHL 0x1 ;; [149, 0, 0, 1] -0x0000008c PSHH 0x80000 ;; [150, 8, 0, 0] -0x00000090 MOVE R59 $sp ;; [26, 236, 80, 0] -0x00000094 ADD $writable R58 R57 ;; [16, 67, 174, 64] -0x00000098 MOVE R61 $writable ;; [26, 245, 0, 0] -0x0000009c POPH 0x80000 ;; [152, 8, 0, 0] -0x000000a0 POPL 0x1 ;; [151, 0, 0, 1] -0x000000a4 JAL $zero R62 0x0 ;; [153, 3, 224, 0] +0x0000003c LW R17 R59 0x4 ;; [93, 71, 176, 4] +0x00000040 MOVE R58 $writable ;; [26, 233, 0, 0] +0x00000044 MOVE R57 R17 ;; [26, 229, 16, 0] +0x00000048 JAL R62 $pc 0x5 ;; [153, 248, 48, 5] +0x0000004c SW R59 R61 0x2 ;; [95, 239, 208, 2] +0x00000050 ADDI $writable R59 0x10 ;; [80, 67, 176, 16] +0x00000054 MOVI R17 0x8 ;; [114, 68, 0, 8] +0x00000058 RETD $writable R17 ;; [37, 65, 16, 0] +0x0000005c PSHL 0x1 ;; [149, 0, 0, 1] +0x00000060 PSHH 0x80000 ;; [150, 8, 0, 0] +0x00000064 MOVE R59 $sp ;; [26, 236, 80, 0] +0x00000068 ADD $writable R58 R57 ;; [16, 67, 174, 64] +0x0000006c MOVE R61 $writable ;; [26, 245, 0, 0] +0x00000070 POPH 0x80000 ;; [152, 8, 0, 0] +0x00000074 POPL 0x1 ;; [151, 0, 0, 1] +0x00000078 JAL $zero R62 0x0 ;; [153, 3, 224, 0] +0x0000007c NOOP ;; [71, 0, 0, 0] .data_section: ;; --- END OF TARGET BYTECODE --- - Finished release [optimized + fuel] target(s) [168 B] in ??? + Finished release [optimized + fuel] target(s) [128 B] in ??? diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/stdout.snap index 5aa469c2663..1fc9101945e 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/stdout.snap @@ -47,7 +47,7 @@ script { store v2 to v5, !18 v6 = get_local __ptr { ptr }, buffer, !20 v7 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, first - v8 = call decode_6(v6, v7) + v8 = call decode_7(v6, v7) v9 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], array, !26 v10 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, first, !28 v11 = const u64 0 @@ -57,24 +57,24 @@ script { v14 = get_elem_ptr v9, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v13, !30 mem_copy_val v14, v10 v15 = const u64 1, !31 - br decode_script_data_0_decode_from_raw_ptr_1_abi_decode_4_abi_decode_5_while(v15), !32 + br decode_script_data_0_decode_from_raw_ptr_1_abi_decode_5_abi_decode_6_while(v15), !32 - decode_script_data_0_decode_from_raw_ptr_1_abi_decode_4_abi_decode_5_while(v16: u64): + decode_script_data_0_decode_from_raw_ptr_1_abi_decode_5_abi_decode_6_while(v16: u64): v17 = const u64 2, !33 v18 = cmp lt v16 v17, !36 - cbr v18, decode_script_data_0_decode_from_raw_ptr_1_abi_decode_4_abi_decode_5_while_body(), decode_script_data_0_decode_from_raw_ptr_1_abi_decode_4_abi_decode_5_end_while(), !37 + cbr v18, decode_script_data_0_decode_from_raw_ptr_1_abi_decode_5_abi_decode_6_while_body(), decode_script_data_0_decode_from_raw_ptr_1_abi_decode_5_abi_decode_6_end_while(), !37 - decode_script_data_0_decode_from_raw_ptr_1_abi_decode_4_abi_decode_5_while_body(): + decode_script_data_0_decode_from_raw_ptr_1_abi_decode_5_abi_decode_6_while_body(): v19 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, __ret_val0 - v20 = call decode_6(v6, v19) + v20 = call decode_7(v6, v19) v21 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], array, !39 v22 = get_elem_ptr v21, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v16, !40 mem_copy_val v22, v19 v23 = const u64 1, !41 v24 = add v16, v23, !44 - br decode_script_data_0_decode_from_raw_ptr_1_abi_decode_4_abi_decode_5_while(v24), !45 + br decode_script_data_0_decode_from_raw_ptr_1_abi_decode_5_abi_decode_6_while(v24), !45 - decode_script_data_0_decode_from_raw_ptr_1_abi_decode_4_abi_decode_5_end_while(): + decode_script_data_0_decode_from_raw_ptr_1_abi_decode_5_abi_decode_6_end_while(): v25 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], array, !47 v26 = get_local __ptr { [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] }, args, !49 v27 = const u64 0 @@ -92,7 +92,7 @@ script { retd v35 v36, !57 } - pub fn decode_6(self !58: __ptr { ptr }, __ret_value: __ptr { { string<3> }, { u64, ( u64 | u64 ) } }) -> (), !61 { + pub fn decode_7(self !58: __ptr { ptr }, __ret_value: __ptr { { string<3> }, { u64, ( u64 | u64 ) } }) -> (), !61 { local mut slice __aggr_memcpy_0 local mut { ptr, u64 } __aggr_memcpy_00 local mut string<3> __aggr_memcpy_01 @@ -166,9 +166,9 @@ script { store v36 to v1, !123 v37 = const u64 0, !124 v38 = cmp eq v33 v37, !127 - cbr v38, abi_decode_7_abi_decode_14_block0(), abi_decode_7_abi_decode_14_block1(), !128 + cbr v38, abi_decode_8_abi_decode_15_block0(), abi_decode_8_abi_decode_15_block1(), !128 - abi_decode_7_abi_decode_14_block0(): + abi_decode_8_abi_decode_15_block0(): v39 = get_local __ptr { u64, ( u64 | u64 ) }, __anon_01, !131 v40 = const u64 0 v41 = get_elem_ptr v39, __ptr u64, v40, !132 @@ -188,14 +188,14 @@ script { store v44 to v50, !143 v51 = get_local __ptr { u64, ( u64 | u64 ) }, __tmp_block_arg mem_copy_val v51, v39 - br abi_decode_7_abi_decode_14_block5(v51), !144 + br abi_decode_8_abi_decode_15_block5(v51), !144 - abi_decode_7_abi_decode_14_block1(): + abi_decode_8_abi_decode_15_block1(): v52 = const u64 1, !145 v53 = cmp eq v33 v52, !148 - cbr v53, abi_decode_7_abi_decode_14_block2(), abi_decode_7_abi_decode_14_block3(), !149 + cbr v53, abi_decode_8_abi_decode_15_block2(), abi_decode_8_abi_decode_15_block3(), !149 - abi_decode_7_abi_decode_14_block2(): + abi_decode_8_abi_decode_15_block2(): v54 = get_local __ptr { u64, ( u64 | u64 ) }, __anon_1, !150 v55 = const u64 0 v56 = get_elem_ptr v54, __ptr u64, v55, !151 @@ -215,13 +215,13 @@ script { store v59 to v65, !162 v66 = get_local __ptr { u64, ( u64 | u64 ) }, __tmp_block_arg mem_copy_val v66, v54 - br abi_decode_7_abi_decode_14_block5(v66), !163 + br abi_decode_8_abi_decode_15_block5(v66), !163 - abi_decode_7_abi_decode_14_block3(): + abi_decode_8_abi_decode_15_block3(): v67 = const u64 0, !164 revert v67, !166 - abi_decode_7_abi_decode_14_block5(v68: __ptr { u64, ( u64 | u64 ) }): + abi_decode_8_abi_decode_15_block5(v68: __ptr { u64, ( u64 | u64 ) }): v69 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, __anon_0, !168 v70 = const u64 0 v71 = get_elem_ptr v69, __ptr { string<3> }, v70, !169 @@ -235,11 +235,13 @@ script { } entry_orig fn main_22(ops: __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], __ret_value: __ptr { u64 }) -> (), !173 { - local mut { ptr, u64, u64 } __aggr_memcpy_0 + local mut slice __aggr_memcpy_0 local mut { ptr, u64, u64 } __aggr_memcpy_00 local mut { ptr, u64, u64 } __aggr_memcpy_01 - local mut slice __aggr_memcpy_02 + local mut { ptr, u64, u64 } __aggr_memcpy_02 + local mut slice __aggr_memcpy_03 local { ptr, u64 } __anon_0 + local { ptr, u64 } __anon_00 local { ptr, u64, u64 } __anon_000 local { ptr, u64, u64 } __anon_01 local slice __anon_1 @@ -268,6 +270,7 @@ script { local string<3> __tmp_arg5 local slice __tmp_arg6 local { { ptr, u64, u64 } } __tmp_block_arg + local slice __tmp_block_arg0 local { { ptr, u64, u64 } } buffer local { { ptr, u64, u64 } } buffer_ local { { ptr, u64, u64 } } buffer_0 @@ -285,11 +288,11 @@ script { local { { ptr, u64, u64 } } buffer______ local [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] item_ local [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] ops_ - local [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] self_ - local { string<3> } self_00 - local string<3> self_000 - local { { string<3> }, { u64, ( u64 | u64 ) } } self_1 - local { u64, ( u64 | u64 ) } self_10 + local { string<3> } self_000 + local string<3> self_0000 + local { { string<3> }, { u64, ( u64 | u64 ) } } self_10 + local { u64, ( u64 | u64 ) } self_100 + local [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] self_2 local { { ptr, u64, u64 } } self_3 entry(ops: __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], __ret_value: __ptr { u64 }): @@ -298,386 +301,417 @@ script { v1 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !174 v2 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], item_, !174 mem_copy_val v2, v1 - v3 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], item_, !176 - v4 = get_local __ptr { { ptr, u64, u64 } }, __ret_val3 - v5 = call new_32(v4) - v6 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], self_, !179 - mem_copy_val v6, v3 - v7 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !180 - mem_copy_val v7, v4 - v8 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !182 - v9 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !184 - mem_copy_val v9, v8 - v10 = const u64 0, !185 - br encode_23_abi_encode_26_while(v10), !186 + v3 = const bool false, !183 + cbr v3, encode_23_block0(), encode_23_block1(), !184 + + encode_23_block0(): + v4 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], item_, !186 + v5 = const u64 48 + v6 = asm(size: v5, src: v4) -> ptr hp, !188 { + aloc size, !189 + mcp hp src size, !190 + } + v7 = get_local __ptr { ptr, u64 }, __anon_00, !192 + v8 = const u64 0 + v9 = get_elem_ptr v7, __ptr ptr, v8, !193 + store v6 to v9, !194 + v10 = const u64 1 + v11 = get_elem_ptr v7, __ptr u64, v10, !195 + store v5 to v11, !196 + v12 = asm(s: v7) -> __ptr slice s { + } + v13 = get_local __ptr slice, __aggr_memcpy_0 + mem_copy_val v13, v12 + v14 = get_local __ptr slice, __tmp_block_arg0 + mem_copy_val v14, v13 + br encode_23_block2(v14), !174 + + encode_23_block1(): + v15 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], item_, !198 + v16 = get_local __ptr { { ptr, u64, u64 } }, __ret_val3 + v17 = call new_42(v16) + v18 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], self_2, !201 + mem_copy_val v18, v15 + v19 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !202 + mem_copy_val v19, v16 + v20 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !204 + v21 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !206 + mem_copy_val v21, v20 + v22 = const u64 0, !207 + br encode_23_abi_encode_36_while(v22), !208 - encode_23_abi_encode_26_while(v11: u64): - v12 = const u64 2, !187 - v13 = cmp lt v11 v12, !190 - cbr v13, encode_23_abi_encode_26_while_body(), encode_23_abi_encode_26_end_while(), !191 + encode_23_abi_encode_36_while(v23: u64): + v24 = const u64 2, !209 + v25 = cmp lt v23 v24, !212 + cbr v25, encode_23_abi_encode_36_while_body(), encode_23_abi_encode_36_end_while(), !213 - encode_23_abi_encode_26_while_body(): - v14 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], self_, !193 - v15 = get_elem_ptr v14, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v11, !195 - v16 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !197 - v17 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, self_1, !200 - mem_copy_val v17, v15 - v18 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !201 - mem_copy_val v18, v16 - v19 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, self_1, !203 - v20 = const u64 0 - v21 = get_elem_ptr v19, __ptr { string<3> }, v20, !205 - v22 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !207 - v23 = get_local __ptr { string<3> }, self_00, !210 - mem_copy_val v23, v21 - v24 = get_local __ptr { { ptr, u64, u64 } }, buffer_00, !211 - mem_copy_val v24, v22 - v25 = get_local __ptr { string<3> }, self_00, !213 - v26 = const u64 0 - v27 = get_elem_ptr v25, __ptr string<3>, v26, !215 - v28 = get_local __ptr { { ptr, u64, u64 } }, buffer_00, !217 - v29 = get_local __ptr string<3>, self_000, !220 + encode_23_abi_encode_36_while_body(): + v26 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], self_2, !215 + v27 = get_elem_ptr v26, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v23, !217 + v28 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !219 + v29 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, self_10, !222 mem_copy_val v29, v27 - v30 = get_local __ptr { { ptr, u64, u64 } }, buffer_000, !221 + v30 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !223 mem_copy_val v30, v28 - v31 = get_local __ptr { { ptr, u64, u64 } }, buffer_000, !223 + v31 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, self_10, !225 v32 = const u64 0 - v33 = get_elem_ptr v31, __ptr { ptr, u64, u64 }, v32, !225 - v34 = asm(buffer: v33) -> __ptr { ptr, u64, u64 } buffer { + v33 = get_elem_ptr v31, __ptr { string<3> }, v32, !227 + v34 = get_local __ptr { { ptr, u64, u64 } }, buffer_0, !229 + v35 = get_local __ptr { string<3> }, self_000, !232 + mem_copy_val v35, v33 + v36 = get_local __ptr { { ptr, u64, u64 } }, buffer_00, !233 + mem_copy_val v36, v34 + v37 = get_local __ptr { string<3> }, self_000, !235 + v38 = const u64 0 + v39 = get_elem_ptr v37, __ptr string<3>, v38, !237 + v40 = get_local __ptr { { ptr, u64, u64 } }, buffer_00, !239 + v41 = get_local __ptr string<3>, self_0000, !242 + mem_copy_val v41, v39 + v42 = get_local __ptr { { ptr, u64, u64 } }, buffer_000, !243 + mem_copy_val v42, v40 + v43 = get_local __ptr { { ptr, u64, u64 } }, buffer_000, !245 + v44 = const u64 0 + v45 = get_elem_ptr v43, __ptr { ptr, u64, u64 }, v44, !247 + v46 = asm(buffer: v45) -> __ptr { ptr, u64, u64 } buffer { } - v35 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 - mem_copy_val v35, v34 - v36 = get_local __ptr { ptr, u64, u64 }, __anon_000, !226 - mem_copy_val v36, v35 - v37 = const u64 0 - v38 = get_elem_ptr v36, __ptr ptr, v37, !227 - v39 = load v38, !228 - v40 = const u64 1 - v41 = get_elem_ptr v36, __ptr u64, v40, !229 - v42 = load v41, !230 - v43 = const u64 2 - v44 = get_elem_ptr v36, __ptr u64, v43, !231 - v45 = load v44, !232 - v46 = get_local __ptr string<3>, self_000, !234 - v47 = const u64 3 - v48 = add v45, v47, !235 - v49 = cmp gt v48 v42, !236 - cbr v49, encode_23_abi_encode_26_abi_encode_27_abi_encode_28_abi_encode_29_block1(), encode_23_abi_encode_26_abi_encode_27_abi_encode_28_abi_encode_29_block0(v39, v42), !237 + v47 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_00 + mem_copy_val v47, v46 + v48 = get_local __ptr { ptr, u64, u64 }, __anon_000, !248 + mem_copy_val v48, v47 + v49 = const u64 0 + v50 = get_elem_ptr v48, __ptr ptr, v49, !249 + v51 = load v50, !250 + v52 = const u64 1 + v53 = get_elem_ptr v48, __ptr u64, v52, !251 + v54 = load v53, !252 + v55 = const u64 2 + v56 = get_elem_ptr v48, __ptr u64, v55, !253 + v57 = load v56, !254 + v58 = get_local __ptr string<3>, self_0000, !256 + v59 = const u64 3 + v60 = add v57, v59, !257 + v61 = cmp gt v60 v54, !258 + cbr v61, encode_23_abi_encode_36_abi_encode_37_abi_encode_38_abi_encode_39_block1(), encode_23_abi_encode_36_abi_encode_37_abi_encode_38_abi_encode_39_block0(v51, v54), !259 - encode_23_abi_encode_26_abi_encode_27_abi_encode_28_abi_encode_29_block0(v50: ptr, v51: u64): - v52 = get_local __ptr string<3>, __anon_10, !238 - mem_copy_val v52, v46 - v53 = add v50, v45, !239 - v54 = cast_ptr v53 to __ptr u8, !240 - mem_copy_bytes v54, v52, 3, !241 - v55 = get_local __ptr { ptr, u64, u64 }, __anon_20, !242 - v56 = const u64 0 - v57 = get_elem_ptr v55, __ptr ptr, v56, !243 - store v50 to v57, !244 - v58 = const u64 1 - v59 = get_elem_ptr v55, __ptr u64, v58, !245 - store v51 to v59, !246 - v60 = const u64 2 - v61 = get_elem_ptr v55, __ptr u64, v60, !247 - store v48 to v61, !248 - v62 = asm(buffer: v55) -> __ptr { ptr, u64, u64 } buffer { + encode_23_abi_encode_36_abi_encode_37_abi_encode_38_abi_encode_39_block0(v62: ptr, v63: u64): + v64 = get_local __ptr string<3>, __anon_10, !260 + mem_copy_val v64, v58 + v65 = add v62, v57, !261 + v66 = cast_ptr v65 to __ptr u8, !262 + mem_copy_bytes v66, v64, 3, !263 + v67 = get_local __ptr { ptr, u64, u64 }, __anon_20, !264 + v68 = const u64 0 + v69 = get_elem_ptr v67, __ptr ptr, v68, !265 + store v62 to v69, !266 + v70 = const u64 1 + v71 = get_elem_ptr v67, __ptr u64, v70, !267 + store v63 to v71, !268 + v72 = const u64 2 + v73 = get_elem_ptr v67, __ptr u64, v72, !269 + store v60 to v73, !270 + v74 = asm(buffer: v67) -> __ptr { ptr, u64, u64 } buffer { } - v63 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_00 - mem_copy_val v63, v62 - v64 = get_local __ptr { { ptr, u64, u64 } }, __anon_30, !250 - v65 = const u64 0 - v66 = get_elem_ptr v64, __ptr { ptr, u64, u64 }, v65, !251 - mem_copy_val v66, v63 - v67 = get_local __ptr { { ptr, u64, u64 } }, buffer__00, !253 - mem_copy_val v67, v64 - v68 = get_local __ptr { { ptr, u64, u64 } }, buffer__00, !255 - v69 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !257 - mem_copy_val v69, v68 - v70 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, self_1, !259 - v71 = const u64 1 - v72 = get_elem_ptr v70, __ptr { u64, ( u64 | u64 ) }, v71, !261 - v73 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !263 - v74 = get_local __ptr { u64, ( u64 | u64 ) }, self_10, !266 - mem_copy_val v74, v72 - v75 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !267 - mem_copy_val v75, v73 - v76 = get_local __ptr { u64, ( u64 | u64 ) }, self_10, !269 - v77 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !271 - mem_copy_val v77, v76 - v78 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !272 - v79 = const u64 0 - v80 = get_elem_ptr v78, __ptr u64, v79, !273 - v81 = load v80, !274 - v82 = const u64 0, !268 - v83 = cmp eq v81 v82, !277 - cbr v83, encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block0(), encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block1(), !278 + v75 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_01 + mem_copy_val v75, v74 + v76 = get_local __ptr { { ptr, u64, u64 } }, __anon_30, !272 + v77 = const u64 0 + v78 = get_elem_ptr v76, __ptr { ptr, u64, u64 }, v77, !273 + mem_copy_val v78, v75 + v79 = get_local __ptr { { ptr, u64, u64 } }, buffer__00, !275 + mem_copy_val v79, v76 + v80 = get_local __ptr { { ptr, u64, u64 } }, buffer__00, !277 + v81 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !279 + mem_copy_val v81, v80 + v82 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, self_10, !281 + v83 = const u64 1 + v84 = get_elem_ptr v82, __ptr { u64, ( u64 | u64 ) }, v83, !283 + v85 = get_local __ptr { { ptr, u64, u64 } }, buffer__0, !285 + v86 = get_local __ptr { u64, ( u64 | u64 ) }, self_100, !288 + mem_copy_val v86, v84 + v87 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !289 + mem_copy_val v87, v85 + v88 = get_local __ptr { u64, ( u64 | u64 ) }, self_100, !291 + v89 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !293 + mem_copy_val v89, v88 + v90 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !294 + v91 = const u64 0 + v92 = get_elem_ptr v90, __ptr u64, v91, !295 + v93 = load v92, !296 + v94 = const u64 0, !290 + v95 = cmp eq v93 v94, !299 + cbr v95, encode_23_abi_encode_36_abi_encode_37_abi_encode_40_block0(), encode_23_abi_encode_36_abi_encode_37_abi_encode_40_block1(), !300 - encode_23_abi_encode_26_abi_encode_27_abi_encode_28_abi_encode_29_block1(): - v84 = const u64 2 - v85 = mul v42, v84, !279 - v86 = add v85, v47, !280 - v87 = asm(new_cap: v86, old_ptr: v39, len: v45) -> __ptr u8 hp, !281 { + encode_23_abi_encode_36_abi_encode_37_abi_encode_38_abi_encode_39_block1(): + v96 = const u64 2 + v97 = mul v54, v96, !301 + v98 = add v97, v59, !302 + v99 = asm(new_cap: v98, old_ptr: v51, len: v57) -> __ptr u8 hp, !303 { aloc new_cap mcp hp old_ptr len } - br encode_23_abi_encode_26_abi_encode_27_abi_encode_28_abi_encode_29_block0(v87, v86), !282 + br encode_23_abi_encode_36_abi_encode_37_abi_encode_38_abi_encode_39_block0(v99, v98), !304 - encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block0(): - v88 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !283 - v89 = const u64 1 - v90 = const u64 0 - v91 = get_elem_ptr v88, __ptr u64, v89, v90, !284 - v92 = load v91, !285 - v93 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !287 - v94 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg - mem_copy_val v94, v93 - v95 = get_local __ptr { { ptr, u64, u64 } }, __ret_val - v96 = const u64 0, !288 - v97 = call abi_encode_31(v96, v94, v95) - v98 = get_local __ptr { { ptr, u64, u64 } }, buffer__1, !290 - mem_copy_val v98, v95 - v99 = get_local __ptr { { ptr, u64, u64 } }, buffer__1, !292 - v100 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg0 - mem_copy_val v100, v99 - v101 = get_local __ptr { { ptr, u64, u64 } }, __ret_val0 - v102 = call abi_encode_31(v92, v100, v101) - v103 = get_local __ptr { { ptr, u64, u64 } }, buffer___0, !294 - mem_copy_val v103, v101 - v104 = get_local __ptr { { ptr, u64, u64 } }, buffer___0, !296 - v105 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg - mem_copy_val v105, v104 - br encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block5(v105), !297 + encode_23_abi_encode_36_abi_encode_37_abi_encode_40_block0(): + v100 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !305 + v101 = const u64 1 + v102 = const u64 0 + v103 = get_elem_ptr v100, __ptr u64, v101, v102, !306 + v104 = load v103, !307 + v105 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !309 + v106 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg + mem_copy_val v106, v105 + v107 = get_local __ptr { { ptr, u64, u64 } }, __ret_val + v108 = const u64 0, !310 + v109 = call abi_encode_41(v108, v106, v107) + v110 = get_local __ptr { { ptr, u64, u64 } }, buffer__1, !312 + mem_copy_val v110, v107 + v111 = get_local __ptr { { ptr, u64, u64 } }, buffer__1, !314 + v112 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg0 + mem_copy_val v112, v111 + v113 = get_local __ptr { { ptr, u64, u64 } }, __ret_val0 + v114 = call abi_encode_41(v104, v112, v113) + v115 = get_local __ptr { { ptr, u64, u64 } }, buffer___0, !316 + mem_copy_val v115, v113 + v116 = get_local __ptr { { ptr, u64, u64 } }, buffer___0, !318 + v117 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg + mem_copy_val v117, v116 + br encode_23_abi_encode_36_abi_encode_37_abi_encode_40_block5(v117), !319 - encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block1(): - v106 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !298 - v107 = const u64 0 - v108 = get_elem_ptr v106, __ptr u64, v107, !299 - v109 = load v108, !300 - v110 = const u64 1, !268 - v111 = cmp eq v109 v110, !303 - cbr v111, encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block2(), encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block3(), !304 + encode_23_abi_encode_36_abi_encode_37_abi_encode_40_block1(): + v118 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !320 + v119 = const u64 0 + v120 = get_elem_ptr v118, __ptr u64, v119, !321 + v121 = load v120, !322 + v122 = const u64 1, !290 + v123 = cmp eq v121 v122, !325 + cbr v123, encode_23_abi_encode_36_abi_encode_37_abi_encode_40_block2(), encode_23_abi_encode_36_abi_encode_37_abi_encode_40_block3(), !326 - encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block2(): - v112 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !305 - v113 = const u64 1 - v114 = const u64 1 - v115 = get_elem_ptr v112, __ptr u64, v113, v114, !306 - v116 = load v115, !307 - v117 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !309 - v118 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg1 - mem_copy_val v118, v117 - v119 = get_local __ptr { { ptr, u64, u64 } }, __ret_val1 - v120 = const u64 1, !310 - v121 = call abi_encode_31(v120, v118, v119) - v122 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !312 - mem_copy_val v122, v119 - v123 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !314 - v124 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg2 - mem_copy_val v124, v123 - v125 = get_local __ptr { { ptr, u64, u64 } }, __ret_val2 - v126 = call abi_encode_31(v116, v124, v125) - v127 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !316 - mem_copy_val v127, v125 - v128 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !318 - v129 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg - mem_copy_val v129, v128 - br encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block5(v129), !319 - - encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block3(): - v130 = const u64 14757395258967588866, !270 - revert v130, !320 - - encode_23_abi_encode_26_abi_encode_27_abi_encode_30_block5(v131: __ptr { { ptr, u64, u64 } }): - v132 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !322 - mem_copy_val v132, v131 - v133 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !324 - v134 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !326 - mem_copy_val v134, v133 - v135 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !328 - v136 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !330 + encode_23_abi_encode_36_abi_encode_37_abi_encode_40_block2(): + v124 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !327 + v125 = const u64 1 + v126 = const u64 1 + v127 = get_elem_ptr v124, __ptr u64, v125, v126, !328 + v128 = load v127, !329 + v129 = get_local __ptr { { ptr, u64, u64 } }, buffer_1, !331 + v130 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg1 + mem_copy_val v130, v129 + v131 = get_local __ptr { { ptr, u64, u64 } }, __ret_val1 + v132 = const u64 1, !332 + v133 = call abi_encode_41(v132, v130, v131) + v134 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !334 + mem_copy_val v134, v131 + v135 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !336 + v136 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg2 mem_copy_val v136, v135 - v137 = const u64 1, !331 - v138 = add v11, v137, !334 - br encode_23_abi_encode_26_while(v138), !335 + v137 = get_local __ptr { { ptr, u64, u64 } }, __ret_val2 + v138 = call abi_encode_41(v128, v136, v137) + v139 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !338 + mem_copy_val v139, v137 + v140 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !340 + v141 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg + mem_copy_val v141, v140 + br encode_23_abi_encode_36_abi_encode_37_abi_encode_40_block5(v141), !341 - encode_23_abi_encode_26_end_while(): - v139 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !337 - v140 = get_local __ptr { { ptr, u64, u64 } }, buffer, !339 - mem_copy_val v140, v139 - v141 = get_local __ptr { { ptr, u64, u64 } }, buffer, !341 - v142 = get_local __ptr { { ptr, u64, u64 } }, self_3, !344 - mem_copy_val v142, v141 - v143 = get_local __ptr { { ptr, u64, u64 } }, self_3, !346 - v144 = const u64 0 - v145 = get_elem_ptr v143, __ptr { ptr, u64, u64 }, v144, !347 - v146 = asm(buffer: v145) -> __ptr { ptr, u64, u64 } buffer { - } - v147 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_01 - mem_copy_val v147, v146 - v148 = get_local __ptr { ptr, u64, u64 }, __anon_01, !348 + encode_23_abi_encode_36_abi_encode_37_abi_encode_40_block3(): + v142 = const u64 14757395258967588866, !292 + revert v142, !342 + + encode_23_abi_encode_36_abi_encode_37_abi_encode_40_block5(v143: __ptr { { ptr, u64, u64 } }): + v144 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !344 + mem_copy_val v144, v143 + v145 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !346 + v146 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !348 + mem_copy_val v146, v145 + v147 = get_local __ptr { { ptr, u64, u64 } }, buffer___, !350 + v148 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !352 mem_copy_val v148, v147 - v149 = const u64 0 - v150 = get_elem_ptr v148, __ptr ptr, v149, !349 - v151 = const u64 2 - v152 = get_elem_ptr v148, __ptr u64, v151, !350 - v153 = get_local __ptr { ptr, u64 }, __anon_100, !351 - v154 = const u64 0 - v155 = get_elem_ptr v153, __ptr ptr, v154, !352 - mem_copy_val v155, v150 - v156 = const u64 1 - v157 = get_elem_ptr v153, __ptr u64, v156, !353 - mem_copy_val v157, v152 - v158 = asm(s: v153) -> __ptr slice s { + v149 = const u64 1, !353 + v150 = add v23, v149, !356 + br encode_23_abi_encode_36_while(v150), !357 + + encode_23_abi_encode_36_end_while(): + v151 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !359 + v152 = get_local __ptr { { ptr, u64, u64 } }, buffer, !361 + mem_copy_val v152, v151 + v153 = get_local __ptr { { ptr, u64, u64 } }, buffer, !363 + v154 = get_local __ptr { { ptr, u64, u64 } }, self_3, !366 + mem_copy_val v154, v153 + v155 = get_local __ptr { { ptr, u64, u64 } }, self_3, !368 + v156 = const u64 0 + v157 = get_elem_ptr v155, __ptr { ptr, u64, u64 }, v156, !369 + v158 = asm(buffer: v157) -> __ptr { ptr, u64, u64 } buffer { } - v159 = get_local __ptr slice, __aggr_memcpy_02 + v159 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_02 mem_copy_val v159, v158 - v160 = get_local __ptr slice, __log_arg + v160 = get_local __ptr { ptr, u64, u64 }, __anon_01, !370 mem_copy_val v160, v159 - v161 = const u64 3647243719605075626 - log __ptr slice v160, v161 - v162 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !354 - v163 = const u64 0, !355 - v164 = get_elem_ptr v162, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v163, !356 - v165 = const u64 0 - v166 = get_elem_ptr v164, __ptr { string<3> }, v165, !357 - v167 = const u64 0 - v168 = get_elem_ptr v166, __ptr string<3>, v167, !214 - v169 = get_global __ptr string<3>, __const_global - v170 = cast_ptr v169 to ptr, !358 - v171 = get_local __ptr { ptr, u64 }, __anon_0, !358 - v172 = const u64 0 - v173 = get_elem_ptr v171, __ptr ptr, v172 - store v170 to v173, !358 - v174 = const u64 1 - v175 = get_elem_ptr v171, __ptr u64, v174 - v176 = const u64 3 - store v176 to v175, !358 - v177 = get_local __ptr slice, __anon_1, !358 - mem_copy_bytes v177, v171, 16 - v178 = get_local __ptr string<3>, __tmp_arg3 - mem_copy_val v178, v168 - v179 = get_local __ptr slice, __tmp_arg4 - mem_copy_val v179, v177 - v180 = call eq_str_3_37(v178, v179) - v181 = const bool false, !360 - v182 = cmp eq v180 v181, !366 - cbr v182, assert_34_block0(), assert_34_block1(), !367 + v161 = const u64 0 + v162 = get_elem_ptr v160, __ptr ptr, v161, !371 + v163 = const u64 2 + v164 = get_elem_ptr v160, __ptr u64, v163, !372 + v165 = get_local __ptr { ptr, u64 }, __anon_100, !373 + v166 = const u64 0 + v167 = get_elem_ptr v165, __ptr ptr, v166, !374 + mem_copy_val v167, v162 + v168 = const u64 1 + v169 = get_elem_ptr v165, __ptr u64, v168, !375 + mem_copy_val v169, v164 + v170 = asm(s: v165) -> __ptr slice s { + } + v171 = get_local __ptr slice, __aggr_memcpy_03 + mem_copy_val v171, v170 + v172 = get_local __ptr slice, __tmp_block_arg0 + mem_copy_val v172, v171 + br encode_23_block2(v172), !174 - assert_34_block0(): - v183 = const u64 18446744073709486084 - revert v183, !372 + encode_23_block2(v173: __ptr slice): + v174 = get_local __ptr slice, __log_arg + mem_copy_val v174, v173 + v175 = const u64 3647243719605075626 + log __ptr slice v174, v175 + v176 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !376 + v177 = const u64 0, !377 + v178 = get_elem_ptr v176, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v177, !378 + v179 = const u64 0 + v180 = get_elem_ptr v178, __ptr { string<3> }, v179, !379 + v181 = const u64 0 + v182 = get_elem_ptr v180, __ptr string<3>, v181, !236 + v183 = get_global __ptr string<3>, __const_global + v184 = cast_ptr v183 to ptr, !380 + v185 = get_local __ptr { ptr, u64 }, __anon_0, !380 + v186 = const u64 0 + v187 = get_elem_ptr v185, __ptr ptr, v186 + store v184 to v187, !380 + v188 = const u64 1 + v189 = get_elem_ptr v185, __ptr u64, v188 + v190 = const u64 3 + store v190 to v189, !380 + v191 = get_local __ptr slice, __anon_1, !380 + mem_copy_bytes v191, v185, 16 + v192 = get_local __ptr string<3>, __tmp_arg3 + mem_copy_val v192, v182 + v193 = get_local __ptr slice, __tmp_arg4 + mem_copy_val v193, v191 + v194 = call eq_str_3_47(v192, v193) + v195 = const bool false, !382 + v196 = cmp eq v194 v195, !388 + cbr v196, assert_44_block0(), assert_44_block1(), !389 - assert_34_block1(): - v184 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !373 - v185 = const u64 0, !374 - v186 = get_elem_ptr v184, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v185, !375 - v187 = const u64 1 - v188 = get_elem_ptr v186, __ptr { u64, ( u64 | u64 ) }, v187, !376 - v189 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_1, !377 - mem_copy_val v189, v188 - v190 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_1, !378 - v191 = const u64 0 - v192 = get_elem_ptr v190, __ptr u64, v191, !378 - v193 = load v192 - v194 = const u64 0, !378 - v195 = cmp eq v193 v194, !381 - cbr v195, block0(), block1(), !379 + assert_44_block0(): + v197 = const u64 18446744073709486084 + revert v197, !394 + + assert_44_block1(): + v198 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !395 + v199 = const u64 0, !396 + v200 = get_elem_ptr v198, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v199, !397 + v201 = const u64 1 + v202 = get_elem_ptr v200, __ptr { u64, ( u64 | u64 ) }, v201, !398 + v203 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_1, !399 + mem_copy_val v203, v202 + v204 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_1, !400 + v205 = const u64 0 + v206 = get_elem_ptr v204, __ptr u64, v205, !400 + v207 = load v206 + v208 = const u64 0, !400 + v209 = cmp eq v207 v208, !403 + cbr v209, block0(), block1(), !401 block0(): - v196 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_1, !378 - v197 = const u64 1 - v198 = const u64 0 - v199 = get_elem_ptr v196, __ptr u64, v197, v198 - v200 = load v199 - v201 = const u64 1338, !382 - v202 = cmp eq v200 v201, !385 - v203 = cmp eq v202 v181, !388 - cbr v203, assert_34_block015(), assert_34_block116(), !389 + v210 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_1, !400 + v211 = const u64 1 + v212 = const u64 0 + v213 = get_elem_ptr v210, __ptr u64, v211, v212 + v214 = load v213 + v215 = const u64 1338, !404 + v216 = cmp eq v214 v215, !407 + v217 = cmp eq v216 v195, !410 + cbr v217, assert_44_block015(), assert_44_block116(), !411 - assert_34_block015(): - revert v183, !390 + assert_44_block015(): + revert v197, !412 - assert_34_block116(): - v204 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !391 - v205 = const u64 1, !392 - v206 = get_elem_ptr v204, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v205, !393 - v207 = const u64 0 - v208 = get_elem_ptr v206, __ptr { string<3> }, v207, !394 - v209 = const u64 0 - v210 = get_elem_ptr v208, __ptr string<3>, v209, !214 - v211 = get_global __ptr string<3>, __const_global0 - v212 = cast_ptr v211 to ptr, !395 - v213 = get_local __ptr { ptr, u64 }, __anon_2, !395 - v214 = const u64 0 - v215 = get_elem_ptr v213, __ptr ptr, v214 - store v212 to v215, !395 - v216 = const u64 1 - v217 = get_elem_ptr v213, __ptr u64, v216 - v218 = const u64 3 - store v218 to v217, !395 - v219 = get_local __ptr slice, __anon_3, !395 - mem_copy_bytes v219, v213, 16 - v220 = get_local __ptr string<3>, __tmp_arg5 - mem_copy_val v220, v210 - v221 = get_local __ptr slice, __tmp_arg6 - mem_copy_val v221, v219 - v222 = call eq_str_3_37(v220, v221) - v223 = cmp eq v222 v181, !398 - cbr v223, assert_34_block018(), assert_34_block119(), !399 + assert_44_block116(): + v218 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !413 + v219 = const u64 1, !414 + v220 = get_elem_ptr v218, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v219, !415 + v221 = const u64 0 + v222 = get_elem_ptr v220, __ptr { string<3> }, v221, !416 + v223 = const u64 0 + v224 = get_elem_ptr v222, __ptr string<3>, v223, !236 + v225 = get_global __ptr string<3>, __const_global0 + v226 = cast_ptr v225 to ptr, !417 + v227 = get_local __ptr { ptr, u64 }, __anon_2, !417 + v228 = const u64 0 + v229 = get_elem_ptr v227, __ptr ptr, v228 + store v226 to v229, !417 + v230 = const u64 1 + v231 = get_elem_ptr v227, __ptr u64, v230 + v232 = const u64 3 + store v232 to v231, !417 + v233 = get_local __ptr slice, __anon_3, !417 + mem_copy_bytes v233, v227, 16 + v234 = get_local __ptr string<3>, __tmp_arg5 + mem_copy_val v234, v224 + v235 = get_local __ptr slice, __tmp_arg6 + mem_copy_val v235, v233 + v236 = call eq_str_3_47(v234, v235) + v237 = cmp eq v236 v195, !420 + cbr v237, assert_44_block018(), assert_44_block119(), !421 - assert_34_block018(): - revert v183, !400 + assert_44_block018(): + revert v197, !422 - assert_34_block119(): - v224 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !401 - v225 = const u64 1, !402 - v226 = get_elem_ptr v224, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v225, !403 - v227 = const u64 1 - v228 = get_elem_ptr v226, __ptr { u64, ( u64 | u64 ) }, v227, !404 - v229 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_2, !405 - mem_copy_val v229, v228 - v230 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_2, !406 - v231 = const u64 0 - v232 = get_elem_ptr v230, __ptr u64, v231, !406 - v233 = load v232 - v234 = const u64 1, !406 - v235 = cmp eq v233 v234, !409 - cbr v235, block3(), block4(), !407 + assert_44_block119(): + v238 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !423 + v239 = const u64 1, !424 + v240 = get_elem_ptr v238, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v239, !425 + v241 = const u64 1 + v242 = get_elem_ptr v240, __ptr { u64, ( u64 | u64 ) }, v241, !426 + v243 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_2, !427 + mem_copy_val v243, v242 + v244 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_2, !428 + v245 = const u64 0 + v246 = get_elem_ptr v244, __ptr u64, v245, !428 + v247 = load v246 + v248 = const u64 1, !428 + v249 = cmp eq v247 v248, !431 + cbr v249, block3(), block4(), !429 block1(): - v236 = const u64 1, !410 - revert v236, !413 + v250 = const u64 1, !432 + revert v250, !435 block3(): - v237 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_2, !406 - v238 = const u64 1 - v239 = const u64 1 - v240 = get_elem_ptr v237, __ptr u64, v238, v239 - v241 = load v240 - v242 = const u64 1, !414 - v243 = cmp eq v241 v242, !417 - v244 = cmp eq v243 v181, !420 - cbr v244, assert_34_block021(), assert_34_block122(), !421 + v251 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_2, !428 + v252 = const u64 1 + v253 = const u64 1 + v254 = get_elem_ptr v251, __ptr u64, v252, v253 + v255 = load v254 + v256 = const u64 1, !436 + v257 = cmp eq v255 v256, !439 + v258 = cmp eq v257 v195, !442 + cbr v258, assert_44_block021(), assert_44_block122(), !443 - assert_34_block021(): - revert v183, !422 + assert_44_block021(): + revert v197, !444 - assert_34_block122(): - v245 = get_local __ptr { u64 }, __anon_4, !423 - v246 = const u64 0 - v247 = get_elem_ptr v245, __ptr u64, v246 - v248 = const u64 1, !424 - store v248 to v247, !423 - mem_copy_val __ret_value, v245 - v249 = const unit () - ret () v249 + assert_44_block122(): + v259 = get_local __ptr { u64 }, __anon_4, !445 + v260 = const u64 0 + v261 = get_elem_ptr v259, __ptr u64, v260 + v262 = const u64 1, !446 + store v262 to v261, !445 + mem_copy_val __ret_value, v259 + v263 = const unit () + ret () v263 block4(): - v250 = const u64 2, !425 - revert v250, !428 + v264 = const u64 2, !447 + revert v264, !450 } - pub fn abi_encode_31(self !429: u64, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }) -> (), !432 { + pub fn abi_encode_41(self !451: u64, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }) -> (), !454 { local mut { ptr, u64, u64 } __aggr_memcpy_0 local mut { ptr, u64, u64 } __aggr_memcpy_00 local { ptr, u64, u64 } __anon_0 @@ -688,9 +722,9 @@ script { entry(self: u64, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }): v0 = get_local __ptr { { ptr, u64, u64 } }, buffer_ mem_copy_val v0, buffer - v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !433 + v1 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !455 v2 = const u64 0 - v3 = get_elem_ptr v1, __ptr { ptr, u64, u64 }, v2, !224 + v3 = get_elem_ptr v1, __ptr { ptr, u64, u64 }, v2, !246 v4 = asm(buffer: v3) -> __ptr { ptr, u64, u64 } buffer { } v5 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 @@ -729,7 +763,7 @@ script { } v31 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_00 mem_copy_val v31, v30 - v32 = get_local __ptr { { ptr, u64, u64 } }, __anon_2, !434 + v32 = get_local __ptr { { ptr, u64, u64 } }, __anon_2, !456 v33 = const u64 0 v34 = get_elem_ptr v32, __ptr { ptr, u64, u64 }, v33 mem_copy_val v34, v31 @@ -748,7 +782,7 @@ script { br block0(v39, v38) } - pub fn new_32(__ret_value: __ptr { { ptr, u64, u64 } }) -> (), !437 { + pub fn new_42(__ret_value: __ptr { { ptr, u64, u64 } }) -> (), !459 { local mut { ptr, u64, u64 } __aggr_memcpy_0 local { ptr, u64, u64 } __anon_0 local { { ptr, u64, u64 } } __anon_1 @@ -773,7 +807,7 @@ script { } v11 = get_local __ptr { ptr, u64, u64 }, __aggr_memcpy_0 mem_copy_val v11, v10 - v12 = get_local __ptr { { ptr, u64, u64 } }, __anon_1, !438 + v12 = get_local __ptr { { ptr, u64, u64 } }, __anon_1, !460 v13 = const u64 0 v14 = get_elem_ptr v12, __ptr { ptr, u64, u64 }, v13 mem_copy_val v14, v11 @@ -782,7 +816,7 @@ script { ret () v15 } - fn eq_str_3_37(a: __ptr string<3>, b: __ptr slice) -> bool, !441 { + fn eq_str_3_47(a: __ptr string<3>, b: __ptr slice) -> bool, !463 { local { ptr, u64 } __tuple_1_ local string<3> a_ local slice self_ @@ -790,9 +824,9 @@ script { entry(a: __ptr string<3>, b: __ptr slice): v0 = get_local __ptr string<3>, a_ mem_copy_val v0, a - v1 = get_local __ptr slice, self_, !444 + v1 = get_local __ptr slice, self_, !466 mem_copy_val v1, b - v2 = get_local __ptr slice, self_, !447 + v2 = get_local __ptr slice, self_, !469 v3 = asm(s: v2) -> __ptr { ptr, u64 } s { } v4 = const u64 0 @@ -801,21 +835,21 @@ script { v7 = const u64 1 v8 = get_elem_ptr v3, __ptr u64, v7 v9 = load v8 - v10 = get_local __ptr { ptr, u64 }, __tuple_1_, !449 + v10 = get_local __ptr { ptr, u64 }, __tuple_1_, !471 v11 = const u64 0 v12 = get_elem_ptr v10, __ptr ptr, v11 store v6 to v12 v13 = const u64 1 v14 = get_elem_ptr v10, __ptr u64, v13 store v9 to v14 - v15 = get_local __ptr { ptr, u64 }, __tuple_1_, !450 + v15 = get_local __ptr { ptr, u64 }, __tuple_1_, !472 v16 = const u64 0 - v17 = get_elem_ptr v15, __ptr ptr, v16, !451 - v18 = load v17, !444 - v19 = get_local __ptr string<3>, a_, !452 - v20 = const u64 3, !453 - v21 = asm(a: v19, b: v18, len: v20, r) -> bool r, !454 { - meq r a b len, !455 + v17 = get_elem_ptr v15, __ptr ptr, v16, !473 + v18 = load v17, !466 + v19 = get_local __ptr string<3>, a_, !474 + v20 = const u64 3, !475 + v21 = asm(a: v19, b: v18, len: v20, r) -> bool r, !476 { + meq r a b len, !477 } ret bool v21 } @@ -826,50 +860,50 @@ script { !2 = fn_name_span !0 7 14 !3 = (!1 !2) !4 = "sway-lib-std/src/codec.sw" -!5 = span !4 1699 1700 +!5 = span !4 1542 1543 !6 = span !0 80 131 !7 = fn_call_path_span !0 80 98 -!8 = span !4 160666 160698 -!9 = fn_call_path_span !4 160666 160696 -!10 = span !4 1682 1706 +!8 = span !4 175056 175088 +!9 = fn_call_path_span !4 175056 175086 +!10 = span !4 1525 1549 !11 = (!6 !7 !8 !9 !10) !12 = (!6 !7 !8 !9 !10) -!13 = span !4 160641 160699 -!14 = fn_call_path_span !4 160641 160660 -!15 = span !4 160514 160534 +!13 = span !4 175031 175089 +!14 = fn_call_path_span !4 175031 175050 +!15 = span !4 174904 174924 !16 = (!6 !7 !13 !14 !15) !17 = (!6 !7 !13 !14) !18 = (!6 !7 !13 !14 !15) -!19 = span !4 160558 160564 +!19 = span !4 174948 174954 !20 = (!6 !7 !13 !14 !19) -!21 = span !4 160544 160565 -!22 = fn_call_path_span !4 160544 160557 -!23 = span !4 134798 134819 -!24 = fn_call_path_span !4 134798 134811 -!25 = span !4 106763 106773 +!21 = span !4 174934 174955 +!22 = fn_call_path_span !4 174934 174947 +!23 = span !4 147888 147909 +!24 = fn_call_path_span !4 147888 147901 +!25 = span !4 118623 118633 !26 = (!6 !7 !13 !14 !21 !22 !23 !24 !25) -!27 = span !4 106764 106769 +!27 = span !4 118624 118629 !28 = (!6 !7 !13 !14 !21 !22 !23 !24 !27) !29 = (!6 !7 !13 !14 !21 !22 !23 !24) !30 = (!6 !7 !13 !14 !21 !22 !23 !24) -!31 = span !4 106795 106796 +!31 = span !4 118655 118656 !32 = (!6 !7 !13 !14 !21 !22 !23 !24) -!33 = span !4 106816 106817 -!34 = span !4 106812 106817 -!35 = fn_call_path_span !4 106814 106815 +!33 = span !4 118676 118677 +!34 = span !4 118672 118677 +!35 = fn_call_path_span !4 118674 118675 !36 = (!6 !7 !13 !14 !21 !22 !23 !24 !34 !35) !37 = (!6 !7 !13 !14 !21 !22 !23 !24) -!38 = span !4 106832 106863 +!38 = span !4 118692 118723 !39 = (!6 !7 !13 !14 !21 !22 !23 !24 !38) !40 = (!6 !7 !13 !14 !21 !22 !23 !24 !38) -!41 = span !4 106882 106883 -!42 = span !4 106877 106883 -!43 = fn_call_path_span !4 106879 106881 +!41 = span !4 118742 118743 +!42 = span !4 118737 118743 +!43 = fn_call_path_span !4 118739 118741 !44 = (!6 !7 !13 !14 !21 !22 !23 !24 !42 !43) !45 = (!6 !7 !13 !14 !21 !22 !23 !24) -!46 = span !4 106904 106909 +!46 = span !4 118764 118769 !47 = (!6 !7 !13 !14 !21 !22 !23 !24 !46) -!48 = span !4 134797 134822 +!48 = span !4 147887 147912 !49 = (!6 !7 !13 !14 !21 !22 !48) !50 = (!6 !7 !13 !14 !21 !22 !48) !51 = span !0 178 182 @@ -877,43 +911,43 @@ script { !53 = span !0 234 241 !54 = span !0 203 242 !55 = fn_call_path_span !0 203 220 -!56 = span !4 81408 81434 +!56 = span !4 93230 93256 !57 = (!54 !55 !56) -!58 = span !4 4063 4067 -!59 = span !4 4038 4145 -!60 = fn_name_span !4 4045 4051 +!58 = span !4 3348 3352 +!59 = span !4 3323 3430 +!60 = fn_name_span !4 3330 3336 !61 = (!59 !60) -!62 = span !4 4120 4139 -!63 = fn_call_path_span !4 4120 4133 -!64 = span !4 135031 135052 -!65 = fn_call_path_span !4 135031 135044 +!62 = span !4 3405 3424 +!63 = fn_call_path_span !4 3405 3418 +!64 = span !4 148173 148194 +!65 = fn_call_path_span !4 148173 148186 !66 = span !0 404 429 !67 = fn_call_path_span !0 411 417 -!68 = span !4 86580 86600 -!69 = fn_call_path_span !4 86587 86597 +!68 = span !4 98402 98422 +!69 = fn_call_path_span !4 98409 98419 !70 = span !4 625 641 !71 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69 !70) -!72 = span !4 3351 3368 +!72 = span !4 2636 2653 !73 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69 !72) !74 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69 !72) !75 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69 !72) -!76 = span !4 86598 86599 +!76 = span !4 98420 98421 !77 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69 !72) -!78 = span !4 3330 3409 +!78 = span !4 2615 2694 !79 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69 !78) !80 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69) !81 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69) !82 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69) -!83 = span !4 3418 3461 +!83 = span !4 2703 2746 !84 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69 !83) -!85 = span !4 3471 3476 +!85 = span !4 2756 2761 !86 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69 !85) -!87 = span !4 86569 86601 +!87 = span !4 98391 98423 !88 = (!62 !63 !64 !65 !66 !67 !62 !63 !87) -!89 = span !4 86617 86621 +!89 = span !4 98439 98443 !90 = (!62 !63 !64 !65 !66 !67 !62 !63 !89) -!91 = span !4 86617 86627 -!92 = fn_call_path_span !4 86622 86625 +!91 = span !4 98439 98449 +!92 = fn_call_path_span !4 98444 98447 !93 = (!62 !63 !64 !65 !66 !67 !62 !63 !91 !92) !94 = "sway-lib-std/src/raw_slice.sw" !95 = span !94 2922 2926 @@ -930,20 +964,20 @@ script { !106 = span !0 392 432 !107 = (!62 !63 !64 !65 !106) !108 = (!62 !63 !64 !65) -!109 = span !4 135054 135075 -!110 = fn_call_path_span !4 135054 135067 +!109 = span !4 148196 148217 +!110 = fn_call_path_span !4 148196 148209 !111 = span !0 329 351 !112 = fn_call_path_span !0 336 342 -!113 = span !4 83379 83407 -!114 = fn_call_path_span !4 83386 83398 +!113 = span !4 95201 95229 +!114 = fn_call_path_span !4 95208 95220 !115 = (!62 !63 !109 !110 !111 !112 !62 !63 !113 !114) -!116 = span !4 2927 3008 +!116 = span !4 2212 2293 !117 = (!62 !63 !109 !110 !111 !112 !62 !63 !113 !114 !116) -!118 = span !4 2965 2978 +!118 = span !4 2250 2263 !119 = (!62 !63 !109 !110 !111 !112 !62 !63 !113 !114) !120 = (!62 !63 !109 !110 !111 !112 !62 !63 !113 !114) !121 = (!62 !63 !109 !110 !111 !112 !62 !63 !113 !114) -!122 = span !4 3018 3057 +!122 = span !4 2303 2342 !123 = (!62 !63 !109 !110 !111 !112 !62 !63 !113 !114 !122) !124 = span !0 369 370 !125 = span !0 369 418 @@ -988,7 +1022,7 @@ script { !164 = span !0 486 487 !165 = span !0 477 488 !166 = (!62 !63 !109 !110 !165) -!167 = span !4 135030 135076 +!167 = span !4 148172 148218 !168 = (!62 !63 !167) !169 = (!62 !63 !167) !170 = (!62 !63 !167) @@ -996,287 +1030,309 @@ script { !172 = fn_name_span !129 300 304 !173 = (!171 !172) !174 = span !129 360 363 -!175 = span !4 81189 81193 -!176 = (!174 !175) -!177 = span !4 81189 81219 -!178 = fn_call_path_span !4 81194 81204 -!179 = (!174 !177 !178) -!180 = (!174 !177 !178) -!181 = span !4 26624 26630 -!182 = (!174 !177 !178 !181) -!183 = span !4 26607 26631 -!184 = (!174 !177 !178 !183) -!185 = span !4 26652 26653 -!186 = (!174 !177 !178) -!187 = span !4 26673 26674 -!188 = span !4 26669 26674 -!189 = fn_call_path_span !4 26671 26672 -!190 = (!174 !177 !178 !188 !189) -!191 = (!174 !177 !178) -!192 = span !4 26698 26702 -!193 = (!174 !177 !178 !192) -!194 = span !4 26698 26705 -!195 = (!174 !177 !178 !194) -!196 = span !4 26717 26723 -!197 = (!174 !177 !178 !196) -!198 = span !4 26698 26724 -!199 = fn_call_path_span !4 26706 26716 -!200 = (!174 !177 !178 !198 !199) -!201 = (!174 !177 !178 !198 !199) -!202 = span !4 51667 51671 -!203 = (!174 !177 !178 !198 !199 !202) -!204 = span !4 51672 51673 -!205 = (!174 !177 !178 !198 !199 !204) -!206 = span !4 51685 51691 -!207 = (!174 !177 !178 !198 !199 !206) -!208 = span !4 51667 51692 -!209 = fn_call_path_span !4 51674 51684 -!210 = (!174 !177 !178 !198 !199 !208 !209) -!211 = (!174 !177 !178 !198 !199 !208 !209) -!212 = span !0 399 403 -!213 = (!174 !177 !178 !198 !199 !208 !209 !212) -!214 = span !129 282 293 -!215 = (!174 !177 !178 !198 !199 !208 !209 !214) -!216 = span !0 419 425 -!217 = (!174 !177 !178 !198 !199 !208 !209 !216) -!218 = span !0 399 426 -!219 = fn_call_path_span !0 408 418 -!220 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!221 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!222 = span !4 7794 7800 -!223 = (!174 !177 !178 !198 !199 !208 !209 !218 !219 !222) -!224 = span !4 87 114 -!225 = (!174 !177 !178 !198 !199 !208 !209 !218 !219 !224) -!226 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!227 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!228 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!229 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!230 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!231 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!232 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!233 = span !4 7809 7813 -!234 = (!174 !177 !178 !198 !199 !208 !209 !218 !219 !233) -!235 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!236 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!237 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!238 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!239 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!240 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!241 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!242 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!243 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!244 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!245 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!246 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!247 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!248 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!249 = span !4 7742 7825 -!250 = (!174 !177 !178 !198 !199 !208 !209 !218 !219 !249) -!251 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!252 = span !0 386 427 -!253 = (!174 !177 !178 !198 !199 !208 !209 !252) -!254 = span !0 449 455 -!255 = (!174 !177 !178 !198 !199 !208 !209 !254) -!256 = span !4 51654 51693 -!257 = (!174 !177 !178 !198 !199 !256) -!258 = span !4 51715 51719 -!259 = (!174 !177 !178 !198 !199 !258) -!260 = span !4 51720 51721 -!261 = (!174 !177 !178 !198 !199 !260) -!262 = span !4 51733 51739 -!263 = (!174 !177 !178 !198 !199 !262) -!264 = span !4 51715 51740 -!265 = fn_call_path_span !4 51722 51732 -!266 = (!174 !177 !178 !198 !199 !264 !265) -!267 = (!174 !177 !178 !198 !199 !264 !265) -!268 = span !0 405 409 -!269 = (!174 !177 !178 !198 !199 !264 !265 !268) -!270 = span !0 399 838 -!271 = (!174 !177 !178 !198 !199 !264 !265 !270) -!272 = (!174 !177 !178 !198 !199 !264 !265 !268) -!273 = (!174 !177 !178 !198 !199 !264 !265 !268) -!274 = (!174 !177 !178 !198 !199 !264 !265) -!275 = span !0 412 622 -!276 = fn_call_path_span !0 412 622 -!277 = (!174 !177 !178 !198 !199 !264 !265 !275 !276) -!278 = (!174 !177 !178 !198 !199 !264 !265 !275) -!279 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!280 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!281 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!282 = (!174 !177 !178 !198 !199 !208 !209 !218 !219) -!283 = (!174 !177 !178 !198 !199 !264 !265 !268) -!284 = (!174 !177 !178 !198 !199 !264 !265) -!285 = (!174 !177 !178 !198 !199 !264 !265) -!286 = span !0 497 503 -!287 = (!174 !177 !178 !198 !199 !264 !265 !286) -!288 = span !0 481 485 -!289 = span !0 468 505 -!290 = (!174 !177 !178 !198 !199 !264 !265 !289) -!291 = span !0 560 566 -!292 = (!174 !177 !178 !198 !199 !264 !265 !291) -!293 = span !0 530 568 -!294 = (!174 !177 !178 !198 !199 !264 !265 !293) -!295 = span !0 593 599 -!296 = (!174 !177 !178 !198 !199 !264 !265 !295) -!297 = (!174 !177 !178 !198 !199 !264 !265) -!298 = (!174 !177 !178 !198 !199 !264 !265 !268) -!299 = (!174 !177 !178 !198 !199 !264 !265 !268) -!300 = (!174 !177 !178 !198 !199 !264 !265) -!301 = span !0 624 834 -!302 = fn_call_path_span !0 624 834 -!303 = (!174 !177 !178 !198 !199 !264 !265 !301 !302) -!304 = (!174 !177 !178 !198 !199 !264 !265 !301) -!305 = (!174 !177 !178 !198 !199 !264 !265 !268) -!306 = (!174 !177 !178 !198 !199 !264 !265) -!307 = (!174 !177 !178 !198 !199 !264 !265) -!308 = span !0 709 715 -!309 = (!174 !177 !178 !198 !199 !264 !265 !308) -!310 = span !0 693 697 -!311 = span !0 680 717 -!312 = (!174 !177 !178 !198 !199 !264 !265 !311) -!313 = span !0 772 778 -!314 = (!174 !177 !178 !198 !199 !264 !265 !313) -!315 = span !0 742 780 -!316 = (!174 !177 !178 !198 !199 !264 !265 !315) -!317 = span !0 805 811 -!318 = (!174 !177 !178 !198 !199 !264 !265 !317) -!319 = (!174 !177 !178 !198 !199 !264 !265) -!320 = (!174 !177 !178 !198 !199 !264 !265 !270) -!321 = span !0 386 839 -!322 = (!174 !177 !178 !198 !199 !264 !265 !321) -!323 = span !0 860 866 -!324 = (!174 !177 !178 !198 !199 !264 !265 !323) -!325 = span !4 51702 51741 -!326 = (!174 !177 !178 !198 !199 !325) -!327 = span !4 51750 51756 -!328 = (!174 !177 !178 !198 !199 !327) -!329 = span !4 26689 26724 -!330 = (!174 !177 !178 !329) -!331 = span !4 26743 26744 -!332 = span !4 26738 26744 -!333 = fn_call_path_span !4 26740 26742 -!334 = (!174 !177 !178 !332 !333) -!335 = (!174 !177 !178) -!336 = span !4 26765 26771 -!337 = (!174 !177 !178 !336) -!338 = span !4 81176 81220 -!339 = (!174 !338) -!340 = span !4 81229 81235 -!341 = (!174 !340) -!342 = span !4 81229 81250 -!343 = fn_call_path_span !4 81236 81248 -!344 = (!174 !342 !343) -!345 = span !4 573 577 -!346 = (!174 !342 !343 !345) -!347 = (!174 !342 !343 !224) -!348 = (!174 !342 !343) -!349 = (!174 !342 !343) -!350 = (!174 !342 !343) -!351 = (!174 !342 !343) -!352 = (!174 !342 !343) -!353 = (!174 !342 !343) -!354 = span !129 386 389 -!355 = span !129 390 391 -!356 = span !129 386 392 -!357 = span !129 393 394 -!358 = span !129 400 405 -!359 = "sway-lib-std/src/ops.sw" -!360 = span !359 12573 12578 -!361 = span !129 370 407 -!362 = fn_call_path_span !129 370 376 -!363 = "sway-lib-std/src/assert.sw" -!364 = span !363 1015 1025 -!365 = fn_call_path_span !363 1015 1016 -!366 = (!361 !362 !364 !365) -!367 = (!361 !362 !364) -!368 = span !363 1036 1064 -!369 = fn_call_path_span !363 1036 1042 -!370 = "sway-lib-std/src/revert.sw" -!371 = span !370 757 771 -!372 = (!361 !362 !368 !369 !371) -!373 = span !129 426 429 -!374 = span !129 430 431 -!375 = span !129 426 432 -!376 = span !129 433 434 -!377 = span !129 420 503 -!378 = span !129 426 434 -!379 = span !129 445 473 -!380 = fn_call_path_span !129 445 473 -!381 = (!379 !380) -!382 = span !129 507 511 -!383 = span !129 420 511 -!384 = fn_call_path_span !129 504 506 -!385 = (!383 !384) -!386 = span !129 413 512 -!387 = fn_call_path_span !129 413 419 -!388 = (!386 !387 !364 !365) -!389 = (!386 !387 !364) -!390 = (!386 !387 !368 !369 !371) -!391 = span !129 535 538 -!392 = span !129 539 540 -!393 = span !129 535 541 -!394 = span !129 542 543 -!395 = span !129 549 554 -!396 = span !129 519 556 -!397 = fn_call_path_span !129 519 525 -!398 = (!396 !397 !364 !365) -!399 = (!396 !397 !364) -!400 = (!396 !397 !368 !369 !371) -!401 = span !129 575 578 -!402 = span !129 579 580 -!403 = span !129 575 581 -!404 = span !129 582 583 -!405 = span !129 569 652 -!406 = span !129 575 583 -!407 = span !129 594 622 -!408 = fn_call_path_span !129 594 622 -!409 = (!407 !408) -!410 = span !129 494 495 -!411 = span !129 487 496 -!412 = fn_call_path_span !129 487 493 -!413 = (!411 !412 !371) -!414 = span !129 656 657 -!415 = span !129 569 657 -!416 = fn_call_path_span !129 653 655 -!417 = (!415 !416) -!418 = span !129 562 658 -!419 = fn_call_path_span !129 562 568 -!420 = (!418 !419 !364 !365) -!421 = (!418 !419 !364) -!422 = (!418 !419 !368 !369 !371) -!423 = span !129 665 693 -!424 = span !129 686 687 -!425 = span !129 643 644 -!426 = span !129 636 645 -!427 = fn_call_path_span !129 636 642 -!428 = (!426 !427 !371) -!429 = span !4 5357 5361 -!430 = span !4 5343 5488 -!431 = fn_name_span !4 5346 5356 -!432 = (!430 !431) -!433 = span !4 5451 5457 -!434 = span !4 5399 5482 -!435 = span !4 160 260 -!436 = fn_name_span !4 167 170 -!437 = (!435 !436) -!438 = span !4 191 254 -!439 = span !129 50 202 -!440 = fn_name_span !129 53 61 -!441 = (!439 !440) -!442 = span !129 107 117 -!443 = fn_call_path_span !129 109 115 -!444 = (!442 !443) -!445 = "sway-lib-std/src/str.sw" -!446 = span !445 153 157 -!447 = (!442 !443 !446) -!448 = span !445 131 201 -!449 = (!442 !443 !448) -!450 = (!442 !443 !448) -!451 = (!442 !443 !448) -!452 = span !129 130 131 -!453 = span !129 148 149 -!454 = span !129 123 200 -!455 = span !129 164 177 +!175 = span !4 92713 92737 +!176 = fn_call_path_span !4 92713 92730 +!177 = span !4 3576 3598 +!178 = fn_call_path_span !4 3576 3596 +!179 = span !4 25980 26004 +!180 = fn_call_path_span !4 25980 25997 +!181 = span !4 52304 52361 +!182 = fn_call_path_span !4 52331 52333 +!183 = (!174 !175 !176 !177 !178 !179 !180 !177 !178 !181 !182) +!184 = (!174 !175) +!185 = span !4 92817 92821 +!186 = (!174 !185) +!187 = span !4 92795 92910 +!188 = (!174 !187) +!189 = span !4 92837 92846 +!190 = span !4 92860 92875 +!191 = span !4 92927 92938 +!192 = (!174 !191) +!193 = (!174 !191) +!194 = (!174 !191) +!195 = (!174 !191) +!196 = (!174 !191) +!197 = span !4 93011 93015 +!198 = (!174 !197) +!199 = span !4 93011 93041 +!200 = fn_call_path_span !4 93016 93026 +!201 = (!174 !199 !200) +!202 = (!174 !199 !200) +!203 = span !4 26088 26094 +!204 = (!174 !199 !200 !203) +!205 = span !4 26071 26095 +!206 = (!174 !199 !200 !205) +!207 = span !4 26116 26117 +!208 = (!174 !199 !200) +!209 = span !4 26137 26138 +!210 = span !4 26133 26138 +!211 = fn_call_path_span !4 26135 26136 +!212 = (!174 !199 !200 !210 !211) +!213 = (!174 !199 !200) +!214 = span !4 26162 26166 +!215 = (!174 !199 !200 !214) +!216 = span !4 26162 26169 +!217 = (!174 !199 !200 !216) +!218 = span !4 26181 26187 +!219 = (!174 !199 !200 !218) +!220 = span !4 26162 26188 +!221 = fn_call_path_span !4 26170 26180 +!222 = (!174 !199 !200 !220 !221) +!223 = (!174 !199 !200 !220 !221) +!224 = span !4 52497 52501 +!225 = (!174 !199 !200 !220 !221 !224) +!226 = span !4 52502 52503 +!227 = (!174 !199 !200 !220 !221 !226) +!228 = span !4 52515 52521 +!229 = (!174 !199 !200 !220 !221 !228) +!230 = span !4 52497 52522 +!231 = fn_call_path_span !4 52504 52514 +!232 = (!174 !199 !200 !220 !221 !230 !231) +!233 = (!174 !199 !200 !220 !221 !230 !231) +!234 = span !0 399 403 +!235 = (!174 !199 !200 !220 !221 !230 !231 !234) +!236 = span !129 282 293 +!237 = (!174 !199 !200 !220 !221 !230 !231 !236) +!238 = span !0 419 425 +!239 = (!174 !199 !200 !220 !221 !230 !231 !238) +!240 = span !0 399 426 +!241 = fn_call_path_span !0 408 418 +!242 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!243 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!244 = span !4 7220 7226 +!245 = (!174 !199 !200 !220 !221 !230 !231 !240 !241 !244) +!246 = span !4 87 114 +!247 = (!174 !199 !200 !220 !221 !230 !231 !240 !241 !246) +!248 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!249 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!250 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!251 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!252 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!253 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!254 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!255 = span !4 7235 7239 +!256 = (!174 !199 !200 !220 !221 !230 !231 !240 !241 !255) +!257 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!258 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!259 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!260 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!261 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!262 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!263 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!264 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!265 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!266 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!267 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!268 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!269 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!270 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!271 = span !4 7168 7251 +!272 = (!174 !199 !200 !220 !221 !230 !231 !240 !241 !271) +!273 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!274 = span !0 386 427 +!275 = (!174 !199 !200 !220 !221 !230 !231 !274) +!276 = span !0 449 455 +!277 = (!174 !199 !200 !220 !221 !230 !231 !276) +!278 = span !4 52484 52523 +!279 = (!174 !199 !200 !220 !221 !278) +!280 = span !4 52545 52549 +!281 = (!174 !199 !200 !220 !221 !280) +!282 = span !4 52550 52551 +!283 = (!174 !199 !200 !220 !221 !282) +!284 = span !4 52563 52569 +!285 = (!174 !199 !200 !220 !221 !284) +!286 = span !4 52545 52570 +!287 = fn_call_path_span !4 52552 52562 +!288 = (!174 !199 !200 !220 !221 !286 !287) +!289 = (!174 !199 !200 !220 !221 !286 !287) +!290 = span !0 405 409 +!291 = (!174 !199 !200 !220 !221 !286 !287 !290) +!292 = span !0 399 838 +!293 = (!174 !199 !200 !220 !221 !286 !287 !292) +!294 = (!174 !199 !200 !220 !221 !286 !287 !290) +!295 = (!174 !199 !200 !220 !221 !286 !287 !290) +!296 = (!174 !199 !200 !220 !221 !286 !287) +!297 = span !0 412 622 +!298 = fn_call_path_span !0 412 622 +!299 = (!174 !199 !200 !220 !221 !286 !287 !297 !298) +!300 = (!174 !199 !200 !220 !221 !286 !287 !297) +!301 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!302 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!303 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!304 = (!174 !199 !200 !220 !221 !230 !231 !240 !241) +!305 = (!174 !199 !200 !220 !221 !286 !287 !290) +!306 = (!174 !199 !200 !220 !221 !286 !287) +!307 = (!174 !199 !200 !220 !221 !286 !287) +!308 = span !0 497 503 +!309 = (!174 !199 !200 !220 !221 !286 !287 !308) +!310 = span !0 481 485 +!311 = span !0 468 505 +!312 = (!174 !199 !200 !220 !221 !286 !287 !311) +!313 = span !0 560 566 +!314 = (!174 !199 !200 !220 !221 !286 !287 !313) +!315 = span !0 530 568 +!316 = (!174 !199 !200 !220 !221 !286 !287 !315) +!317 = span !0 593 599 +!318 = (!174 !199 !200 !220 !221 !286 !287 !317) +!319 = (!174 !199 !200 !220 !221 !286 !287) +!320 = (!174 !199 !200 !220 !221 !286 !287 !290) +!321 = (!174 !199 !200 !220 !221 !286 !287 !290) +!322 = (!174 !199 !200 !220 !221 !286 !287) +!323 = span !0 624 834 +!324 = fn_call_path_span !0 624 834 +!325 = (!174 !199 !200 !220 !221 !286 !287 !323 !324) +!326 = (!174 !199 !200 !220 !221 !286 !287 !323) +!327 = (!174 !199 !200 !220 !221 !286 !287 !290) +!328 = (!174 !199 !200 !220 !221 !286 !287) +!329 = (!174 !199 !200 !220 !221 !286 !287) +!330 = span !0 709 715 +!331 = (!174 !199 !200 !220 !221 !286 !287 !330) +!332 = span !0 693 697 +!333 = span !0 680 717 +!334 = (!174 !199 !200 !220 !221 !286 !287 !333) +!335 = span !0 772 778 +!336 = (!174 !199 !200 !220 !221 !286 !287 !335) +!337 = span !0 742 780 +!338 = (!174 !199 !200 !220 !221 !286 !287 !337) +!339 = span !0 805 811 +!340 = (!174 !199 !200 !220 !221 !286 !287 !339) +!341 = (!174 !199 !200 !220 !221 !286 !287) +!342 = (!174 !199 !200 !220 !221 !286 !287 !292) +!343 = span !0 386 839 +!344 = (!174 !199 !200 !220 !221 !286 !287 !343) +!345 = span !0 860 866 +!346 = (!174 !199 !200 !220 !221 !286 !287 !345) +!347 = span !4 52532 52571 +!348 = (!174 !199 !200 !220 !221 !347) +!349 = span !4 52580 52586 +!350 = (!174 !199 !200 !220 !221 !349) +!351 = span !4 26153 26188 +!352 = (!174 !199 !200 !351) +!353 = span !4 26207 26208 +!354 = span !4 26202 26208 +!355 = fn_call_path_span !4 26204 26206 +!356 = (!174 !199 !200 !354 !355) +!357 = (!174 !199 !200) +!358 = span !4 26229 26235 +!359 = (!174 !199 !200 !358) +!360 = span !4 92998 93042 +!361 = (!174 !360) +!362 = span !4 93051 93057 +!363 = (!174 !362) +!364 = span !4 93051 93072 +!365 = fn_call_path_span !4 93058 93070 +!366 = (!174 !364 !365) +!367 = span !4 573 577 +!368 = (!174 !364 !365 !367) +!369 = (!174 !364 !365 !246) +!370 = (!174 !364 !365) +!371 = (!174 !364 !365) +!372 = (!174 !364 !365) +!373 = (!174 !364 !365) +!374 = (!174 !364 !365) +!375 = (!174 !364 !365) +!376 = span !129 386 389 +!377 = span !129 390 391 +!378 = span !129 386 392 +!379 = span !129 393 394 +!380 = span !129 400 405 +!381 = "sway-lib-std/src/ops.sw" +!382 = span !381 12573 12578 +!383 = span !129 370 407 +!384 = fn_call_path_span !129 370 376 +!385 = "sway-lib-std/src/assert.sw" +!386 = span !385 1015 1025 +!387 = fn_call_path_span !385 1015 1016 +!388 = (!383 !384 !386 !387) +!389 = (!383 !384 !386) +!390 = span !385 1036 1064 +!391 = fn_call_path_span !385 1036 1042 +!392 = "sway-lib-std/src/revert.sw" +!393 = span !392 757 771 +!394 = (!383 !384 !390 !391 !393) +!395 = span !129 426 429 +!396 = span !129 430 431 +!397 = span !129 426 432 +!398 = span !129 433 434 +!399 = span !129 420 503 +!400 = span !129 426 434 +!401 = span !129 445 473 +!402 = fn_call_path_span !129 445 473 +!403 = (!401 !402) +!404 = span !129 507 511 +!405 = span !129 420 511 +!406 = fn_call_path_span !129 504 506 +!407 = (!405 !406) +!408 = span !129 413 512 +!409 = fn_call_path_span !129 413 419 +!410 = (!408 !409 !386 !387) +!411 = (!408 !409 !386) +!412 = (!408 !409 !390 !391 !393) +!413 = span !129 535 538 +!414 = span !129 539 540 +!415 = span !129 535 541 +!416 = span !129 542 543 +!417 = span !129 549 554 +!418 = span !129 519 556 +!419 = fn_call_path_span !129 519 525 +!420 = (!418 !419 !386 !387) +!421 = (!418 !419 !386) +!422 = (!418 !419 !390 !391 !393) +!423 = span !129 575 578 +!424 = span !129 579 580 +!425 = span !129 575 581 +!426 = span !129 582 583 +!427 = span !129 569 652 +!428 = span !129 575 583 +!429 = span !129 594 622 +!430 = fn_call_path_span !129 594 622 +!431 = (!429 !430) +!432 = span !129 494 495 +!433 = span !129 487 496 +!434 = fn_call_path_span !129 487 493 +!435 = (!433 !434 !393) +!436 = span !129 656 657 +!437 = span !129 569 657 +!438 = fn_call_path_span !129 653 655 +!439 = (!437 !438) +!440 = span !129 562 658 +!441 = fn_call_path_span !129 562 568 +!442 = (!440 !441 !386 !387) +!443 = (!440 !441 !386) +!444 = (!440 !441 !390 !391 !393) +!445 = span !129 665 693 +!446 = span !129 686 687 +!447 = span !129 643 644 +!448 = span !129 636 645 +!449 = fn_call_path_span !129 636 642 +!450 = (!448 !449 !393) +!451 = span !4 4642 4646 +!452 = span !4 4628 4773 +!453 = fn_name_span !4 4631 4641 +!454 = (!452 !453) +!455 = span !4 4736 4742 +!456 = span !4 4684 4767 +!457 = span !4 160 260 +!458 = fn_name_span !4 167 170 +!459 = (!457 !458) +!460 = span !4 191 254 +!461 = span !129 50 202 +!462 = fn_name_span !129 53 61 +!463 = (!461 !462) +!464 = span !129 107 117 +!465 = fn_call_path_span !129 109 115 +!466 = (!464 !465) +!467 = "sway-lib-std/src/str.sw" +!468 = span !467 153 157 +!469 = (!464 !465 !468) +!470 = span !467 131 201 +!471 = (!464 !465 !470) +!472 = (!464 !465 !470) +!473 = (!464 !465 !470) +!474 = span !129 130 131 +!475 = span !129 148 149 +!476 = span !129 123 200 +!477 = span !129 164 177 ;; ASM: Final program ;; Program kind: Script @@ -1298,7 +1354,7 @@ addi $r3 $$locbase i176 ; get offset to local __ptr { ptr } addi $r0 $$locbase i184 ; get offset to local __ptr { { string<3> }, { u64, ( u64 | u64 ) } } move $$arg0 $r3 ; [call]: pass argument 0 move $$arg1 $r0 ; [call]: pass argument 1 -jal $$reta $pc i38 ; [call]: call decode_6 +jal $$reta $pc i38 ; [call]: call decode_7 addi $r1 $$locbase i128 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] addi $r2 $$locbase i184 ; get offset to local __ptr { { string<3> }, { u64, ( u64 | u64 ) } } movi $r0 i24 ; get array element size @@ -1328,7 +1384,7 @@ movi $r1 i8 ; initialize constant into register retd $r0 $r1 move $$arg0 $r3 ; [call]: pass argument 0 move $$arg1 $$locbase ; [call]: pass argument 1 -jal $$reta $pc i8 ; [call]: call decode_6 +jal $$reta $pc i8 ; [call]: call decode_7 addi $r0 $$locbase i128 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] movi $r1 i24 ; get array element size mul $r1 $r2 $r1 ; get offset to array element @@ -1338,7 +1394,7 @@ add $r2 $r2 $one jmpb $zero i24 pshl i255 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function decode_6 +move $$locbase $sp ; save locals base register for function decode_7 cfei i216 ; allocate 216 bytes for locals and 0 slots for call arguments move $r7 $$arg0 ; save argument 0 (self) move $r6 $$arg1 ; save argument 1 (__ret_value) @@ -1420,165 +1476,79 @@ jal $zero $$reta i0 ; return from call pshl i511 ; save registers 16..40 pshh i524288 ; save registers 40..64 move $$locbase $sp ; save locals base register for function main_22 -cfei i1216 ; allocate 1216 bytes for locals and 0 slots for call arguments +cfei i1264 ; allocate 1264 bytes for locals and 0 slots for call arguments move $r4 $$arg1 ; save argument 1 (__ret_value) move $r3 $$reta ; save return address -addi $r0 $$locbase i1040 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] +addi $r0 $$locbase i1088 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] mcpi $r0 $$arg0 i48 ; copy memory -addi $r0 $$locbase i1040 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] -addi $r1 $$locbase i992 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] +addi $r0 $$locbase i1088 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] +addi $r1 $$locbase i1040 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] mcpi $r1 $r0 i48 ; copy memory -addi $r0 $$locbase i992 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] -addi $r1 $$locbase i440 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r0 $$locbase i1040 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] +addi $r1 $$locbase i472 ; get offset to local __ptr { { ptr, u64, u64 } } move $$arg0 $r1 ; [call]: pass argument 0 -jal $$reta $pc i306 ; [call]: call new_32 -addi $r2 $$locbase i1088 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] +jal $$reta $pc i310 ; [call]: call new_42 +addi $r2 $$locbase i1192 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] mcpi $r2 $r0 i48 ; copy memory -addi $r0 $$locbase i656 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r0 $$locbase i704 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r0 $r1 i24 ; copy memory -addi $r0 $$locbase i656 ; get offset to local __ptr { { ptr, u64, u64 } } -addi $r1 $$locbase i776 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r0 $$locbase i704 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r1 $$locbase i824 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r1 $r0 i24 ; copy memory move $r8 $zero ; move parameter from branch to block argument movi $r0 i2 ; initialize constant into register lt $r0 $r8 $r0 -jnzf $r0 $zero i110 -addi $r0 $$locbase i776 ; get offset to local __ptr { { ptr, u64, u64 } } -addi $r1 $$locbase i632 ; get offset to local __ptr { { ptr, u64, u64 } } +jnzf $r0 $zero i21 +addi $r0 $$locbase i824 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r1 $$locbase i680 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r1 $r0 i24 ; copy memory -addi $r0 $$locbase i632 ; get offset to local __ptr { { ptr, u64, u64 } } -addi $r1 $$locbase i1192 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r0 $$locbase i680 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r1 $$locbase i1240 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r1 $r0 i24 ; copy memory -addi $r0 $$locbase i1192 ; get offset to local __ptr { { ptr, u64, u64 } } -addi $r1 $$locbase i48 ; get offset to local __ptr { ptr, u64, u64 } +addi $r0 $$locbase i1240 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r1 $$locbase i64 ; get offset to local __ptr { ptr, u64, u64 } mcpi $r1 $r0 i24 ; copy memory -addi $r0 $$locbase i128 ; get offset to local __ptr { ptr, u64, u64 } +addi $r0 $$locbase i160 ; get offset to local __ptr { ptr, u64, u64 } mcpi $r0 $r1 i24 ; copy memory addi $r1 $r0 i16 ; get offset to aggregate element -addi $r2 $$locbase i176 ; get offset to local __ptr { ptr, u64 } +addi $r2 $$locbase i208 ; get offset to local __ptr { ptr, u64 } mcpi $r2 $r0 i8 ; copy memory addi $r0 $r2 i8 ; get offset to aggregate element mcpi $r0 $r1 i8 ; copy memory -addi $r0 $$locbase i72 ; get offset to local __ptr slice -mcpi $r0 $r2 i16 ; copy memory -addi $r1 $$locbase i280 ; get offset to local __ptr slice -mcpi $r1 $r0 i16 ; copy memory -load $r0 data_NonConfigurable_0; load constant from data section -lw $r1 $$locbase i35 ; load slice pointer for logging data -lw $r2 $$locbase i36 ; load slice size for logging data -logd $zero $r0 $r1 $r2 ; log slice -addi $r0 $$locbase i1040 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] -movi $r1 i24 ; get array element size -mul $r1 $zero $r1 ; get offset to array element -add $r1 $r0 $r1 ; add array element offset to array base -addr $r0 data_NonConfigurable_1; get __const_global's address in data section -addi $r2 $$locbase i88 ; get offset to local __ptr { ptr, u64 } -sw $$locbase $r0 i11 ; store word -movi $r0 i3 ; initialize constant into register -sw $$locbase $r0 i12 ; store word -addi $r0 $$locbase i152 ; get offset to local __ptr slice -mcpi $r0 $r2 i16 ; copy memory -addi $r2 $$locbase i560 ; get offset to local __ptr string<3> -mcpi $r2 $r1 i8 ; copy memory -addi $r1 $$locbase i568 ; get offset to local __ptr slice -mcpi $r1 $r0 i16 ; copy memory -move $$arg0 $r2 ; [call]: pass argument 0 -move $$arg1 $r1 ; [call]: pass argument 1 -jal $$reta $pc i274 ; [call]: call eq_str_3_37 -eq $r0 $$retv $zero -jnzf $r0 $zero i63 -addi $r0 $$locbase i1040 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] -movi $r1 i24 ; get array element size -mul $r1 $zero $r1 ; get offset to array element -add $r1 $r0 $r1 ; add array element offset to array base -addi $r0 $r1 i8 ; get offset to aggregate element -addi $r1 $$locbase i296 ; get offset to local __ptr { u64, ( u64 | u64 ) } -mcpi $r1 $r0 i16 ; copy memory -lw $r0 $$locbase i37 ; load word -eq $r0 $r0 $zero -jnzf $r0 $zero i1 -rvrt $one -lw $r0 $$locbase i38 ; load word -movi $r1 i1338 ; initialize constant into register -eq $r0 $r0 $r1 -eq $r0 $r0 $zero -jnzf $r0 $zero i45 -addi $r0 $$locbase i1040 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] -movi $r1 i24 ; get array element size -mul $r1 $one $r1 ; get offset to array element -add $r1 $r0 $r1 ; add array element offset to array base -addr $r0 data_NonConfigurable_2; get __const_global0's address in data section -addi $r2 $$locbase i192 ; get offset to local __ptr { ptr, u64 } -sw $$locbase $r0 i24 ; store word -movi $r0 i3 ; initialize constant into register -sw $$locbase $r0 i25 ; store word -addi $r0 $$locbase i232 ; get offset to local __ptr slice +addi $r0 $$locbase i88 ; get offset to local __ptr slice mcpi $r0 $r2 i16 ; copy memory -addi $r2 $$locbase i584 ; get offset to local __ptr string<3> -mcpi $r2 $r1 i8 ; copy memory -addi $r1 $$locbase i592 ; get offset to local __ptr slice +addi $r1 $$locbase i664 ; get offset to local __ptr slice mcpi $r1 $r0 i16 ; copy memory -move $$arg0 $r2 ; [call]: pass argument 0 -move $$arg1 $r1 ; [call]: pass argument 1 -jal $$reta $pc i237 ; [call]: call eq_str_3_37 -eq $r0 $$retv $zero -jnzf $r0 $zero i22 -addi $r0 $$locbase i1040 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] -movi $r1 i24 ; get array element size -mul $r1 $one $r1 ; get offset to array element -add $r1 $r0 $r1 ; add array element offset to array base -addi $r0 $r1 i8 ; get offset to aggregate element -addi $r1 $$locbase i328 ; get offset to local __ptr { u64, ( u64 | u64 ) } -mcpi $r1 $r0 i16 ; copy memory -lw $r0 $$locbase i41 ; load word -eq $r0 $r0 $one -jnzf $r0 $zero i2 -movi $r0 i2 ; initialize constant into register -rvrt $r0 -lw $r0 $$locbase i42 ; load word -eq $r0 $r0 $one -eq $r0 $r0 $zero -jnzf $r0 $zero i4 -addi $r0 $$locbase i272 ; get offset to local __ptr { u64 } -sw $$locbase $one i34 ; store word -mcpi $r4 $r0 i8 ; copy memory -jmpf $zero i143 -load $r0 data_NonConfigurable_3; load constant from data section -rvrt $r0 -load $r0 data_NonConfigurable_3; load constant from data section -rvrt $r0 -load $r0 data_NonConfigurable_3; load constant from data section -rvrt $r0 -load $r0 data_NonConfigurable_3; load constant from data section -rvrt $r0 -addi $r0 $$locbase i1088 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] +jmpf $zero i136 +addi $r0 $$locbase i1192 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] movi $r1 i24 ; get array element size mul $r1 $r8 $r1 ; get offset to array element add $r1 $r0 $r1 ; add array element offset to array base -addi $r0 $$locbase i776 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r0 $$locbase i824 ; get offset to local __ptr { { ptr, u64, u64 } } addi $r2 $$locbase i1152 ; get offset to local __ptr { { string<3> }, { u64, ( u64 | u64 ) } } mcpi $r2 $r1 i24 ; copy memory -addi $r1 $$locbase i680 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r1 $$locbase i728 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r1 $r0 i24 ; copy memory addi $r0 $$locbase i1152 ; get offset to local __ptr { { string<3> }, { u64, ( u64 | u64 ) } } -addi $r1 $$locbase i680 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r1 $$locbase i728 ; get offset to local __ptr { { ptr, u64, u64 } } addi $r2 $$locbase i1136 ; get offset to local __ptr { string<3> } mcpi $r2 $r0 i8 ; copy memory -addi $r0 $$locbase i704 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r0 $$locbase i752 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r0 $r1 i24 ; copy memory addi $r0 $$locbase i1136 ; get offset to local __ptr { string<3> } -addi $r1 $$locbase i704 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r1 $$locbase i752 ; get offset to local __ptr { { ptr, u64, u64 } } addi $r2 $$locbase i1144 ; get offset to local __ptr string<3> mcpi $r2 $r0 i8 ; copy memory -addi $r0 $$locbase i728 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r0 $$locbase i776 ; get offset to local __ptr { { ptr, u64, u64 } } +mcpi $r0 $r1 i24 ; copy memory +addi $r0 $$locbase i776 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r1 $$locbase i16 ; get offset to local __ptr { ptr, u64, u64 } +mcpi $r1 $r0 i24 ; copy memory +addi $r0 $$locbase i136 ; get offset to local __ptr { ptr, u64, u64 } mcpi $r0 $r1 i24 ; copy memory -addi $r0 $$locbase i728 ; get offset to local __ptr { { ptr, u64, u64 } } -mcpi $$locbase $r0 i24 ; copy memory -addi $r0 $$locbase i104 ; get offset to local __ptr { ptr, u64, u64 } -mcpi $r0 $$locbase i24 ; copy memory -lw $r0 $$locbase i13 ; load word -lw $r7 $$locbase i14 ; load word -lw $r1 $$locbase i15 ; load word +lw $r0 $$locbase i17 ; load word +lw $r7 $$locbase i18 ; load word +lw $r1 $$locbase i19 ; load word addi $r2 $$locbase i1144 ; get offset to local __ptr string<3> movi $r5 i3 ; initialize constant into register add $r5 $r1 $r5 @@ -1592,108 +1562,198 @@ add $r7 $r6 $r7 aloc $r7 mcp $hp $r0 $r1 move $r0 $hp ; move parameter from branch to block argument -addi $r6 $$locbase i168 ; get offset to local __ptr string<3> +addi $r6 $$locbase i200 ; get offset to local __ptr string<3> mcpi $r6 $r2 i8 ; copy memory add $r1 $r0 $r1 mcpi $r1 $r6 i3 ; copy memory -addi $r1 $$locbase i208 ; get offset to local __ptr { ptr, u64, u64 } -sw $$locbase $r0 i26 ; store word -sw $$locbase $r7 i27 ; store word -sw $$locbase $r5 i28 ; store word -addi $r0 $$locbase i24 ; get offset to local __ptr { ptr, u64, u64 } +addi $r1 $$locbase i240 ; get offset to local __ptr { ptr, u64, u64 } +sw $$locbase $r0 i30 ; store word +sw $$locbase $r7 i31 ; store word +sw $$locbase $r5 i32 ; store word +addi $r0 $$locbase i40 ; get offset to local __ptr { ptr, u64, u64 } mcpi $r0 $r1 i24 ; copy memory -addi $r1 $$locbase i248 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r1 $$locbase i280 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r1 $r0 i24 ; copy memory -addi $r0 $$locbase i824 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r0 $$locbase i872 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r0 $r1 i24 ; copy memory -addi $r0 $$locbase i824 ; get offset to local __ptr { { ptr, u64, u64 } } -addi $r1 $$locbase i800 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r0 $$locbase i872 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r1 $$locbase i848 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r1 $r0 i24 ; copy memory addi $r0 $$locbase i1152 ; get offset to local __ptr { { string<3> }, { u64, ( u64 | u64 ) } } addi $r0 $r0 i8 ; get offset to aggregate element -addi $r1 $$locbase i800 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r1 $$locbase i848 ; get offset to local __ptr { { ptr, u64, u64 } } addi $r2 $$locbase i1176 ; get offset to local __ptr { u64, ( u64 | u64 ) } mcpi $r2 $r0 i16 ; copy memory -addi $r0 $$locbase i752 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r0 $$locbase i800 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r0 $r1 i24 ; copy memory addi $r0 $$locbase i1176 ; get offset to local __ptr { u64, ( u64 | u64 ) } -addi $r1 $$locbase i312 ; get offset to local __ptr { u64, ( u64 | u64 ) } +addi $r1 $$locbase i344 ; get offset to local __ptr { u64, ( u64 | u64 ) } mcpi $r1 $r0 i16 ; copy memory -lw $r0 $$locbase i39 ; load word +lw $r0 $$locbase i43 ; load word eq $r0 $r0 $zero jnzf $r0 $zero i30 -lw $r0 $$locbase i39 ; load word +lw $r0 $$locbase i43 ; load word eq $r0 $r0 $one jnzf $r0 $zero i2 -load $r0 data_NonConfigurable_4; load constant from data section +load $r0 data_NonConfigurable_0; load constant from data section rvrt $r0 -lw $r0 $$locbase i40 ; load word -addi $r1 $$locbase i752 ; get offset to local __ptr { { ptr, u64, u64 } } -addi $r2 $$locbase i512 ; get offset to local __ptr { { ptr, u64, u64 } } +lw $r0 $$locbase i44 ; load word +addi $r1 $$locbase i800 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r2 $$locbase i544 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r2 $r1 i24 ; copy memory -addi $r1 $$locbase i392 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r1 $$locbase i424 ; get offset to local __ptr { { ptr, u64, u64 } } move $$arg0 $one ; [call]: pass argument 0 move $$arg1 $r2 ; [call]: pass argument 1 move $$arg2 $r1 ; [call]: pass argument 2 -jal $$reta $pc i56 ; [call]: call abi_encode_31 -addi $r2 $$locbase i920 ; get offset to local __ptr { { ptr, u64, u64 } } +jal $$reta $pc i148 ; [call]: call abi_encode_41 +addi $r2 $$locbase i968 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r2 $r1 i24 ; copy memory -addi $r1 $$locbase i920 ; get offset to local __ptr { { ptr, u64, u64 } } -addi $r2 $$locbase i536 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r1 $$locbase i968 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r2 $$locbase i568 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r2 $r1 i24 ; copy memory -addi $r1 $$locbase i416 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r1 $$locbase i448 ; get offset to local __ptr { { ptr, u64, u64 } } move $$arg0 $r0 ; [call]: pass argument 0 move $$arg1 $r2 ; [call]: pass argument 1 move $$arg2 $r1 ; [call]: pass argument 2 -jal $$reta $pc i46 ; [call]: call abi_encode_31 -addi $r0 $$locbase i944 ; get offset to local __ptr { { ptr, u64, u64 } } +jal $$reta $pc i138 ; [call]: call abi_encode_41 +addi $r0 $$locbase i992 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r0 $r1 i24 ; copy memory -addi $r0 $$locbase i944 ; get offset to local __ptr { { ptr, u64, u64 } } -addi $r1 $$locbase i608 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r0 $$locbase i992 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r1 $$locbase i640 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r1 $r0 i24 ; copy memory jmpf $zero i24 -lw $r0 $$locbase i40 ; load word -addi $r1 $$locbase i752 ; get offset to local __ptr { { ptr, u64, u64 } } -addi $r2 $$locbase i464 ; get offset to local __ptr { { ptr, u64, u64 } } +lw $r0 $$locbase i44 ; load word +addi $r1 $$locbase i800 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r2 $$locbase i496 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r2 $r1 i24 ; copy memory -addi $r1 $$locbase i344 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r1 $$locbase i376 ; get offset to local __ptr { { ptr, u64, u64 } } move $$arg0 $zero ; [call]: pass argument 0 move $$arg1 $r2 ; [call]: pass argument 1 move $$arg2 $r1 ; [call]: pass argument 2 -jal $$reta $pc i31 ; [call]: call abi_encode_31 -addi $r2 $$locbase i848 ; get offset to local __ptr { { ptr, u64, u64 } } +jal $$reta $pc i123 ; [call]: call abi_encode_41 +addi $r2 $$locbase i896 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r2 $r1 i24 ; copy memory -addi $r1 $$locbase i848 ; get offset to local __ptr { { ptr, u64, u64 } } -addi $r2 $$locbase i488 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r1 $$locbase i896 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r2 $$locbase i520 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r2 $r1 i24 ; copy memory -addi $r1 $$locbase i368 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r1 $$locbase i400 ; get offset to local __ptr { { ptr, u64, u64 } } move $$arg0 $r0 ; [call]: pass argument 0 move $$arg1 $r2 ; [call]: pass argument 1 move $$arg2 $r1 ; [call]: pass argument 2 -jal $$reta $pc i21 ; [call]: call abi_encode_31 -addi $r0 $$locbase i896 ; get offset to local __ptr { { ptr, u64, u64 } } +jal $$reta $pc i113 ; [call]: call abi_encode_41 +addi $r0 $$locbase i944 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r0 $r1 i24 ; copy memory -addi $r0 $$locbase i896 ; get offset to local __ptr { { ptr, u64, u64 } } -addi $r1 $$locbase i608 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r0 $$locbase i944 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r1 $$locbase i640 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r1 $r0 i24 ; copy memory -addi $r0 $$locbase i968 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r0 $$locbase i1016 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r0 $r1 i24 ; copy memory -addi $r0 $$locbase i968 ; get offset to local __ptr { { ptr, u64, u64 } } -addi $r1 $$locbase i872 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r0 $$locbase i1016 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r1 $$locbase i920 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r1 $r0 i24 ; copy memory -addi $r0 $$locbase i872 ; get offset to local __ptr { { ptr, u64, u64 } } -addi $r1 $$locbase i776 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r0 $$locbase i920 ; get offset to local __ptr { { ptr, u64, u64 } } +addi $r1 $$locbase i824 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r1 $r0 i24 ; copy memory add $r8 $r8 $one -jmpb $zero i246 -cfsi i1216 ; free 1216 bytes for locals and 0 slots for extra call arguments +jmpb $zero i158 +addi $r0 $$locbase i312 ; get offset to local __ptr slice +mcpi $r0 $r1 i16 ; copy memory +load $r0 data_NonConfigurable_1; load constant from data section +lw $r1 $$locbase i39 ; load slice pointer for logging data +lw $r2 $$locbase i40 ; load slice size for logging data +logd $zero $r0 $r1 $r2 ; log slice +addi $r0 $$locbase i1088 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] +movi $r1 i24 ; get array element size +mul $r1 $zero $r1 ; get offset to array element +add $r1 $r0 $r1 ; add array element offset to array base +addr $r0 data_NonConfigurable_2; get __const_global's address in data section +addi $r2 $$locbase i104 ; get offset to local __ptr { ptr, u64 } +sw $$locbase $r0 i13 ; store word +movi $r0 i3 ; initialize constant into register +sw $$locbase $r0 i14 ; store word +addi $r0 $$locbase i184 ; get offset to local __ptr slice +mcpi $r0 $r2 i16 ; copy memory +addi $r2 $$locbase i592 ; get offset to local __ptr string<3> +mcpi $r2 $r1 i8 ; copy memory +addi $r1 $$locbase i600 ; get offset to local __ptr slice +mcpi $r1 $r0 i16 ; copy memory +move $$arg0 $r2 ; [call]: pass argument 0 +move $$arg1 $r1 ; [call]: pass argument 1 +jal $$reta $pc i139 ; [call]: call eq_str_3_47 +eq $r0 $$retv $zero +jnzf $r0 $zero i63 +addi $r0 $$locbase i1088 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] +movi $r1 i24 ; get array element size +mul $r1 $zero $r1 ; get offset to array element +add $r1 $r0 $r1 ; add array element offset to array base +addi $r0 $r1 i8 ; get offset to aggregate element +addi $r1 $$locbase i328 ; get offset to local __ptr { u64, ( u64 | u64 ) } +mcpi $r1 $r0 i16 ; copy memory +lw $r0 $$locbase i41 ; load word +eq $r0 $r0 $zero +jnzf $r0 $zero i1 +rvrt $one +lw $r0 $$locbase i42 ; load word +movi $r1 i1338 ; initialize constant into register +eq $r0 $r0 $r1 +eq $r0 $r0 $zero +jnzf $r0 $zero i45 +addi $r0 $$locbase i1088 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] +movi $r1 i24 ; get array element size +mul $r1 $one $r1 ; get offset to array element +add $r1 $r0 $r1 ; add array element offset to array base +addr $r0 data_NonConfigurable_3; get __const_global0's address in data section +addi $r2 $$locbase i224 ; get offset to local __ptr { ptr, u64 } +sw $$locbase $r0 i28 ; store word +movi $r0 i3 ; initialize constant into register +sw $$locbase $r0 i29 ; store word +addi $r0 $$locbase i264 ; get offset to local __ptr slice +mcpi $r0 $r2 i16 ; copy memory +addi $r2 $$locbase i616 ; get offset to local __ptr string<3> +mcpi $r2 $r1 i8 ; copy memory +addi $r1 $$locbase i624 ; get offset to local __ptr slice +mcpi $r1 $r0 i16 ; copy memory +move $$arg0 $r2 ; [call]: pass argument 0 +move $$arg1 $r1 ; [call]: pass argument 1 +jal $$reta $pc i102 ; [call]: call eq_str_3_47 +eq $r0 $$retv $zero +jnzf $r0 $zero i22 +addi $r0 $$locbase i1088 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] +movi $r1 i24 ; get array element size +mul $r1 $one $r1 ; get offset to array element +add $r1 $r0 $r1 ; add array element offset to array base +addi $r0 $r1 i8 ; get offset to aggregate element +addi $r1 $$locbase i360 ; get offset to local __ptr { u64, ( u64 | u64 ) } +mcpi $r1 $r0 i16 ; copy memory +lw $r0 $$locbase i45 ; load word +eq $r0 $r0 $one +jnzf $r0 $zero i2 +movi $r0 i2 ; initialize constant into register +rvrt $r0 +lw $r0 $$locbase i46 ; load word +eq $r0 $r0 $one +eq $r0 $r0 $zero +jnzf $r0 $zero i4 +addi $r0 $$locbase i304 ; get offset to local __ptr { u64 } +sw $$locbase $one i38 ; store word +mcpi $r4 $r0 i8 ; copy memory +jmpf $zero i8 +load $r0 data_NonConfigurable_4; load constant from data section +rvrt $r0 +load $r0 data_NonConfigurable_4; load constant from data section +rvrt $r0 +load $r0 data_NonConfigurable_4; load constant from data section +rvrt $r0 +load $r0 data_NonConfigurable_4; load constant from data section +rvrt $r0 +cfsi i1264 ; free 1264 bytes for locals and 0 slots for extra call arguments move $$reta $r3 ; restore return address poph i524288 ; restore registers 40..64 popl i511 ; restore registers 16..40 jal $zero $$reta i0 ; return from call pshl i255 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function abi_encode_31 +move $$locbase $sp ; save locals base register for function abi_encode_41 cfei i144 ; allocate 144 bytes for locals and 0 slots for call arguments move $r0 $$arg0 ; save argument 0 (self) move $r1 $$arg2 ; save argument 2 (__ret_value) @@ -1737,7 +1797,7 @@ popl i255 ; restore registers 16..40 jal $zero $$reta i0 ; return from call pshl i15 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function new_32 +move $$locbase $sp ; save locals base register for function new_42 cfei i72 ; allocate 72 bytes for locals and 0 slots for call arguments move $r0 $$arg0 ; save argument 0 (__ret_value) move $r1 $$reta ; save return address @@ -1759,7 +1819,7 @@ popl i15 ; restore registers 16..40 jal $zero $$reta i0 ; return from call pshl i15 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function eq_str_3_37 +move $$locbase $sp ; save locals base register for function eq_str_3_47 cfei i40 ; allocate 40 bytes for locals and 0 slots for call arguments move $r0 $$arg1 ; save argument 1 (b) move $r1 $$reta ; save return address @@ -1782,18 +1842,18 @@ poph i524288 ; restore registers 40..64 popl i15 ; restore registers 16..40 jal $zero $$reta i0 ; return from call .data: -data_NonConfigurable_0 .word 3647243719605075626 -data_NonConfigurable_1 .bytes[3] 73 65 74 set -data_NonConfigurable_2 .bytes[3] 61 64 64 add -data_NonConfigurable_3 .word 18446744073709486084 -data_NonConfigurable_4 .word 14757395258967588866 +data_NonConfigurable_0 .word 14757395258967588866 +data_NonConfigurable_1 .word 3647243719605075626 +data_NonConfigurable_2 .bytes[3] 73 65 74 set +data_NonConfigurable_3 .bytes[3] 61 64 64 add +data_NonConfigurable_4 .word 18446744073709486084 ;; --- START OF TARGET BYTECODE --- 0x00000000 MOVE R60 $pc ;; [26, 240, 48, 0] 0x00000004 JMPF $zero 0x4 ;; [116, 0, 0, 4] -0x00000008 ;; [0, 0, 0, 0, 0, 0, 7, 216] +0x00000008 ;; [0, 0, 0, 0, 0, 0, 7, 232] 0x00000010 ;; [0, 0, 0, 0, 0, 0, 0, 0] 0x00000018 LW R63 R60 0x1 ;; [93, 255, 192, 1] 0x0000001c ADD R63 R63 R60 ;; [16, 255, 255, 0] @@ -1927,376 +1987,380 @@ data_NonConfigurable_4 .word 14757395258967588866 0x0000021c PSHL 0x1ff ;; [149, 0, 1, 255] 0x00000220 PSHH 0x80000 ;; [150, 8, 0, 0] 0x00000224 MOVE R59 $sp ;; [26, 236, 80, 0] -0x00000228 CFEI 0x4c0 ;; [145, 0, 4, 192] +0x00000228 CFEI 0x4f0 ;; [145, 0, 4, 240] 0x0000022c MOVE R20 R57 ;; [26, 83, 144, 0] 0x00000230 MOVE R19 R62 ;; [26, 79, 224, 0] -0x00000234 ADDI $writable R59 0x410 ;; [80, 67, 180, 16] +0x00000234 ADDI $writable R59 0x440 ;; [80, 67, 180, 64] 0x00000238 MCPI $writable R58 0x30 ;; [96, 67, 160, 48] -0x0000023c ADDI $writable R59 0x410 ;; [80, 67, 180, 16] -0x00000240 ADDI R17 R59 0x3e0 ;; [80, 71, 179, 224] +0x0000023c ADDI $writable R59 0x440 ;; [80, 67, 180, 64] +0x00000240 ADDI R17 R59 0x410 ;; [80, 71, 180, 16] 0x00000244 MCPI R17 $writable 0x30 ;; [96, 69, 0, 48] -0x00000248 ADDI $writable R59 0x3e0 ;; [80, 67, 179, 224] -0x0000024c ADDI R17 R59 0x1b8 ;; [80, 71, 177, 184] +0x00000248 ADDI $writable R59 0x410 ;; [80, 67, 180, 16] +0x0000024c ADDI R17 R59 0x1d8 ;; [80, 71, 177, 216] 0x00000250 MOVE R58 R17 ;; [26, 233, 16, 0] -0x00000254 JAL R62 $pc 0x132 ;; [153, 248, 49, 50] -0x00000258 ADDI R18 R59 0x440 ;; [80, 75, 180, 64] +0x00000254 JAL R62 $pc 0x136 ;; [153, 248, 49, 54] +0x00000258 ADDI R18 R59 0x4a8 ;; [80, 75, 180, 168] 0x0000025c MCPI R18 $writable 0x30 ;; [96, 73, 0, 48] -0x00000260 ADDI $writable R59 0x290 ;; [80, 67, 178, 144] +0x00000260 ADDI $writable R59 0x2c0 ;; [80, 67, 178, 192] 0x00000264 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x00000268 ADDI $writable R59 0x290 ;; [80, 67, 178, 144] -0x0000026c ADDI R17 R59 0x308 ;; [80, 71, 179, 8] +0x00000268 ADDI $writable R59 0x2c0 ;; [80, 67, 178, 192] +0x0000026c ADDI R17 R59 0x338 ;; [80, 71, 179, 56] 0x00000270 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] 0x00000274 MOVE R24 $zero ;; [26, 96, 0, 0] 0x00000278 MOVI $writable 0x2 ;; [114, 64, 0, 2] 0x0000027c LT $writable R24 $writable ;; [22, 65, 132, 0] -0x00000280 JNZF $writable $zero 0x6e ;; [118, 64, 0, 110] -0x00000284 ADDI $writable R59 0x308 ;; [80, 67, 179, 8] -0x00000288 ADDI R17 R59 0x278 ;; [80, 71, 178, 120] +0x00000280 JNZF $writable $zero 0x15 ;; [118, 64, 0, 21] +0x00000284 ADDI $writable R59 0x338 ;; [80, 67, 179, 56] +0x00000288 ADDI R17 R59 0x2a8 ;; [80, 71, 178, 168] 0x0000028c MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x00000290 ADDI $writable R59 0x278 ;; [80, 67, 178, 120] -0x00000294 ADDI R17 R59 0x4a8 ;; [80, 71, 180, 168] +0x00000290 ADDI $writable R59 0x2a8 ;; [80, 67, 178, 168] +0x00000294 ADDI R17 R59 0x4d8 ;; [80, 71, 180, 216] 0x00000298 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x0000029c ADDI $writable R59 0x4a8 ;; [80, 67, 180, 168] -0x000002a0 ADDI R17 R59 0x30 ;; [80, 71, 176, 48] +0x0000029c ADDI $writable R59 0x4d8 ;; [80, 67, 180, 216] +0x000002a0 ADDI R17 R59 0x40 ;; [80, 71, 176, 64] 0x000002a4 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x000002a8 ADDI $writable R59 0x80 ;; [80, 67, 176, 128] +0x000002a8 ADDI $writable R59 0xa0 ;; [80, 67, 176, 160] 0x000002ac MCPI $writable R17 0x18 ;; [96, 65, 16, 24] 0x000002b0 ADDI R17 $writable 0x10 ;; [80, 69, 0, 16] -0x000002b4 ADDI R18 R59 0xb0 ;; [80, 75, 176, 176] +0x000002b4 ADDI R18 R59 0xd0 ;; [80, 75, 176, 208] 0x000002b8 MCPI R18 $writable 0x8 ;; [96, 73, 0, 8] 0x000002bc ADDI $writable R18 0x8 ;; [80, 65, 32, 8] 0x000002c0 MCPI $writable R17 0x8 ;; [96, 65, 16, 8] -0x000002c4 ADDI $writable R59 0x48 ;; [80, 67, 176, 72] +0x000002c4 ADDI $writable R59 0x58 ;; [80, 67, 176, 88] 0x000002c8 MCPI $writable R18 0x10 ;; [96, 65, 32, 16] -0x000002cc ADDI R17 R59 0x118 ;; [80, 71, 177, 24] +0x000002cc ADDI R17 R59 0x298 ;; [80, 71, 178, 152] 0x000002d0 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x000002d4 LW $writable R63 0x0 ;; [93, 67, 240, 0] -0x000002d8 LW R17 R59 0x23 ;; [93, 71, 176, 35] -0x000002dc LW R18 R59 0x24 ;; [93, 75, 176, 36] -0x000002e0 LOGD $zero $writable R17 R18 ;; [52, 1, 4, 82] -0x000002e4 ADDI $writable R59 0x410 ;; [80, 67, 180, 16] -0x000002e8 MOVI R17 0x18 ;; [114, 68, 0, 24] -0x000002ec MUL R17 $zero R17 ;; [27, 68, 4, 64] -0x000002f0 ADD R17 $writable R17 ;; [16, 69, 4, 64] -0x000002f4 MOVI $writable 0x8 ;; [114, 64, 0, 8] -0x000002f8 ADD $writable $writable R63 ;; [16, 65, 15, 192] -0x000002fc ADDI R18 R59 0x58 ;; [80, 75, 176, 88] -0x00000300 SW R59 $writable 0xb ;; [95, 237, 0, 11] -0x00000304 MOVI $writable 0x3 ;; [114, 64, 0, 3] -0x00000308 SW R59 $writable 0xc ;; [95, 237, 0, 12] -0x0000030c ADDI $writable R59 0x98 ;; [80, 67, 176, 152] -0x00000310 MCPI $writable R18 0x10 ;; [96, 65, 32, 16] -0x00000314 ADDI R18 R59 0x230 ;; [80, 75, 178, 48] -0x00000318 MCPI R18 R17 0x8 ;; [96, 73, 16, 8] -0x0000031c ADDI R17 R59 0x238 ;; [80, 71, 178, 56] -0x00000320 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x00000324 MOVE R58 R18 ;; [26, 233, 32, 0] -0x00000328 MOVE R57 R17 ;; [26, 229, 16, 0] -0x0000032c JAL R62 $pc 0x112 ;; [153, 248, 49, 18] -0x00000330 EQ $writable R61 $zero ;; [19, 67, 208, 0] -0x00000334 JNZF $writable $zero 0x3f ;; [118, 64, 0, 63] -0x00000338 ADDI $writable R59 0x410 ;; [80, 67, 180, 16] -0x0000033c MOVI R17 0x18 ;; [114, 68, 0, 24] -0x00000340 MUL R17 $zero R17 ;; [27, 68, 4, 64] -0x00000344 ADD R17 $writable R17 ;; [16, 69, 4, 64] -0x00000348 ADDI $writable R17 0x8 ;; [80, 65, 16, 8] -0x0000034c ADDI R17 R59 0x128 ;; [80, 71, 177, 40] -0x00000350 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x00000354 LW $writable R59 0x25 ;; [93, 67, 176, 37] -0x00000358 EQ $writable $writable $zero ;; [19, 65, 0, 0] -0x0000035c JNZF $writable $zero 0x1 ;; [118, 64, 0, 1] -0x00000360 RVRT $one ;; [54, 4, 0, 0] -0x00000364 LW $writable R59 0x26 ;; [93, 67, 176, 38] -0x00000368 MOVI R17 0x53a ;; [114, 68, 5, 58] -0x0000036c EQ $writable $writable R17 ;; [19, 65, 4, 64] -0x00000370 EQ $writable $writable $zero ;; [19, 65, 0, 0] -0x00000374 JNZF $writable $zero 0x2d ;; [118, 64, 0, 45] -0x00000378 ADDI $writable R59 0x410 ;; [80, 67, 180, 16] -0x0000037c MOVI R17 0x18 ;; [114, 68, 0, 24] -0x00000380 MUL R17 $one R17 ;; [27, 68, 20, 64] -0x00000384 ADD R17 $writable R17 ;; [16, 69, 4, 64] -0x00000388 MOVI $writable 0x10 ;; [114, 64, 0, 16] -0x0000038c ADD $writable $writable R63 ;; [16, 65, 15, 192] -0x00000390 ADDI R18 R59 0xc0 ;; [80, 75, 176, 192] -0x00000394 SW R59 $writable 0x18 ;; [95, 237, 0, 24] -0x00000398 MOVI $writable 0x3 ;; [114, 64, 0, 3] -0x0000039c SW R59 $writable 0x19 ;; [95, 237, 0, 25] -0x000003a0 ADDI $writable R59 0xe8 ;; [80, 67, 176, 232] -0x000003a4 MCPI $writable R18 0x10 ;; [96, 65, 32, 16] -0x000003a8 ADDI R18 R59 0x248 ;; [80, 75, 178, 72] -0x000003ac MCPI R18 R17 0x8 ;; [96, 73, 16, 8] -0x000003b0 ADDI R17 R59 0x250 ;; [80, 71, 178, 80] -0x000003b4 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x000003b8 MOVE R58 R18 ;; [26, 233, 32, 0] -0x000003bc MOVE R57 R17 ;; [26, 229, 16, 0] -0x000003c0 JAL R62 $pc 0xed ;; [153, 248, 48, 237] -0x000003c4 EQ $writable R61 $zero ;; [19, 67, 208, 0] -0x000003c8 JNZF $writable $zero 0x16 ;; [118, 64, 0, 22] -0x000003cc ADDI $writable R59 0x410 ;; [80, 67, 180, 16] -0x000003d0 MOVI R17 0x18 ;; [114, 68, 0, 24] -0x000003d4 MUL R17 $one R17 ;; [27, 68, 20, 64] -0x000003d8 ADD R17 $writable R17 ;; [16, 69, 4, 64] -0x000003dc ADDI $writable R17 0x8 ;; [80, 65, 16, 8] -0x000003e0 ADDI R17 R59 0x148 ;; [80, 71, 177, 72] -0x000003e4 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x000003e8 LW $writable R59 0x29 ;; [93, 67, 176, 41] -0x000003ec EQ $writable $writable $one ;; [19, 65, 0, 64] -0x000003f0 JNZF $writable $zero 0x2 ;; [118, 64, 0, 2] -0x000003f4 MOVI $writable 0x2 ;; [114, 64, 0, 2] -0x000003f8 RVRT $writable ;; [54, 64, 0, 0] -0x000003fc LW $writable R59 0x2a ;; [93, 67, 176, 42] -0x00000400 EQ $writable $writable $one ;; [19, 65, 0, 64] -0x00000404 EQ $writable $writable $zero ;; [19, 65, 0, 0] -0x00000408 JNZF $writable $zero 0x4 ;; [118, 64, 0, 4] -0x0000040c ADDI $writable R59 0x110 ;; [80, 67, 177, 16] -0x00000410 SW R59 $one 0x22 ;; [95, 236, 16, 34] -0x00000414 MCPI R20 $writable 0x8 ;; [96, 81, 0, 8] -0x00000418 JMPF $zero 0x8f ;; [116, 0, 0, 143] -0x0000041c LW $writable R63 0x3 ;; [93, 67, 240, 3] -0x00000420 RVRT $writable ;; [54, 64, 0, 0] -0x00000424 LW $writable R63 0x3 ;; [93, 67, 240, 3] -0x00000428 RVRT $writable ;; [54, 64, 0, 0] -0x0000042c LW $writable R63 0x3 ;; [93, 67, 240, 3] -0x00000430 RVRT $writable ;; [54, 64, 0, 0] -0x00000434 LW $writable R63 0x3 ;; [93, 67, 240, 3] -0x00000438 RVRT $writable ;; [54, 64, 0, 0] -0x0000043c ADDI $writable R59 0x440 ;; [80, 67, 180, 64] -0x00000440 MOVI R17 0x18 ;; [114, 68, 0, 24] -0x00000444 MUL R17 R24 R17 ;; [27, 69, 132, 64] -0x00000448 ADD R17 $writable R17 ;; [16, 69, 4, 64] -0x0000044c ADDI $writable R59 0x308 ;; [80, 67, 179, 8] -0x00000450 ADDI R18 R59 0x480 ;; [80, 75, 180, 128] -0x00000454 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] -0x00000458 ADDI R17 R59 0x2a8 ;; [80, 71, 178, 168] -0x0000045c MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x00000460 ADDI $writable R59 0x480 ;; [80, 67, 180, 128] -0x00000464 ADDI R17 R59 0x2a8 ;; [80, 71, 178, 168] -0x00000468 ADDI R18 R59 0x470 ;; [80, 75, 180, 112] -0x0000046c MCPI R18 $writable 0x8 ;; [96, 73, 0, 8] -0x00000470 ADDI $writable R59 0x2c0 ;; [80, 67, 178, 192] -0x00000474 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x00000478 ADDI $writable R59 0x470 ;; [80, 67, 180, 112] -0x0000047c ADDI R17 R59 0x2c0 ;; [80, 71, 178, 192] -0x00000480 ADDI R18 R59 0x478 ;; [80, 75, 180, 120] -0x00000484 MCPI R18 $writable 0x8 ;; [96, 73, 0, 8] -0x00000488 ADDI $writable R59 0x2d8 ;; [80, 67, 178, 216] -0x0000048c MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x00000490 ADDI $writable R59 0x2d8 ;; [80, 67, 178, 216] -0x00000494 MCPI R59 $writable 0x18 ;; [96, 237, 0, 24] -0x00000498 ADDI $writable R59 0x68 ;; [80, 67, 176, 104] -0x0000049c MCPI $writable R59 0x18 ;; [96, 67, 176, 24] -0x000004a0 LW $writable R59 0xd ;; [93, 67, 176, 13] -0x000004a4 LW R23 R59 0xe ;; [93, 95, 176, 14] -0x000004a8 LW R17 R59 0xf ;; [93, 71, 176, 15] -0x000004ac ADDI R18 R59 0x478 ;; [80, 75, 180, 120] -0x000004b0 MOVI R21 0x3 ;; [114, 84, 0, 3] -0x000004b4 ADD R21 R17 R21 ;; [16, 85, 21, 64] -0x000004b8 GT R22 R21 R23 ;; [21, 89, 85, 192] -0x000004bc JNZF R22 $zero 0x1 ;; [118, 88, 0, 1] -0x000004c0 JMPF $zero 0x7 ;; [116, 0, 0, 7] -0x000004c4 MOVI R22 0x2 ;; [114, 88, 0, 2] -0x000004c8 MUL R22 R23 R22 ;; [27, 89, 117, 128] -0x000004cc MOVI R23 0x3 ;; [114, 92, 0, 3] -0x000004d0 ADD R23 R22 R23 ;; [16, 93, 101, 192] -0x000004d4 ALOC R23 ;; [38, 92, 0, 0] -0x000004d8 MCP $hp $writable R17 ;; [40, 29, 4, 64] -0x000004dc MOVE $writable $hp ;; [26, 64, 112, 0] -0x000004e0 ADDI R22 R59 0xa8 ;; [80, 91, 176, 168] -0x000004e4 MCPI R22 R18 0x8 ;; [96, 89, 32, 8] -0x000004e8 ADD R17 $writable R17 ;; [16, 69, 4, 64] -0x000004ec MCPI R17 R22 0x3 ;; [96, 69, 96, 3] -0x000004f0 ADDI R17 R59 0xd0 ;; [80, 71, 176, 208] -0x000004f4 SW R59 $writable 0x1a ;; [95, 237, 0, 26] -0x000004f8 SW R59 R23 0x1b ;; [95, 237, 112, 27] -0x000004fc SW R59 R21 0x1c ;; [95, 237, 80, 28] -0x00000500 ADDI $writable R59 0x18 ;; [80, 67, 176, 24] -0x00000504 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x00000508 ADDI R17 R59 0xf8 ;; [80, 71, 176, 248] -0x0000050c MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x00000510 ADDI $writable R59 0x338 ;; [80, 67, 179, 56] -0x00000514 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x00000518 ADDI $writable R59 0x338 ;; [80, 67, 179, 56] -0x0000051c ADDI R17 R59 0x320 ;; [80, 71, 179, 32] -0x00000520 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x00000524 ADDI $writable R59 0x480 ;; [80, 67, 180, 128] -0x00000528 ADDI $writable $writable 0x8 ;; [80, 65, 0, 8] -0x0000052c ADDI R17 R59 0x320 ;; [80, 71, 179, 32] -0x00000530 ADDI R18 R59 0x498 ;; [80, 75, 180, 152] -0x00000534 MCPI R18 $writable 0x10 ;; [96, 73, 0, 16] -0x00000538 ADDI $writable R59 0x2f0 ;; [80, 67, 178, 240] -0x0000053c MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x00000540 ADDI $writable R59 0x498 ;; [80, 67, 180, 152] -0x00000544 ADDI R17 R59 0x138 ;; [80, 71, 177, 56] -0x00000548 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] -0x0000054c LW $writable R59 0x27 ;; [93, 67, 176, 39] -0x00000550 EQ $writable $writable $zero ;; [19, 65, 0, 0] -0x00000554 JNZF $writable $zero 0x1e ;; [118, 64, 0, 30] -0x00000558 LW $writable R59 0x27 ;; [93, 67, 176, 39] -0x0000055c EQ $writable $writable $one ;; [19, 65, 0, 64] -0x00000560 JNZF $writable $zero 0x2 ;; [118, 64, 0, 2] -0x00000564 LW $writable R63 0x4 ;; [93, 67, 240, 4] -0x00000568 RVRT $writable ;; [54, 64, 0, 0] -0x0000056c LW $writable R59 0x28 ;; [93, 67, 176, 40] -0x00000570 ADDI R17 R59 0x2f0 ;; [80, 71, 178, 240] -0x00000574 ADDI R18 R59 0x200 ;; [80, 75, 178, 0] -0x00000578 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] -0x0000057c ADDI R17 R59 0x188 ;; [80, 71, 177, 136] -0x00000580 MOVE R58 $one ;; [26, 232, 16, 0] -0x00000584 MOVE R57 R18 ;; [26, 229, 32, 0] -0x00000588 MOVE R56 R17 ;; [26, 225, 16, 0] -0x0000058c JAL R62 $pc 0x38 ;; [153, 248, 48, 56] -0x00000590 ADDI R18 R59 0x398 ;; [80, 75, 179, 152] -0x00000594 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] -0x00000598 ADDI R17 R59 0x398 ;; [80, 71, 179, 152] -0x0000059c ADDI R18 R59 0x218 ;; [80, 75, 178, 24] -0x000005a0 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] -0x000005a4 ADDI R17 R59 0x1a0 ;; [80, 71, 177, 160] -0x000005a8 MOVE R58 $writable ;; [26, 233, 0, 0] -0x000005ac MOVE R57 R18 ;; [26, 229, 32, 0] -0x000005b0 MOVE R56 R17 ;; [26, 225, 16, 0] -0x000005b4 JAL R62 $pc 0x2e ;; [153, 248, 48, 46] -0x000005b8 ADDI $writable R59 0x3b0 ;; [80, 67, 179, 176] -0x000005bc MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x000005c0 ADDI $writable R59 0x3b0 ;; [80, 67, 179, 176] -0x000005c4 ADDI R17 R59 0x260 ;; [80, 71, 178, 96] -0x000005c8 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x000005cc JMPF $zero 0x18 ;; [116, 0, 0, 24] -0x000005d0 LW $writable R59 0x28 ;; [93, 67, 176, 40] -0x000005d4 ADDI R17 R59 0x2f0 ;; [80, 71, 178, 240] -0x000005d8 ADDI R18 R59 0x1d0 ;; [80, 75, 177, 208] -0x000005dc MCPI R18 R17 0x18 ;; [96, 73, 16, 24] -0x000005e0 ADDI R17 R59 0x158 ;; [80, 71, 177, 88] -0x000005e4 MOVE R58 $zero ;; [26, 232, 0, 0] -0x000005e8 MOVE R57 R18 ;; [26, 229, 32, 0] -0x000005ec MOVE R56 R17 ;; [26, 225, 16, 0] -0x000005f0 JAL R62 $pc 0x1f ;; [153, 248, 48, 31] -0x000005f4 ADDI R18 R59 0x350 ;; [80, 75, 179, 80] -0x000005f8 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] -0x000005fc ADDI R17 R59 0x350 ;; [80, 71, 179, 80] -0x00000600 ADDI R18 R59 0x1e8 ;; [80, 75, 177, 232] -0x00000604 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] -0x00000608 ADDI R17 R59 0x170 ;; [80, 71, 177, 112] -0x0000060c MOVE R58 $writable ;; [26, 233, 0, 0] -0x00000610 MOVE R57 R18 ;; [26, 229, 32, 0] -0x00000614 MOVE R56 R17 ;; [26, 225, 16, 0] -0x00000618 JAL R62 $pc 0x15 ;; [153, 248, 48, 21] -0x0000061c ADDI $writable R59 0x380 ;; [80, 67, 179, 128] -0x00000620 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x00000624 ADDI $writable R59 0x380 ;; [80, 67, 179, 128] -0x00000628 ADDI R17 R59 0x260 ;; [80, 71, 178, 96] -0x0000062c MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x00000630 ADDI $writable R59 0x3c8 ;; [80, 67, 179, 200] -0x00000634 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] -0x00000638 ADDI $writable R59 0x3c8 ;; [80, 67, 179, 200] -0x0000063c ADDI R17 R59 0x368 ;; [80, 71, 179, 104] -0x00000640 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x00000644 ADDI $writable R59 0x368 ;; [80, 67, 179, 104] -0x00000648 ADDI R17 R59 0x308 ;; [80, 71, 179, 8] -0x0000064c MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x00000650 ADD R24 R24 $one ;; [16, 97, 128, 64] -0x00000654 JMPB $zero 0xf6 ;; [117, 0, 0, 246] -0x00000658 CFSI 0x4c0 ;; [146, 0, 4, 192] -0x0000065c MOVE R62 R19 ;; [26, 249, 48, 0] -0x00000660 POPH 0x80000 ;; [152, 8, 0, 0] -0x00000664 POPL 0x1ff ;; [151, 0, 1, 255] -0x00000668 JAL $zero R62 0x0 ;; [153, 3, 224, 0] -0x0000066c PSHL 0xff ;; [149, 0, 0, 255] -0x00000670 PSHH 0x80000 ;; [150, 8, 0, 0] -0x00000674 MOVE R59 $sp ;; [26, 236, 80, 0] -0x00000678 CFEI 0x90 ;; [145, 0, 0, 144] -0x0000067c MOVE $writable R58 ;; [26, 67, 160, 0] -0x00000680 MOVE R17 R56 ;; [26, 71, 128, 0] -0x00000684 MOVE R18 R62 ;; [26, 75, 224, 0] -0x00000688 ADDI R19 R59 0x78 ;; [80, 79, 176, 120] -0x0000068c MCPI R19 R57 0x18 ;; [96, 79, 144, 24] -0x00000690 ADDI R19 R59 0x78 ;; [80, 79, 176, 120] -0x00000694 MCPI R59 R19 0x18 ;; [96, 237, 48, 24] -0x00000698 ADDI R19 R59 0x30 ;; [80, 79, 176, 48] -0x0000069c MCPI R19 R59 0x18 ;; [96, 79, 176, 24] -0x000006a0 LW R19 R59 0x6 ;; [93, 79, 176, 6] -0x000006a4 LW R23 R59 0x7 ;; [93, 95, 176, 7] -0x000006a8 LW R20 R59 0x8 ;; [93, 83, 176, 8] -0x000006ac MOVI R21 0x8 ;; [114, 84, 0, 8] -0x000006b0 ADD R21 R20 R21 ;; [16, 85, 69, 64] -0x000006b4 GT R22 R21 R23 ;; [21, 89, 85, 192] -0x000006b8 JNZF R22 $zero 0x1 ;; [118, 88, 0, 1] -0x000006bc JMPF $zero 0x7 ;; [116, 0, 0, 7] -0x000006c0 MOVI R22 0x2 ;; [114, 88, 0, 2] -0x000006c4 MUL R22 R23 R22 ;; [27, 89, 117, 128] -0x000006c8 MOVI R23 0x8 ;; [114, 92, 0, 8] -0x000006cc ADD R23 R22 R23 ;; [16, 93, 101, 192] -0x000006d0 ALOC R23 ;; [38, 92, 0, 0] -0x000006d4 MCP $hp R19 R20 ;; [40, 29, 53, 0] -0x000006d8 MOVE R19 $hp ;; [26, 76, 112, 0] -0x000006dc ADD R20 R19 R20 ;; [16, 81, 53, 0] -0x000006e0 SW R20 $writable 0x0 ;; [95, 81, 0, 0] -0x000006e4 ADDI $writable R59 0x48 ;; [80, 67, 176, 72] -0x000006e8 SW R59 R19 0x9 ;; [95, 237, 48, 9] -0x000006ec SW R59 R23 0xa ;; [95, 237, 112, 10] -0x000006f0 SW R59 R21 0xb ;; [95, 237, 80, 11] -0x000006f4 ADDI R19 R59 0x18 ;; [80, 79, 176, 24] -0x000006f8 MCPI R19 $writable 0x18 ;; [96, 77, 0, 24] -0x000006fc ADDI $writable R59 0x60 ;; [80, 67, 176, 96] -0x00000700 MCPI $writable R19 0x18 ;; [96, 65, 48, 24] -0x00000704 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] -0x00000708 CFSI 0x90 ;; [146, 0, 0, 144] -0x0000070c MOVE R62 R18 ;; [26, 249, 32, 0] -0x00000710 POPH 0x80000 ;; [152, 8, 0, 0] -0x00000714 POPL 0xff ;; [151, 0, 0, 255] -0x00000718 JAL $zero R62 0x0 ;; [153, 3, 224, 0] -0x0000071c PSHL 0xf ;; [149, 0, 0, 15] -0x00000720 PSHH 0x80000 ;; [150, 8, 0, 0] -0x00000724 MOVE R59 $sp ;; [26, 236, 80, 0] -0x00000728 CFEI 0x48 ;; [145, 0, 0, 72] -0x0000072c MOVE $writable R58 ;; [26, 67, 160, 0] -0x00000730 MOVE R17 R62 ;; [26, 71, 224, 0] -0x00000734 MOVI R18 0x400 ;; [114, 72, 4, 0] -0x00000738 ALOC R18 ;; [38, 72, 0, 0] -0x0000073c ADDI R18 R59 0x18 ;; [80, 75, 176, 24] -0x00000740 SW R59 $hp 0x3 ;; [95, 236, 112, 3] -0x00000744 MOVI R19 0x400 ;; [114, 76, 4, 0] -0x00000748 SW R59 R19 0x4 ;; [95, 237, 48, 4] -0x0000074c SW R59 $zero 0x5 ;; [95, 236, 0, 5] -0x00000750 MCPI R59 R18 0x18 ;; [96, 237, 32, 24] -0x00000754 ADDI R18 R59 0x30 ;; [80, 75, 176, 48] -0x00000758 MCPI R18 R59 0x18 ;; [96, 75, 176, 24] -0x0000075c MCPI $writable R18 0x18 ;; [96, 65, 32, 24] -0x00000760 CFSI 0x48 ;; [146, 0, 0, 72] -0x00000764 MOVE R62 R17 ;; [26, 249, 16, 0] -0x00000768 POPH 0x80000 ;; [152, 8, 0, 0] -0x0000076c POPL 0xf ;; [151, 0, 0, 15] -0x00000770 JAL $zero R62 0x0 ;; [153, 3, 224, 0] -0x00000774 PSHL 0xf ;; [149, 0, 0, 15] -0x00000778 PSHH 0x80000 ;; [150, 8, 0, 0] -0x0000077c MOVE R59 $sp ;; [26, 236, 80, 0] -0x00000780 CFEI 0x28 ;; [145, 0, 0, 40] -0x00000784 MOVE $writable R57 ;; [26, 67, 144, 0] -0x00000788 MOVE R17 R62 ;; [26, 71, 224, 0] -0x0000078c ADDI R18 R59 0x10 ;; [80, 75, 176, 16] -0x00000790 MCPI R18 R58 0x8 ;; [96, 75, 160, 8] -0x00000794 ADDI R18 R59 0x18 ;; [80, 75, 176, 24] -0x00000798 MCPI R18 $writable 0x10 ;; [96, 73, 0, 16] -0x0000079c LW $writable R59 0x3 ;; [93, 67, 176, 3] -0x000007a0 LW R18 R59 0x4 ;; [93, 75, 176, 4] -0x000007a4 SW R59 $writable 0x0 ;; [95, 237, 0, 0] -0x000007a8 SW R59 R18 0x1 ;; [95, 237, 32, 1] -0x000007ac LW $writable R59 0x0 ;; [93, 67, 176, 0] -0x000007b0 ADDI R18 R59 0x10 ;; [80, 75, 176, 16] -0x000007b4 MOVI R19 0x3 ;; [114, 76, 0, 3] -0x000007b8 MEQ $writable R18 $writable R19 ;; [41, 65, 36, 19] -0x000007bc MOVE R61 $writable ;; [26, 245, 0, 0] -0x000007c0 CFSI 0x28 ;; [146, 0, 0, 40] -0x000007c4 MOVE R62 R17 ;; [26, 249, 16, 0] -0x000007c8 POPH 0x80000 ;; [152, 8, 0, 0] -0x000007cc POPL 0xf ;; [151, 0, 0, 15] -0x000007d0 JAL $zero R62 0x0 ;; [153, 3, 224, 0] -0x000007d4 NOOP ;; [71, 0, 0, 0] +0x000002d4 JMPF $zero 0x88 ;; [116, 0, 0, 136] +0x000002d8 ADDI $writable R59 0x4a8 ;; [80, 67, 180, 168] +0x000002dc MOVI R17 0x18 ;; [114, 68, 0, 24] +0x000002e0 MUL R17 R24 R17 ;; [27, 69, 132, 64] +0x000002e4 ADD R17 $writable R17 ;; [16, 69, 4, 64] +0x000002e8 ADDI $writable R59 0x338 ;; [80, 67, 179, 56] +0x000002ec ADDI R18 R59 0x480 ;; [80, 75, 180, 128] +0x000002f0 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] +0x000002f4 ADDI R17 R59 0x2d8 ;; [80, 71, 178, 216] +0x000002f8 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x000002fc ADDI $writable R59 0x480 ;; [80, 67, 180, 128] +0x00000300 ADDI R17 R59 0x2d8 ;; [80, 71, 178, 216] +0x00000304 ADDI R18 R59 0x470 ;; [80, 75, 180, 112] +0x00000308 MCPI R18 $writable 0x8 ;; [96, 73, 0, 8] +0x0000030c ADDI $writable R59 0x2f0 ;; [80, 67, 178, 240] +0x00000310 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x00000314 ADDI $writable R59 0x470 ;; [80, 67, 180, 112] +0x00000318 ADDI R17 R59 0x2f0 ;; [80, 71, 178, 240] +0x0000031c ADDI R18 R59 0x478 ;; [80, 75, 180, 120] +0x00000320 MCPI R18 $writable 0x8 ;; [96, 73, 0, 8] +0x00000324 ADDI $writable R59 0x308 ;; [80, 67, 179, 8] +0x00000328 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x0000032c ADDI $writable R59 0x308 ;; [80, 67, 179, 8] +0x00000330 ADDI R17 R59 0x10 ;; [80, 71, 176, 16] +0x00000334 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x00000338 ADDI $writable R59 0x88 ;; [80, 67, 176, 136] +0x0000033c MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x00000340 LW $writable R59 0x11 ;; [93, 67, 176, 17] +0x00000344 LW R23 R59 0x12 ;; [93, 95, 176, 18] +0x00000348 LW R17 R59 0x13 ;; [93, 71, 176, 19] +0x0000034c ADDI R18 R59 0x478 ;; [80, 75, 180, 120] +0x00000350 MOVI R21 0x3 ;; [114, 84, 0, 3] +0x00000354 ADD R21 R17 R21 ;; [16, 85, 21, 64] +0x00000358 GT R22 R21 R23 ;; [21, 89, 85, 192] +0x0000035c JNZF R22 $zero 0x1 ;; [118, 88, 0, 1] +0x00000360 JMPF $zero 0x7 ;; [116, 0, 0, 7] +0x00000364 MOVI R22 0x2 ;; [114, 88, 0, 2] +0x00000368 MUL R22 R23 R22 ;; [27, 89, 117, 128] +0x0000036c MOVI R23 0x3 ;; [114, 92, 0, 3] +0x00000370 ADD R23 R22 R23 ;; [16, 93, 101, 192] +0x00000374 ALOC R23 ;; [38, 92, 0, 0] +0x00000378 MCP $hp $writable R17 ;; [40, 29, 4, 64] +0x0000037c MOVE $writable $hp ;; [26, 64, 112, 0] +0x00000380 ADDI R22 R59 0xc8 ;; [80, 91, 176, 200] +0x00000384 MCPI R22 R18 0x8 ;; [96, 89, 32, 8] +0x00000388 ADD R17 $writable R17 ;; [16, 69, 4, 64] +0x0000038c MCPI R17 R22 0x3 ;; [96, 69, 96, 3] +0x00000390 ADDI R17 R59 0xf0 ;; [80, 71, 176, 240] +0x00000394 SW R59 $writable 0x1e ;; [95, 237, 0, 30] +0x00000398 SW R59 R23 0x1f ;; [95, 237, 112, 31] +0x0000039c SW R59 R21 0x20 ;; [95, 237, 80, 32] +0x000003a0 ADDI $writable R59 0x28 ;; [80, 67, 176, 40] +0x000003a4 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x000003a8 ADDI R17 R59 0x118 ;; [80, 71, 177, 24] +0x000003ac MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x000003b0 ADDI $writable R59 0x368 ;; [80, 67, 179, 104] +0x000003b4 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x000003b8 ADDI $writable R59 0x368 ;; [80, 67, 179, 104] +0x000003bc ADDI R17 R59 0x350 ;; [80, 71, 179, 80] +0x000003c0 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x000003c4 ADDI $writable R59 0x480 ;; [80, 67, 180, 128] +0x000003c8 ADDI $writable $writable 0x8 ;; [80, 65, 0, 8] +0x000003cc ADDI R17 R59 0x350 ;; [80, 71, 179, 80] +0x000003d0 ADDI R18 R59 0x498 ;; [80, 75, 180, 152] +0x000003d4 MCPI R18 $writable 0x10 ;; [96, 73, 0, 16] +0x000003d8 ADDI $writable R59 0x320 ;; [80, 67, 179, 32] +0x000003dc MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x000003e0 ADDI $writable R59 0x498 ;; [80, 67, 180, 152] +0x000003e4 ADDI R17 R59 0x158 ;; [80, 71, 177, 88] +0x000003e8 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x000003ec LW $writable R59 0x2b ;; [93, 67, 176, 43] +0x000003f0 EQ $writable $writable $zero ;; [19, 65, 0, 0] +0x000003f4 JNZF $writable $zero 0x1e ;; [118, 64, 0, 30] +0x000003f8 LW $writable R59 0x2b ;; [93, 67, 176, 43] +0x000003fc EQ $writable $writable $one ;; [19, 65, 0, 64] +0x00000400 JNZF $writable $zero 0x2 ;; [118, 64, 0, 2] +0x00000404 LW $writable R63 0x0 ;; [93, 67, 240, 0] +0x00000408 RVRT $writable ;; [54, 64, 0, 0] +0x0000040c LW $writable R59 0x2c ;; [93, 67, 176, 44] +0x00000410 ADDI R17 R59 0x320 ;; [80, 71, 179, 32] +0x00000414 ADDI R18 R59 0x220 ;; [80, 75, 178, 32] +0x00000418 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] +0x0000041c ADDI R17 R59 0x1a8 ;; [80, 71, 177, 168] +0x00000420 MOVE R58 $one ;; [26, 232, 16, 0] +0x00000424 MOVE R57 R18 ;; [26, 229, 32, 0] +0x00000428 MOVE R56 R17 ;; [26, 225, 16, 0] +0x0000042c JAL R62 $pc 0x94 ;; [153, 248, 48, 148] +0x00000430 ADDI R18 R59 0x3c8 ;; [80, 75, 179, 200] +0x00000434 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] +0x00000438 ADDI R17 R59 0x3c8 ;; [80, 71, 179, 200] +0x0000043c ADDI R18 R59 0x238 ;; [80, 75, 178, 56] +0x00000440 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] +0x00000444 ADDI R17 R59 0x1c0 ;; [80, 71, 177, 192] +0x00000448 MOVE R58 $writable ;; [26, 233, 0, 0] +0x0000044c MOVE R57 R18 ;; [26, 229, 32, 0] +0x00000450 MOVE R56 R17 ;; [26, 225, 16, 0] +0x00000454 JAL R62 $pc 0x8a ;; [153, 248, 48, 138] +0x00000458 ADDI $writable R59 0x3e0 ;; [80, 67, 179, 224] +0x0000045c MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x00000460 ADDI $writable R59 0x3e0 ;; [80, 67, 179, 224] +0x00000464 ADDI R17 R59 0x280 ;; [80, 71, 178, 128] +0x00000468 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x0000046c JMPF $zero 0x18 ;; [116, 0, 0, 24] +0x00000470 LW $writable R59 0x2c ;; [93, 67, 176, 44] +0x00000474 ADDI R17 R59 0x320 ;; [80, 71, 179, 32] +0x00000478 ADDI R18 R59 0x1f0 ;; [80, 75, 177, 240] +0x0000047c MCPI R18 R17 0x18 ;; [96, 73, 16, 24] +0x00000480 ADDI R17 R59 0x178 ;; [80, 71, 177, 120] +0x00000484 MOVE R58 $zero ;; [26, 232, 0, 0] +0x00000488 MOVE R57 R18 ;; [26, 229, 32, 0] +0x0000048c MOVE R56 R17 ;; [26, 225, 16, 0] +0x00000490 JAL R62 $pc 0x7b ;; [153, 248, 48, 123] +0x00000494 ADDI R18 R59 0x380 ;; [80, 75, 179, 128] +0x00000498 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] +0x0000049c ADDI R17 R59 0x380 ;; [80, 71, 179, 128] +0x000004a0 ADDI R18 R59 0x208 ;; [80, 75, 178, 8] +0x000004a4 MCPI R18 R17 0x18 ;; [96, 73, 16, 24] +0x000004a8 ADDI R17 R59 0x190 ;; [80, 71, 177, 144] +0x000004ac MOVE R58 $writable ;; [26, 233, 0, 0] +0x000004b0 MOVE R57 R18 ;; [26, 229, 32, 0] +0x000004b4 MOVE R56 R17 ;; [26, 225, 16, 0] +0x000004b8 JAL R62 $pc 0x71 ;; [153, 248, 48, 113] +0x000004bc ADDI $writable R59 0x3b0 ;; [80, 67, 179, 176] +0x000004c0 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x000004c4 ADDI $writable R59 0x3b0 ;; [80, 67, 179, 176] +0x000004c8 ADDI R17 R59 0x280 ;; [80, 71, 178, 128] +0x000004cc MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x000004d0 ADDI $writable R59 0x3f8 ;; [80, 67, 179, 248] +0x000004d4 MCPI $writable R17 0x18 ;; [96, 65, 16, 24] +0x000004d8 ADDI $writable R59 0x3f8 ;; [80, 67, 179, 248] +0x000004dc ADDI R17 R59 0x398 ;; [80, 71, 179, 152] +0x000004e0 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x000004e4 ADDI $writable R59 0x398 ;; [80, 67, 179, 152] +0x000004e8 ADDI R17 R59 0x338 ;; [80, 71, 179, 56] +0x000004ec MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x000004f0 ADD R24 R24 $one ;; [16, 97, 128, 64] +0x000004f4 JMPB $zero 0x9e ;; [117, 0, 0, 158] +0x000004f8 ADDI $writable R59 0x138 ;; [80, 67, 177, 56] +0x000004fc MCPI $writable R17 0x10 ;; [96, 65, 16, 16] +0x00000500 LW $writable R63 0x1 ;; [93, 67, 240, 1] +0x00000504 LW R17 R59 0x27 ;; [93, 71, 176, 39] +0x00000508 LW R18 R59 0x28 ;; [93, 75, 176, 40] +0x0000050c LOGD $zero $writable R17 R18 ;; [52, 1, 4, 82] +0x00000510 ADDI $writable R59 0x440 ;; [80, 67, 180, 64] +0x00000514 MOVI R17 0x18 ;; [114, 68, 0, 24] +0x00000518 MUL R17 $zero R17 ;; [27, 68, 4, 64] +0x0000051c ADD R17 $writable R17 ;; [16, 69, 4, 64] +0x00000520 MOVI $writable 0x10 ;; [114, 64, 0, 16] +0x00000524 ADD $writable $writable R63 ;; [16, 65, 15, 192] +0x00000528 ADDI R18 R59 0x68 ;; [80, 75, 176, 104] +0x0000052c SW R59 $writable 0xd ;; [95, 237, 0, 13] +0x00000530 MOVI $writable 0x3 ;; [114, 64, 0, 3] +0x00000534 SW R59 $writable 0xe ;; [95, 237, 0, 14] +0x00000538 ADDI $writable R59 0xb8 ;; [80, 67, 176, 184] +0x0000053c MCPI $writable R18 0x10 ;; [96, 65, 32, 16] +0x00000540 ADDI R18 R59 0x250 ;; [80, 75, 178, 80] +0x00000544 MCPI R18 R17 0x8 ;; [96, 73, 16, 8] +0x00000548 ADDI R17 R59 0x258 ;; [80, 71, 178, 88] +0x0000054c MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x00000550 MOVE R58 R18 ;; [26, 233, 32, 0] +0x00000554 MOVE R57 R17 ;; [26, 229, 16, 0] +0x00000558 JAL R62 $pc 0x8b ;; [153, 248, 48, 139] +0x0000055c EQ $writable R61 $zero ;; [19, 67, 208, 0] +0x00000560 JNZF $writable $zero 0x3f ;; [118, 64, 0, 63] +0x00000564 ADDI $writable R59 0x440 ;; [80, 67, 180, 64] +0x00000568 MOVI R17 0x18 ;; [114, 68, 0, 24] +0x0000056c MUL R17 $zero R17 ;; [27, 68, 4, 64] +0x00000570 ADD R17 $writable R17 ;; [16, 69, 4, 64] +0x00000574 ADDI $writable R17 0x8 ;; [80, 65, 16, 8] +0x00000578 ADDI R17 R59 0x148 ;; [80, 71, 177, 72] +0x0000057c MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x00000580 LW $writable R59 0x29 ;; [93, 67, 176, 41] +0x00000584 EQ $writable $writable $zero ;; [19, 65, 0, 0] +0x00000588 JNZF $writable $zero 0x1 ;; [118, 64, 0, 1] +0x0000058c RVRT $one ;; [54, 4, 0, 0] +0x00000590 LW $writable R59 0x2a ;; [93, 67, 176, 42] +0x00000594 MOVI R17 0x53a ;; [114, 68, 5, 58] +0x00000598 EQ $writable $writable R17 ;; [19, 65, 4, 64] +0x0000059c EQ $writable $writable $zero ;; [19, 65, 0, 0] +0x000005a0 JNZF $writable $zero 0x2d ;; [118, 64, 0, 45] +0x000005a4 ADDI $writable R59 0x440 ;; [80, 67, 180, 64] +0x000005a8 MOVI R17 0x18 ;; [114, 68, 0, 24] +0x000005ac MUL R17 $one R17 ;; [27, 68, 20, 64] +0x000005b0 ADD R17 $writable R17 ;; [16, 69, 4, 64] +0x000005b4 MOVI $writable 0x18 ;; [114, 64, 0, 24] +0x000005b8 ADD $writable $writable R63 ;; [16, 65, 15, 192] +0x000005bc ADDI R18 R59 0xe0 ;; [80, 75, 176, 224] +0x000005c0 SW R59 $writable 0x1c ;; [95, 237, 0, 28] +0x000005c4 MOVI $writable 0x3 ;; [114, 64, 0, 3] +0x000005c8 SW R59 $writable 0x1d ;; [95, 237, 0, 29] +0x000005cc ADDI $writable R59 0x108 ;; [80, 67, 177, 8] +0x000005d0 MCPI $writable R18 0x10 ;; [96, 65, 32, 16] +0x000005d4 ADDI R18 R59 0x268 ;; [80, 75, 178, 104] +0x000005d8 MCPI R18 R17 0x8 ;; [96, 73, 16, 8] +0x000005dc ADDI R17 R59 0x270 ;; [80, 71, 178, 112] +0x000005e0 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x000005e4 MOVE R58 R18 ;; [26, 233, 32, 0] +0x000005e8 MOVE R57 R17 ;; [26, 229, 16, 0] +0x000005ec JAL R62 $pc 0x66 ;; [153, 248, 48, 102] +0x000005f0 EQ $writable R61 $zero ;; [19, 67, 208, 0] +0x000005f4 JNZF $writable $zero 0x16 ;; [118, 64, 0, 22] +0x000005f8 ADDI $writable R59 0x440 ;; [80, 67, 180, 64] +0x000005fc MOVI R17 0x18 ;; [114, 68, 0, 24] +0x00000600 MUL R17 $one R17 ;; [27, 68, 20, 64] +0x00000604 ADD R17 $writable R17 ;; [16, 69, 4, 64] +0x00000608 ADDI $writable R17 0x8 ;; [80, 65, 16, 8] +0x0000060c ADDI R17 R59 0x168 ;; [80, 71, 177, 104] +0x00000610 MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x00000614 LW $writable R59 0x2d ;; [93, 67, 176, 45] +0x00000618 EQ $writable $writable $one ;; [19, 65, 0, 64] +0x0000061c JNZF $writable $zero 0x2 ;; [118, 64, 0, 2] +0x00000620 MOVI $writable 0x2 ;; [114, 64, 0, 2] +0x00000624 RVRT $writable ;; [54, 64, 0, 0] +0x00000628 LW $writable R59 0x2e ;; [93, 67, 176, 46] +0x0000062c EQ $writable $writable $one ;; [19, 65, 0, 64] +0x00000630 EQ $writable $writable $zero ;; [19, 65, 0, 0] +0x00000634 JNZF $writable $zero 0x4 ;; [118, 64, 0, 4] +0x00000638 ADDI $writable R59 0x130 ;; [80, 67, 177, 48] +0x0000063c SW R59 $one 0x26 ;; [95, 236, 16, 38] +0x00000640 MCPI R20 $writable 0x8 ;; [96, 81, 0, 8] +0x00000644 JMPF $zero 0x8 ;; [116, 0, 0, 8] +0x00000648 LW $writable R63 0x4 ;; [93, 67, 240, 4] +0x0000064c RVRT $writable ;; [54, 64, 0, 0] +0x00000650 LW $writable R63 0x4 ;; [93, 67, 240, 4] +0x00000654 RVRT $writable ;; [54, 64, 0, 0] +0x00000658 LW $writable R63 0x4 ;; [93, 67, 240, 4] +0x0000065c RVRT $writable ;; [54, 64, 0, 0] +0x00000660 LW $writable R63 0x4 ;; [93, 67, 240, 4] +0x00000664 RVRT $writable ;; [54, 64, 0, 0] +0x00000668 CFSI 0x4f0 ;; [146, 0, 4, 240] +0x0000066c MOVE R62 R19 ;; [26, 249, 48, 0] +0x00000670 POPH 0x80000 ;; [152, 8, 0, 0] +0x00000674 POPL 0x1ff ;; [151, 0, 1, 255] +0x00000678 JAL $zero R62 0x0 ;; [153, 3, 224, 0] +0x0000067c PSHL 0xff ;; [149, 0, 0, 255] +0x00000680 PSHH 0x80000 ;; [150, 8, 0, 0] +0x00000684 MOVE R59 $sp ;; [26, 236, 80, 0] +0x00000688 CFEI 0x90 ;; [145, 0, 0, 144] +0x0000068c MOVE $writable R58 ;; [26, 67, 160, 0] +0x00000690 MOVE R17 R56 ;; [26, 71, 128, 0] +0x00000694 MOVE R18 R62 ;; [26, 75, 224, 0] +0x00000698 ADDI R19 R59 0x78 ;; [80, 79, 176, 120] +0x0000069c MCPI R19 R57 0x18 ;; [96, 79, 144, 24] +0x000006a0 ADDI R19 R59 0x78 ;; [80, 79, 176, 120] +0x000006a4 MCPI R59 R19 0x18 ;; [96, 237, 48, 24] +0x000006a8 ADDI R19 R59 0x30 ;; [80, 79, 176, 48] +0x000006ac MCPI R19 R59 0x18 ;; [96, 79, 176, 24] +0x000006b0 LW R19 R59 0x6 ;; [93, 79, 176, 6] +0x000006b4 LW R23 R59 0x7 ;; [93, 95, 176, 7] +0x000006b8 LW R20 R59 0x8 ;; [93, 83, 176, 8] +0x000006bc MOVI R21 0x8 ;; [114, 84, 0, 8] +0x000006c0 ADD R21 R20 R21 ;; [16, 85, 69, 64] +0x000006c4 GT R22 R21 R23 ;; [21, 89, 85, 192] +0x000006c8 JNZF R22 $zero 0x1 ;; [118, 88, 0, 1] +0x000006cc JMPF $zero 0x7 ;; [116, 0, 0, 7] +0x000006d0 MOVI R22 0x2 ;; [114, 88, 0, 2] +0x000006d4 MUL R22 R23 R22 ;; [27, 89, 117, 128] +0x000006d8 MOVI R23 0x8 ;; [114, 92, 0, 8] +0x000006dc ADD R23 R22 R23 ;; [16, 93, 101, 192] +0x000006e0 ALOC R23 ;; [38, 92, 0, 0] +0x000006e4 MCP $hp R19 R20 ;; [40, 29, 53, 0] +0x000006e8 MOVE R19 $hp ;; [26, 76, 112, 0] +0x000006ec ADD R20 R19 R20 ;; [16, 81, 53, 0] +0x000006f0 SW R20 $writable 0x0 ;; [95, 81, 0, 0] +0x000006f4 ADDI $writable R59 0x48 ;; [80, 67, 176, 72] +0x000006f8 SW R59 R19 0x9 ;; [95, 237, 48, 9] +0x000006fc SW R59 R23 0xa ;; [95, 237, 112, 10] +0x00000700 SW R59 R21 0xb ;; [95, 237, 80, 11] +0x00000704 ADDI R19 R59 0x18 ;; [80, 79, 176, 24] +0x00000708 MCPI R19 $writable 0x18 ;; [96, 77, 0, 24] +0x0000070c ADDI $writable R59 0x60 ;; [80, 67, 176, 96] +0x00000710 MCPI $writable R19 0x18 ;; [96, 65, 48, 24] +0x00000714 MCPI R17 $writable 0x18 ;; [96, 69, 0, 24] +0x00000718 CFSI 0x90 ;; [146, 0, 0, 144] +0x0000071c MOVE R62 R18 ;; [26, 249, 32, 0] +0x00000720 POPH 0x80000 ;; [152, 8, 0, 0] +0x00000724 POPL 0xff ;; [151, 0, 0, 255] +0x00000728 JAL $zero R62 0x0 ;; [153, 3, 224, 0] +0x0000072c PSHL 0xf ;; [149, 0, 0, 15] +0x00000730 PSHH 0x80000 ;; [150, 8, 0, 0] +0x00000734 MOVE R59 $sp ;; [26, 236, 80, 0] +0x00000738 CFEI 0x48 ;; [145, 0, 0, 72] +0x0000073c MOVE $writable R58 ;; [26, 67, 160, 0] +0x00000740 MOVE R17 R62 ;; [26, 71, 224, 0] +0x00000744 MOVI R18 0x400 ;; [114, 72, 4, 0] +0x00000748 ALOC R18 ;; [38, 72, 0, 0] +0x0000074c ADDI R18 R59 0x18 ;; [80, 75, 176, 24] +0x00000750 SW R59 $hp 0x3 ;; [95, 236, 112, 3] +0x00000754 MOVI R19 0x400 ;; [114, 76, 4, 0] +0x00000758 SW R59 R19 0x4 ;; [95, 237, 48, 4] +0x0000075c SW R59 $zero 0x5 ;; [95, 236, 0, 5] +0x00000760 MCPI R59 R18 0x18 ;; [96, 237, 32, 24] +0x00000764 ADDI R18 R59 0x30 ;; [80, 75, 176, 48] +0x00000768 MCPI R18 R59 0x18 ;; [96, 75, 176, 24] +0x0000076c MCPI $writable R18 0x18 ;; [96, 65, 32, 24] +0x00000770 CFSI 0x48 ;; [146, 0, 0, 72] +0x00000774 MOVE R62 R17 ;; [26, 249, 16, 0] +0x00000778 POPH 0x80000 ;; [152, 8, 0, 0] +0x0000077c POPL 0xf ;; [151, 0, 0, 15] +0x00000780 JAL $zero R62 0x0 ;; [153, 3, 224, 0] +0x00000784 PSHL 0xf ;; [149, 0, 0, 15] +0x00000788 PSHH 0x80000 ;; [150, 8, 0, 0] +0x0000078c MOVE R59 $sp ;; [26, 236, 80, 0] +0x00000790 CFEI 0x28 ;; [145, 0, 0, 40] +0x00000794 MOVE $writable R57 ;; [26, 67, 144, 0] +0x00000798 MOVE R17 R62 ;; [26, 71, 224, 0] +0x0000079c ADDI R18 R59 0x10 ;; [80, 75, 176, 16] +0x000007a0 MCPI R18 R58 0x8 ;; [96, 75, 160, 8] +0x000007a4 ADDI R18 R59 0x18 ;; [80, 75, 176, 24] +0x000007a8 MCPI R18 $writable 0x10 ;; [96, 73, 0, 16] +0x000007ac LW $writable R59 0x3 ;; [93, 67, 176, 3] +0x000007b0 LW R18 R59 0x4 ;; [93, 75, 176, 4] +0x000007b4 SW R59 $writable 0x0 ;; [95, 237, 0, 0] +0x000007b8 SW R59 R18 0x1 ;; [95, 237, 32, 1] +0x000007bc LW $writable R59 0x0 ;; [93, 67, 176, 0] +0x000007c0 ADDI R18 R59 0x10 ;; [80, 75, 176, 16] +0x000007c4 MOVI R19 0x3 ;; [114, 76, 0, 3] +0x000007c8 MEQ $writable R18 $writable R19 ;; [41, 65, 36, 19] +0x000007cc MOVE R61 $writable ;; [26, 245, 0, 0] +0x000007d0 CFSI 0x28 ;; [146, 0, 0, 40] +0x000007d4 MOVE R62 R17 ;; [26, 249, 16, 0] +0x000007d8 POPH 0x80000 ;; [152, 8, 0, 0] +0x000007dc POPL 0xf ;; [151, 0, 0, 15] +0x000007e0 JAL $zero R62 0x0 ;; [153, 3, 224, 0] +0x000007e4 NOOP ;; [71, 0, 0, 0] .data_section: -0x000007d8 .word i3647243719605075626, as hex be bytes ([32, 9D, 9C, D6, CC, 55, BE, AA]) -0x000007e0 .bytes as hex ([73, 65, 74]), len i3, as ascii "set" -0x000007e8 .bytes as hex ([61, 64, 64]), len i3, as ascii "add" -0x000007f0 .word i18446744073709486084, as hex be bytes ([FF, FF, FF, FF, FF, FF, 00, 04]) -0x000007f8 .word i14757395258967588866, as hex be bytes ([CC, CC, CC, CC, CC, CC, 00, 02]) +0x000007e8 .word i14757395258967588866, as hex be bytes ([CC, CC, CC, CC, CC, CC, 00, 02]) +0x000007f0 .word i3647243719605075626, as hex be bytes ([32, 9D, 9C, D6, CC, 55, BE, AA]) +0x000007f8 .bytes as hex ([73, 65, 74]), len i3, as ascii "set" +0x00000800 .bytes as hex ([61, 64, 64]), len i3, as ascii "add" +0x00000808 .word i18446744073709486084, as hex be bytes ([FF, FF, FF, FF, FF, FF, 00, 04]) ;; --- END OF TARGET BYTECODE --- - Finished release [optimized + fuel] target(s) [2.048 KB] in ??? + Finished release [optimized + fuel] target(s) [2.064 KB] in ??? diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_contract/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_contract/stdout.snap index afe03a054c6..e464241d2d6 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_contract/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_contract/stdout.snap @@ -9,17 +9,17 @@ output: Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling library panicking_lib (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib) Compiling contract panicking_contract (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_contract) - Finished debug [unoptimized + fuel] target(s) [8.824 KB] in ??? + Finished debug [unoptimized + fuel] target(s) [8.88 KB] in ??? Running 12 tests, filtered 0 tests tested -- panicking_contract - test test_panicking_in_contract_self_impl ... ok (???, 11217 gas) + test test_panicking_in_contract_self_impl ... ok (???, 11222 gas) revert code: 828000000000000c ├─ panic message: panicking in contract self impl ├─ panicked: in ::panicking_in_contract_self_impl │ └─ at panicking_contract@1.2.3, src/main.sw:22:9 - test test_directly_panicking_method ... ok (???, 12258 gas) + test test_directly_panicking_method ... ok (???, 12263 gas) revert code: 820000000000000b ├─ panic message: Error C. ├─ panic value: C(true) @@ -27,7 +27,7 @@ tested -- panicking_contract │ └─ at panicking_contract@1.2.3, src/main.sw:28:9 decoded log values: C(true), log rb: 5503570629422409978 - test test_nested_panic_inlined ... ok (???, 12992 gas) + test test_nested_panic_inlined ... ok (???, 12997 gas) revert code: 8000000000c01001 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]) @@ -39,7 +39,7 @@ C(true), log rb: 5503570629422409978 └─ at panicking_contract@1.2.3, src/main.sw:32:9 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 5503570629422409978 - test test_nested_panic_inlined_same_revert_code ... ok (???, 12992 gas) + test test_nested_panic_inlined_same_revert_code ... ok (???, 12997 gas) revert code: 8000000000c01001 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]) @@ -51,7 +51,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_contract@1.2.3, src/main.sw:32:9 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 5503570629422409978 - test test_nested_panic_non_inlined ... ok (???, 13102 gas) + test test_nested_panic_non_inlined ... ok (???, 13107 gas) revert code: 8180000002804808 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -63,7 +63,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_contract@1.2.3, src/main.sw:40:9 decoded log values: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]), log rb: 5503570629422409978 - test test_nested_panic_non_inlined_same_revert_code ... ok (???, 13102 gas) + test test_nested_panic_non_inlined_same_revert_code ... ok (???, 13107 gas) revert code: 8180000002804808 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -75,7 +75,7 @@ E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { d └─ at panicking_contract@1.2.3, src/main.sw:40:9 decoded log values: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]), log rb: 5503570629422409978 - test test_generic_panic_with_unit ... ok (???, 11847 gas) + test test_generic_panic_with_unit ... ok (???, 11852 gas) revert code: 8100000000003806 ├─ panic value: () ├─ panicked: in panicking_lib::generic_panic @@ -84,7 +84,7 @@ E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { d └─ at panicking_contract@1.2.3, src/main.sw:48:9 decoded log values: (), log rb: 3330666440490685604 - test test_generic_panic_with_unit_same_revert_code ... ok (???, 11847 gas) + test test_generic_panic_with_unit_same_revert_code ... ok (???, 11852 gas) revert code: 8100000000003806 ├─ panic value: () ├─ panicked: in panicking_lib::generic_panic @@ -93,7 +93,7 @@ E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { d └─ at panicking_contract@1.2.3, src/main.sw:48:9 decoded log values: (), log rb: 3330666440490685604 - test test_generic_panic_with_str ... ok (???, 12006 gas) + test test_generic_panic_with_str ... ok (???, 12011 gas) revert code: 8080000000002804 ├─ panic message: generic panic with string ├─ panicked: in panicking_lib::generic_panic @@ -102,7 +102,7 @@ E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { d └─ at panicking_contract@1.2.3, src/main.sw:56:9 decoded log values: AsciiString { data: "generic panic with string" }, log rb: 10098701174489624218 - test test_generic_panic_with_different_str_same_revert_code ... ok (???, 12229 gas) + test test_generic_panic_with_different_str_same_revert_code ... ok (???, 12234 gas) revert code: 808000000000d019 ├─ panic message: generic panic with different string ├─ panicked: in panicking_lib::generic_panic @@ -111,7 +111,7 @@ AsciiString { data: "generic panic with string" }, log rb: 10098701174489624218 └─ at panicking_contract@1.2.3, src/main.sw:60:9 decoded log values: AsciiString { data: "generic panic with different string" }, log rb: 10098701174489624218 - test test_generic_panic_with_error_type_enum ... ok (???, 12153 gas) + test test_generic_panic_with_error_type_enum ... ok (???, 12158 gas) revert code: 830000000000700d ├─ panic message: Error A. ├─ panic value: A @@ -121,7 +121,7 @@ AsciiString { data: "generic panic with different string" }, log rb: 10098701174 └─ at panicking_contract@1.2.3, src/main.sw:64:9 decoded log values: A, log rb: 5503570629422409978 - test test_generic_panic_with_error_type_enum_different_variant_same_revert_code ... ok (???, 12422 gas) + test test_generic_panic_with_error_type_enum_different_variant_same_revert_code ... ok (???, 12427 gas) revert code: 830000000000e01b ├─ panic message: Error B. ├─ panic value: B(42) @@ -143,7 +143,7 @@ output: Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling library panicking_lib (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib) Compiling contract panicking_contract (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_contract) - Finished release [optimized + fuel] target(s) [6.488 KB] in ??? + Finished release [optimized + fuel] target(s) [6.48 KB] in ??? Running 12 tests, filtered 0 tests tested -- panicking_contract @@ -177,7 +177,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_lib, src/lib.sw:35:5 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 5503570629422409978 - test test_nested_panic_non_inlined ... ok (???, 12105 gas) + test test_nested_panic_non_inlined ... ok (???, 12103 gas) revert code: 8180000000000000 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -185,7 +185,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_lib, src/lib.sw:41:9 decoded log values: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]), log rb: 5503570629422409978 - test test_nested_panic_non_inlined_same_revert_code ... ok (???, 12105 gas) + test test_nested_panic_non_inlined_same_revert_code ... ok (???, 12103 gas) revert code: 8180000000000000 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib/stdout.snap index 2f68588a806..ed52f08fea8 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib/stdout.snap @@ -8,7 +8,7 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling library panicking_lib (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib) - Finished debug [unoptimized + fuel] target(s) [7.76 KB] in ??? + Finished debug [unoptimized + fuel] target(s) [7.816 KB] in ??? Running 18 tests, filtered 0 tests tested -- panicking_lib @@ -183,12 +183,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling library panicking_lib (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib) - Finished release [optimized + fuel] target(s) [4.984 KB] in ??? + Finished release [optimized + fuel] target(s) [5.064 KB] in ??? Running 18 tests, filtered 0 tests tested -- panicking_lib - test test_nested_panic_inlined ... ok (???, 1754 gas) + test test_nested_panic_inlined ... ok (???, 1773 gas) revert code: 8000000000000000 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]) @@ -196,7 +196,7 @@ tested -- panicking_lib └─ at panicking_lib, src/lib.sw:35:5 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 2721958641300806892 - test test_nested_panic_inlined_same_revert_code ... ok (???, 1754 gas) + test test_nested_panic_inlined_same_revert_code ... ok (???, 1773 gas) revert code: 8000000000000000 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]) @@ -204,7 +204,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_lib, src/lib.sw:35:5 decoded log values: E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString { data: "in error enum variants" }]), log rb: 2721958641300806892 - test test_nested_panic_non_inlined ... ok (???, 1788 gas) + test test_nested_panic_non_inlined ... ok (???, 1807 gas) revert code: 8080000000000000 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -212,7 +212,7 @@ E([AsciiString { data: "to have" }, AsciiString { data: "strings" }, AsciiString └─ at panicking_lib, src/lib.sw:41:9 decoded log values: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]), log rb: 2721958641300806892 - test test_nested_panic_non_inlined_same_revert_code ... ok (???, 1788 gas) + test test_nested_panic_non_inlined_same_revert_code ... ok (???, 1807 gas) revert code: 8080000000000000 ├─ panic message: Error E. ├─ panic value: E([AsciiString { data: "this" }, AsciiString { data: "is not" }, AsciiString { data: "the best practice" }]) @@ -248,7 +248,7 @@ AsciiString { data: "generic panic with string" }, log rb: 10098701174489624218 └─ at panicking_lib, src/lib.sw:74:5 decoded log values: AsciiString { data: "generic panic different string" }, log rb: 10098701174489624218 - test test_generic_panic_with_error_type_enum_variant ... ok (???, 937 gas) + test test_generic_panic_with_error_type_enum_variant ... ok (???, 956 gas) revert code: 8200000000000000 ├─ panic message: Error A. ├─ panic value: A @@ -256,7 +256,7 @@ AsciiString { data: "generic panic different string" }, log rb: 1009870117448962 └─ at panicking_lib, src/lib.sw:74:5 decoded log values: A, log rb: 2721958641300806892 - test test_generic_panic_with_error_type_enum_different_variant_same_revert_code ... ok (???, 937 gas) + test test_generic_panic_with_error_type_enum_different_variant_same_revert_code ... ok (???, 956 gas) revert code: 8200000000000000 ├─ panic message: Error A. ├─ panic value: A @@ -283,7 +283,7 @@ A, log rb: 2721958641300806892 ├─ panic message: panic with string └─ panicked: in panicking_lib::test_panic_with_str └─ at panicking_lib, src/lib.sw:123:5 - test test_panic_with_error_type_enum ... ok (???, 1103 gas) + test test_panic_with_error_type_enum ... ok (???, 1122 gas) revert code: 8400000000000000 ├─ panic message: Error C. ├─ panic value: C(true) diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_script/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_script/stdout.snap index a45a7eca40f..438150077f5 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_script/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_script/stdout.snap @@ -9,7 +9,7 @@ output: Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling library panicking_lib (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_lib) Compiling script panicking_script (test/src/e2e_vm_tests/test_programs/should_pass/language/panic_expression/panicking_script) - Finished debug [unoptimized + fuel] target(s) [4.008 KB] in ??? + Finished debug [unoptimized + fuel] target(s) [4.064 KB] in ??? Running 11 tests, filtered 0 tests tested -- panicking_script diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call/stdout.snap index ced2169b723..ae038de05cc 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call/stdout.snap @@ -8,40 +8,40 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [25.928 KB] in ??? + Finished release [optimized + fuel] target(s) [19.792 KB] in ??? Running 29 tests, filtered 0 tests tested -- const_of_contract_call - test cost_of_in_bool ... ok (???, 11523 gas) - test cost_of_in_u8 ... ok (???, 11338 gas) - test cost_of_in_u16 ... ok (???, 11743 gas) - test cost_of_in_u32 ... ok (???, 11998 gas) - test cost_of_in_u64 ... ok (???, 11372 gas) - test cost_of_in_u256 ... ok (???, 11526 gas) - test cost_of_in_b256 ... ok (???, 11508 gas) - test cost_of_in_str_0 ... ok (???, 11735 gas) - test cost_of_in_str_1 ... ok (???, 11914 gas) - test cost_of_in_str_8 ... ok (???, 11933 gas) - test cost_of_in_str_16 ... ok (???, 11926 gas) - test cost_of_in_str_32 ... ok (???, 11940 gas) - test cost_of_in_array_0 ... ok (???, 11362 gas) - test cost_of_in_array_1 ... ok (???, 11640 gas) - test cost_of_in_array_8 ... ok (???, 13433 gas) - test cost_of_in_array_16 ... ok (???, 14323 gas) - test cost_of_in_array_32 ... ok (???, 17209 gas) - test cost_of_in_array_64 ... ok (???, 23019 gas) - test cost_of_in_tuple_0 ... ok (???, 11358 gas) - test cost_of_in_tuple_1 ... ok (???, 11839 gas) - test cost_of_in_tuple_2 ... ok (???, 12119 gas) - test cost_of_in_tuple_3 ... ok (???, 12371 gas) - test cost_of_in_tuple_4 ... ok (???, 12673 gas) - test in_struct_u64 ... ok (???, 11539 gas) - test in_struct_u64_u64 ... ok (???, 11697 gas) - test in_struct_u64_u64_u64 ... ok (???, 11836 gas) - test in_enum_u64 ... ok (???, 11797 gas) - test in_enum_u64_u64 ... ok (???, 11794 gas) - test in_enum_u64_u64_u64 ... ok (???, 11810 gas) + test cost_of_in_bool ... ok (???, 11155 gas) + test cost_of_in_u8 ... ok (???, 10970 gas) + test cost_of_in_u16 ... ok (???, 11375 gas) + test cost_of_in_u32 ... ok (???, 11628 gas) + test cost_of_in_u64 ... ok (???, 10804 gas) + test cost_of_in_u256 ... ok (???, 10851 gas) + test cost_of_in_b256 ... ok (???, 10833 gas) + test cost_of_in_str_0 ... ok (???, 11232 gas) + test cost_of_in_str_1 ... ok (???, 11542 gas) + test cost_of_in_str_8 ... ok (???, 11416 gas) + test cost_of_in_str_16 ... ok (???, 11409 gas) + test cost_of_in_str_32 ... ok (???, 11423 gas) + test cost_of_in_array_0 ... ok (???, 10770 gas) + test cost_of_in_array_1 ... ok (???, 10863 gas) + test cost_of_in_array_8 ... ok (???, 11536 gas) + test cost_of_in_array_16 ... ok (???, 11158 gas) + test cost_of_in_array_32 ... ok (???, 11467 gas) + test cost_of_in_array_64 ... ok (???, 12076 gas) + test cost_of_in_tuple_0 ... ok (???, 10984 gas) + test cost_of_in_tuple_1 ... ok (???, 10882 gas) + test cost_of_in_tuple_2 ... ok (???, 10951 gas) + test cost_of_in_tuple_3 ... ok (???, 10965 gas) + test cost_of_in_tuple_4 ... ok (???, 10936 gas) + test in_struct_u64 ... ok (???, 10911 gas) + test in_struct_u64_u64 ... ok (???, 10944 gas) + test in_struct_u64_u64_u64 ... ok (???, 10966 gas) + test in_enum_u64 ... ok (???, 10963 gas) + test in_enum_u64_u64 ... ok (???, 10959 gas) + test in_enum_u64_u64_u64 ... ok (???, 10975 gas) test result: OK. 29 passed; 0 failed; finished in ??? @@ -56,12 +56,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.216 KB] in ??? + Finished release [optimized + fuel] target(s) [632 B] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_array_0 ... ok (???, 10398 gas) + test isolated_cost_of_in_array_0 ... ok (???, 10183 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -76,12 +76,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.384 KB] in ??? + Finished release [optimized + fuel] target(s) [752 B] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_array_1 ... ok (???, 10617 gas) + test isolated_cost_of_in_array_1 ... ok (???, 10266 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -96,12 +96,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.416 KB] in ??? + Finished release [optimized + fuel] target(s) [768 B] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_array_16 ... ok (???, 12657 gas) + test isolated_cost_of_in_array_16 ... ok (???, 10559 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -116,12 +116,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.416 KB] in ??? + Finished release [optimized + fuel] target(s) [768 B] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_array_32 ... ok (???, 14816 gas) + test isolated_cost_of_in_array_32 ... ok (???, 10860 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -136,12 +136,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.472 KB] in ??? + Finished release [optimized + fuel] target(s) [768 B] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_array_64 ... ok (???, 19160 gas) + test isolated_cost_of_in_array_64 ... ok (???, 11461 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -156,12 +156,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.544 KB] in ??? + Finished release [optimized + fuel] target(s) [856 B] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_array_8 ... ok (???, 12128 gas) + test isolated_cost_of_in_array_8 ... ok (???, 10932 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -176,12 +176,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.256 KB] in ??? + Finished release [optimized + fuel] target(s) [728 B] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_b256 ... ok (???, 10550 gas) + test isolated_cost_of_in_b256 ... ok (???, 10268 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -216,12 +216,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.432 KB] in ??? + Finished release [optimized + fuel] target(s) [880 B] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test in_enum_u64 ... ok (???, 10778 gas) + test in_enum_u64 ... ok (???, 10336 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -236,12 +236,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.536 KB] in ??? + Finished release [optimized + fuel] target(s) [1.392 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test in_enum_u64_u64 ... ok (???, 10810 gas) + test in_enum_u64_u64 ... ok (???, 10362 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -256,12 +256,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.68 KB] in ??? + Finished release [optimized + fuel] target(s) [1.536 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test in_enum_u64_u64_u64 ... ok (???, 10818 gas) + test in_enum_u64_u64_u64 ... ok (???, 10363 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -276,12 +276,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.184 KB] in ??? + Finished release [optimized + fuel] target(s) [1.144 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_str_0 ... ok (???, 10662 gas) + test isolated_cost_of_in_str_0 ... ok (???, 10574 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -316,12 +316,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.472 KB] in ??? + Finished release [optimized + fuel] target(s) [1.432 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_str_16 ... ok (???, 10877 gas) + test isolated_cost_of_in_str_16 ... ok (???, 10775 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -336,12 +336,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.488 KB] in ??? + Finished release [optimized + fuel] target(s) [1.448 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_str_32 ... ok (???, 10882 gas) + test isolated_cost_of_in_str_32 ... ok (???, 10781 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -356,12 +356,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.44 KB] in ??? + Finished release [optimized + fuel] target(s) [1.4 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_str_8 ... ok (???, 10873 gas) + test isolated_cost_of_in_str_8 ... ok (???, 10771 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -376,12 +376,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.256 KB] in ??? + Finished release [optimized + fuel] target(s) [736 B] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test in_struct_u64 ... ok (???, 10542 gas) + test in_struct_u64 ... ok (???, 10260 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -396,12 +396,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.36 KB] in ??? + Finished release [optimized + fuel] target(s) [1.216 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test in_struct_u64_u64 ... ok (???, 10702 gas) + test in_struct_u64_u64 ... ok (???, 10296 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -416,12 +416,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.424 KB] in ??? + Finished release [optimized + fuel] target(s) [1.28 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test in_struct_u64_u64_u64 ... ok (???, 10830 gas) + test in_struct_u64_u64_u64 ... ok (???, 10302 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -436,12 +436,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [832 B] in ??? + Finished release [optimized + fuel] target(s) [816 B] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_tuple_0 ... ok (???, 10321 gas) + test isolated_cost_of_in_tuple_0 ... ok (???, 10312 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -456,12 +456,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.312 KB] in ??? + Finished release [optimized + fuel] target(s) [736 B] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_tuple_1 ... ok (???, 10713 gas) + test isolated_cost_of_in_tuple_1 ... ok (???, 10260 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -476,12 +476,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.44 KB] in ??? + Finished release [optimized + fuel] target(s) [1.096 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_tuple_2 ... ok (???, 11071 gas) + test isolated_cost_of_in_tuple_2 ... ok (???, 10290 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -496,12 +496,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.496 KB] in ??? + Finished release [optimized + fuel] target(s) [1.128 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_tuple_3 ... ok (???, 11335 gas) + test isolated_cost_of_in_tuple_3 ... ok (???, 10296 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -516,12 +516,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.56 KB] in ??? + Finished release [optimized + fuel] target(s) [1.16 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_tuple_4 ... ok (???, 11596 gas) + test isolated_cost_of_in_tuple_4 ... ok (???, 10300 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -556,12 +556,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.256 KB] in ??? + Finished release [optimized + fuel] target(s) [728 B] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_u256 ... ok (???, 10550 gas) + test isolated_cost_of_in_u256 ... ok (???, 10268 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -596,12 +596,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [952 B] in ??? + Finished release [optimized + fuel] target(s) [688 B] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_u64 ... ok (???, 10362 gas) + test isolated_cost_of_in_u64 ... ok (???, 10232 gas) test result: OK. 1 passed; 0 failed; finished in ??? From 33f064ef42c403a621d4c58bc32d0256105df923 Mon Sep 17 00:00:00 2001 From: Daniel Frederico Lins Leite Date: Fri, 21 Nov 2025 13:53:40 -0300 Subject: [PATCH 21/27] more trivial types --- sway-lib-std/generate.sh | 2 +- sway-lib-std/src/codec.sw | 53 ++++++++++++++++++++------------------- 2 files changed, 28 insertions(+), 27 deletions(-) diff --git a/sway-lib-std/generate.sh b/sway-lib-std/generate.sh index 81d6989b7d7..21fbfd0090c 100755 --- a/sway-lib-std/generate.sh +++ b/sway-lib-std/generate.sh @@ -141,7 +141,7 @@ generate_tuple_decode() { ISTRIVIAL="$ISTRIVIAL \&\& is_decode_trivial::<$element>()" done - CODE="$CODE{ fn is_decode_trivial() -> bool { __runtime_mem_id::() == __encoding_mem_id::() $ISTRIVIA } fn abi_decode(ref mut buffer: BufferReader) -> Self { (" + CODE="$CODE{ fn is_decode_trivial() -> bool { __runtime_mem_id::() == __encoding_mem_id::() $ISTRIVIAL } fn abi_decode(ref mut buffer: BufferReader) -> Self { (" for element in ${elements[@]} do diff --git a/sway-lib-std/src/codec.sw b/sway-lib-std/src/codec.sw index 0d8d3824f23..b239565361e 100644 --- a/sway-lib-std/src/codec.sw +++ b/sway-lib-std/src/codec.sw @@ -3377,6 +3377,7 @@ impl AbiDecode for str { #[cfg(experimental_const_generics = true)] impl AbiDecode for str[N] { + // see comments on `is_encode_trivial` for str[N] above fn is_decode_trivial() -> bool { false } @@ -5441,7 +5442,7 @@ where A: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { (A::abi_decode(buffer), ) @@ -5453,7 +5454,7 @@ where B: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { (A::abi_decode(buffer), B::abi_decode(buffer)) @@ -5466,7 +5467,7 @@ where C: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { (A::abi_decode(buffer), B::abi_decode(buffer), C::abi_decode(buffer)) @@ -5480,7 +5481,7 @@ where D: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5500,7 +5501,7 @@ where E: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5522,7 +5523,7 @@ where F: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5546,7 +5547,7 @@ where G: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5572,7 +5573,7 @@ where H: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5600,7 +5601,7 @@ where I: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5630,7 +5631,7 @@ where J: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5662,7 +5663,7 @@ where K: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5696,7 +5697,7 @@ where L: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5732,7 +5733,7 @@ where M: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5770,7 +5771,7 @@ where N: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5810,7 +5811,7 @@ where O: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5852,7 +5853,7 @@ where P: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::

() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5896,7 +5897,7 @@ where Q: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::

() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5942,7 +5943,7 @@ where R: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::

() && is_decode_trivial::() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -5990,7 +5991,7 @@ where S: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::

() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -6040,7 +6041,7 @@ where T: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::

() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -6092,7 +6093,7 @@ where U: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::

() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -6146,7 +6147,7 @@ where V: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::

() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -6202,7 +6203,7 @@ where W: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::

() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -6260,7 +6261,7 @@ where X: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::

() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -6320,7 +6321,7 @@ where Y: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::

() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( @@ -6382,7 +6383,7 @@ where Z: AbiDecode, { fn is_decode_trivial() -> bool { - __runtime_mem_id::() == __encoding_mem_id::() + __runtime_mem_id::() == __encoding_mem_id::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::

() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() && is_decode_trivial::() } fn abi_decode(ref mut buffer: BufferReader) -> Self { ( From 31354594faba9ce4d9cebbf72883b4ebe8fd585f Mon Sep 17 00:00:00 2001 From: Daniel Frederico Lins Leite Date: Fri, 21 Nov 2025 20:36:55 -0300 Subject: [PATCH 22/27] update tests --- forc/tests/cli_integration.rs | 8 +- .../main_args/main_args_one_u64/stdout.snap | 16 +- .../main_args/main_args_two_u64/stdout.snap | 254 ++++++++++++------ .../main_args_various_types/stdout.snap | 232 ++++++++-------- .../const_of_contract_call/stdout.snap | 112 ++++---- 5 files changed, 360 insertions(+), 262 deletions(-) diff --git a/forc/tests/cli_integration.rs b/forc/tests/cli_integration.rs index adc6de09689..651b84fb7f0 100644 --- a/forc/tests/cli_integration.rs +++ b/forc/tests/cli_integration.rs @@ -51,10 +51,10 @@ fn test_forc_test_raw_logs() -> Result<(), rexpect::error::Error> { // Assert that the output is correct process.exp_string(" test test_log_4")?; process.exp_string("raw logs:")?; - process.exp_string(r#"[{"LogData":{"data":"0000000000000004","digest":"8005f02d43fa06e7d0585fb64c961d57e318b27a145c857bcd3a6bdb413ff7fc","id":"0000000000000000000000000000000000000000000000000000000000000000","is":10368,"len":8,"pc":12312,"ptr":67108856,"ra":0,"rb":1515152261580153489}}]"#)?; + process.exp_string(r#"[{"LogData":{"data":"0000000000000004","digest":"8005f02d43fa06e7d0585fb64c961d57e318b27a145c857bcd3a6bdb413ff7fc","id":"0000000000000000000000000000000000000000000000000000000000000000","is":10368,"len":8,"pc":11432,"ptr":67108856,"ra":0,"rb":1515152261580153489}}]"#)?; process.exp_string(" test test_log_2")?; process.exp_string("raw logs:")?; - process.exp_string(r#"[{"LogData":{"data":"0000000000000002","digest":"cd04a4754498e06db5a13c5f371f1f04ff6d2470f24aa9bd886540e5dce77f70","id":"0000000000000000000000000000000000000000000000000000000000000000","is":10368,"len":8,"pc":12312,"ptr":67108856,"ra":0,"rb":1515152261580153489}}]"#)?; + process.exp_string(r#"[{"LogData":{"data":"0000000000000002","digest":"cd04a4754498e06db5a13c5f371f1f04ff6d2470f24aa9bd886540e5dce77f70","id":"0000000000000000000000000000000000000000000000000000000000000000","is":10368,"len":8,"pc":11432,"ptr":67108856,"ra":0,"rb":1515152261580153489}}]"#)?; process.process.exit()?; Ok(()) @@ -77,12 +77,12 @@ fn test_forc_test_both_logs() -> Result<(), rexpect::error::Error> { process.exp_string("decoded log values:")?; process.exp_string("4, log rb: 1515152261580153489")?; process.exp_string("raw logs:")?; - process.exp_string(r#"[{"LogData":{"data":"0000000000000004","digest":"8005f02d43fa06e7d0585fb64c961d57e318b27a145c857bcd3a6bdb413ff7fc","id":"0000000000000000000000000000000000000000000000000000000000000000","is":10368,"len":8,"pc":12312,"ptr":67108856,"ra":0,"rb":1515152261580153489}}]"#)?; + process.exp_string(r#"[{"LogData":{"data":"0000000000000004","digest":"8005f02d43fa06e7d0585fb64c961d57e318b27a145c857bcd3a6bdb413ff7fc","id":"0000000000000000000000000000000000000000000000000000000000000000","is":10368,"len":8,"pc":11432,"ptr":67108856,"ra":0,"rb":1515152261580153489}}]"#)?; process.exp_string(" test test_log_2")?; process.exp_string("decoded log values:")?; process.exp_string("2, log rb: 1515152261580153489")?; process.exp_string("raw logs:")?; - process.exp_string(r#"[{"LogData":{"data":"0000000000000002","digest":"cd04a4754498e06db5a13c5f371f1f04ff6d2470f24aa9bd886540e5dce77f70","id":"0000000000000000000000000000000000000000000000000000000000000000","is":10368,"len":8,"pc":12312,"ptr":67108856,"ra":0,"rb":1515152261580153489}}]"#)?; + process.exp_string(r#"[{"LogData":{"data":"0000000000000002","digest":"cd04a4754498e06db5a13c5f371f1f04ff6d2470f24aa9bd886540e5dce77f70","id":"0000000000000000000000000000000000000000000000000000000000000000","is":10368,"len":8,"pc":11432,"ptr":67108856,"ra":0,"rb":1515152261580153489}}]"#)?; process.process.exit()?; Ok(()) } diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/stdout.snap index af19c448242..9b17d9cf710 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_one_u64/stdout.snap @@ -43,7 +43,7 @@ script { v7 = const u64 0 v8 = get_elem_ptr v6, __ptr u64, v7, !18 v9 = load v8 - v10 = call main_9(v9), !21 + v10 = call main_11(v9), !21 v11 = get_local __ptr u64, _result, !22 store v10 to v11, !22 v12 = get_local __ptr u64, _result, !23 @@ -51,7 +51,7 @@ script { retd v12 v13, !27 } - entry_orig fn main_9(baba !29: u64) -> u64, !32 { + entry_orig fn main_11(baba !29: u64) -> u64, !32 { entry(baba: u64): v0 = const u64 1, !33 v1 = add baba, v0, !36 @@ -67,13 +67,13 @@ script { !5 = span !4 1542 1543 !6 = span !0 59 89 !7 = fn_call_path_span !0 59 77 -!8 = span !4 175056 175088 -!9 = fn_call_path_span !4 175056 175086 +!8 = span !4 184944 184976 +!9 = fn_call_path_span !4 184944 184974 !10 = span !4 1525 1549 !11 = (!6 !7 !8 !9 !10) !12 = (!6 !7 !8 !9 !10) -!13 = span !4 175031 175089 -!14 = fn_call_path_span !4 175031 175050 +!13 = span !4 184919 184977 +!14 = fn_call_path_span !4 184919 184938 !15 = (!6 !7 !13 !14) !16 = span !0 40 90 !17 = span !0 131 135 @@ -117,14 +117,14 @@ addi $r0 $$locbase i16 ; get offset to local __ptr { u64 } mcpi $r0 $$locbase i8 ; copy memory lw $r0 $$locbase i2 ; load word move $$arg0 $r0 ; [call]: pass argument 0 -jal $$reta $pc i5 ; [call]: call main_9 +jal $$reta $pc i5 ; [call]: call main_11 sw $$locbase $$retv i1 ; store word addi $r0 $$locbase i8 ; get offset to local __ptr u64 movi $r1 i8 ; initialize constant into register retd $r0 $r1 pshl i1 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function main_9 +move $$locbase $sp ; save locals base register for function main_11 add $r0 $$arg0 $one move $$retv $r0 ; set return value poph i524288 ; restore registers 40..64 diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/stdout.snap index 1345e4215fa..f9570601e30 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/stdout.snap @@ -27,37 +27,87 @@ library { script { pub entry fn __entry() -> __ptr never, !3 { local mut { u64, u64 } __aggr_memcpy_0 + local { ptr } __anon_0 + local { u64, u64 } __anon_00 + local { u64, u64 } __tmp_block_arg local u64 _result local { u64, u64 } args + local mut { ptr } buffer entry(): v0 = const u64 0, !5 v1 = gtf v0, 10, !11 v2 = bitcast v1 to ptr, !12 - v3 = cast_ptr v2 to __ptr { u64, u64 }, !15 - v4 = get_local __ptr { u64, u64 }, __aggr_memcpy_0 - mem_copy_val v4, v3 - v5 = get_local __ptr { u64, u64 }, args, !16 + v3 = const bool true, !13 + cbr v3, decode_script_data_0_decode_from_raw_ptr_1_block0(), decode_script_data_0_decode_from_raw_ptr_1_block1(), !17 + + decode_script_data_0_decode_from_raw_ptr_1_block0(): + v4 = cast_ptr v2 to __ptr { u64, u64 }, !18 + v5 = get_local __ptr { u64, u64 }, __aggr_memcpy_0 mem_copy_val v5, v4 - v6 = get_local __ptr { u64, u64 }, args, !17 - v7 = const u64 0 - v8 = get_elem_ptr v6, __ptr u64, v7, !18 - v9 = load v8 - v10 = get_local __ptr { u64, u64 }, args, !19 - v11 = const u64 1 - v12 = get_elem_ptr v10, __ptr u64, v11, !20 - v13 = load v12 - v14 = call main_9(v9, v13), !23 - v15 = get_local __ptr u64, _result, !24 - store v14 to v15, !24 - v16 = get_local __ptr u64, _result, !25 - v17 = const u64 8 - retd v16 v17, !29 + v6 = get_local __ptr { u64, u64 }, __tmp_block_arg + mem_copy_val v6, v5 + br decode_script_data_0_decode_from_raw_ptr_1_block2(v6), !19 + + decode_script_data_0_decode_from_raw_ptr_1_block1(): + v7 = get_local __ptr { ptr }, __anon_0, !21 + v8 = const u64 0 + v9 = get_elem_ptr v7, __ptr ptr, v8, !22 + store v2 to v9, !23 + v10 = get_local __ptr { ptr }, buffer, !25 + mem_copy_val v10, v7 + v11 = get_local __ptr { ptr }, buffer, !27 + v12 = const u64 0 + v13 = get_elem_ptr v11, __ptr ptr, v12, !35 + v14 = load v13, !36 + v15 = asm(ptr: v14, val) -> u64 val, !38 { + lw val ptr i0, !39 + } + v16 = load v13, !40 + v17 = const u64 8, !41 + v18 = add v16, v17, !42 + store v18 to v13, !44 + v19 = load v13, !47 + v20 = asm(ptr: v19, val) -> u64 val, !48 { + lw val ptr i0, !39 + } + v21 = load v13, !49 + v22 = const u64 8, !50 + v23 = add v21, v22, !51 + store v23 to v13, !52 + v24 = get_local __ptr { u64, u64 }, __anon_00, !54 + v25 = const u64 0 + v26 = get_elem_ptr v24, __ptr u64, v25, !55 + store v15 to v26, !56 + v27 = const u64 1 + v28 = get_elem_ptr v24, __ptr u64, v27, !57 + store v20 to v28, !58 + v29 = get_local __ptr { u64, u64 }, __tmp_block_arg + mem_copy_val v29, v24 + br decode_script_data_0_decode_from_raw_ptr_1_block2(v29), !59 + + decode_script_data_0_decode_from_raw_ptr_1_block2(v30: __ptr { u64, u64 }): + v31 = get_local __ptr { u64, u64 }, args, !60 + mem_copy_val v31, v30 + v32 = get_local __ptr { u64, u64 }, args, !61 + v33 = const u64 0 + v34 = get_elem_ptr v32, __ptr u64, v33, !62 + v35 = load v34 + v36 = get_local __ptr { u64, u64 }, args, !63 + v37 = const u64 1 + v38 = get_elem_ptr v36, __ptr u64, v37, !64 + v39 = load v38 + v40 = call main_11(v35, v39), !67 + v41 = get_local __ptr u64, _result, !68 + store v40 to v41, !68 + v42 = get_local __ptr u64, _result, !69 + v43 = const u64 8 + retd v42 v43, !73 } - entry_orig fn main_9(baba !31: u64, keke !32: u64) -> u64, !35 { + entry_orig fn main_11(baba !75: u64, keke !76: u64) -> u64, !79 { entry(baba: u64, keke: u64): - v0 = add baba, keke, !38 + v0 = add baba, keke, !82 ret u64 v0 } } @@ -70,37 +120,81 @@ script { !5 = span !4 1542 1543 !6 = span !0 64 99 !7 = fn_call_path_span !0 64 82 -!8 = span !4 175056 175088 -!9 = fn_call_path_span !4 175056 175086 +!8 = span !4 184944 184976 +!9 = fn_call_path_span !4 184944 184974 !10 = span !4 1525 1549 !11 = (!6 !7 !8 !9 !10) !12 = (!6 !7 !8 !9 !10) -!13 = span !4 175031 175089 -!14 = fn_call_path_span !4 175031 175050 -!15 = (!6 !7 !13 !14) -!16 = span !0 40 100 -!17 = span !0 141 145 -!18 = span !0 146 147 -!19 = span !0 149 153 -!20 = span !0 154 155 -!21 = span !0 136 156 -!22 = fn_call_path_span !0 136 140 -!23 = (!21 !22) -!24 = span !0 117 157 -!25 = span !0 200 207 -!26 = span !0 174 208 -!27 = fn_call_path_span !0 174 191 -!28 = span !4 93230 93256 -!29 = (!26 !27 !28) -!30 = "test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/src/main.sw" -!31 = span !30 17 21 -!32 = span !30 28 32 -!33 = span !30 9 65 -!34 = fn_name_span !30 12 16 -!35 = (!33 !34) -!36 = span !30 52 63 -!37 = fn_call_path_span !30 57 58 -!38 = (!36 !37) +!13 = span !4 95125 95129 +!14 = span !4 184919 184977 +!15 = fn_call_path_span !4 184919 184938 +!16 = span !4 184659 184683 +!17 = (!6 !7 !14 !15 !16) +!18 = (!6 !7 !14 !15) +!19 = (!6 !7 !14 !15) +!20 = span !4 184792 184812 +!21 = (!6 !7 !14 !15 !20) +!22 = (!6 !7 !14 !15) +!23 = (!6 !7 !14 !15 !20) +!24 = span !4 184775 184813 +!25 = (!6 !7 !14 !15 !24) +!26 = span !4 184836 184842 +!27 = (!6 !7 !14 !15 !26) +!28 = span !4 184822 184843 +!29 = fn_call_path_span !4 184822 184835 +!30 = span !4 148317 148338 +!31 = fn_call_path_span !4 148317 148330 +!32 = span !4 95201 95229 +!33 = fn_call_path_span !4 95208 95220 +!34 = span !4 625 641 +!35 = (!6 !7 !14 !15 !28 !29 !30 !31 !32 !33 !34) +!36 = (!6 !7 !14 !15 !28 !29 !30 !31 !32 !33) +!37 = span !4 2212 2293 +!38 = (!6 !7 !14 !15 !28 !29 !30 !31 !32 !33 !37) +!39 = span !4 2250 2263 +!40 = (!6 !7 !14 !15 !28 !29 !30 !31 !32 !33) +!41 = (!6 !7 !14 !15 !28 !29 !30 !31 !32 !33) +!42 = (!6 !7 !14 !15 !28 !29 !30 !31 !32 !33) +!43 = span !4 2303 2342 +!44 = (!6 !7 !14 !15 !28 !29 !30 !31 !32 !33 !43) +!45 = span !4 148340 148361 +!46 = fn_call_path_span !4 148340 148353 +!47 = (!6 !7 !14 !15 !28 !29 !45 !46 !32 !33) +!48 = (!6 !7 !14 !15 !28 !29 !45 !46 !32 !33 !37) +!49 = (!6 !7 !14 !15 !28 !29 !45 !46 !32 !33) +!50 = (!6 !7 !14 !15 !28 !29 !45 !46 !32 !33) +!51 = (!6 !7 !14 !15 !28 !29 !45 !46 !32 !33) +!52 = (!6 !7 !14 !15 !28 !29 !45 !46 !32 !33 !43) +!53 = span !4 148316 148362 +!54 = (!6 !7 !14 !15 !28 !29 !53) +!55 = (!6 !7 !14 !15 !28 !29 !53) +!56 = (!6 !7 !14 !15 !28 !29 !53) +!57 = (!6 !7 !14 !15 !28 !29 !53) +!58 = (!6 !7 !14 !15 !28 !29 !53) +!59 = (!6 !7 !14 !15) +!60 = span !0 40 100 +!61 = span !0 141 145 +!62 = span !0 146 147 +!63 = span !0 149 153 +!64 = span !0 154 155 +!65 = span !0 136 156 +!66 = fn_call_path_span !0 136 140 +!67 = (!65 !66) +!68 = span !0 117 157 +!69 = span !0 200 207 +!70 = span !0 174 208 +!71 = fn_call_path_span !0 174 191 +!72 = span !4 93230 93256 +!73 = (!70 !71 !72) +!74 = "test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/src/main.sw" +!75 = span !74 17 21 +!76 = span !74 28 32 +!77 = span !74 9 65 +!78 = fn_name_span !74 12 16 +!79 = (!77 !78) +!80 = span !74 52 63 +!81 = fn_call_path_span !74 57 58 +!82 = (!80 !81) ;; ASM: Final program ;; Program kind: Script @@ -115,23 +209,25 @@ lw $$ds $$tmp i1 add $$ds $$ds $$tmp cfei i0 ; allocate stack space for globals move $$locbase $sp ; save locals base register for function __entry -cfei i40 ; allocate 40 bytes for locals and 0 slots for call arguments +cfei i88 ; allocate 88 bytes for locals and 0 slots for call arguments gtf $r0 $zero i10 ; get transaction field mcpi $$locbase $r0 i16 ; copy memory -addi $r0 $$locbase i24 ; get offset to local __ptr { u64, u64 } +addi $r0 $$locbase i40 ; get offset to local __ptr { u64, u64 } mcpi $r0 $$locbase i16 ; copy memory -lw $r0 $$locbase i3 ; load word -lw $r1 $$locbase i4 ; load word +addi $r1 $$locbase i64 ; get offset to local __ptr { u64, u64 } +mcpi $r1 $r0 i16 ; copy memory +lw $r0 $$locbase i8 ; load word +lw $r1 $$locbase i9 ; load word move $$arg0 $r0 ; [call]: pass argument 0 move $$arg1 $r1 ; [call]: pass argument 1 -jal $$reta $pc i5 ; [call]: call main_9 -sw $$locbase $$retv i2 ; store word -addi $r0 $$locbase i16 ; get offset to local __ptr u64 +jal $$reta $pc i5 ; [call]: call main_11 +sw $$locbase $$retv i7 ; store word +addi $r0 $$locbase i56 ; get offset to local __ptr u64 movi $r1 i8 ; initialize constant into register retd $r0 $r1 pshl i1 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function main_9 +move $$locbase $sp ; save locals base register for function main_11 add $r0 $$arg0 $$arg1 move $$retv $r0 ; set return value poph i524288 ; restore registers 40..64 @@ -144,35 +240,37 @@ jal $zero $$reta i0 ; return from call 0x00000000 MOVE R60 $pc ;; [26, 240, 48, 0] 0x00000004 JMPF $zero 0x4 ;; [116, 0, 0, 4] -0x00000008 ;; [0, 0, 0, 0, 0, 0, 0, 128] +0x00000008 ;; [0, 0, 0, 0, 0, 0, 0, 136] 0x00000010 ;; [0, 0, 0, 0, 0, 0, 0, 0] 0x00000018 LW R63 R60 0x1 ;; [93, 255, 192, 1] 0x0000001c ADD R63 R63 R60 ;; [16, 255, 255, 0] 0x00000020 MOVE R59 $sp ;; [26, 236, 80, 0] -0x00000024 CFEI 0x28 ;; [145, 0, 0, 40] +0x00000024 CFEI 0x58 ;; [145, 0, 0, 88] 0x00000028 GTF $writable $zero 0xa ;; [97, 64, 0, 10] 0x0000002c MCPI R59 $writable 0x10 ;; [96, 237, 0, 16] -0x00000030 ADDI $writable R59 0x18 ;; [80, 67, 176, 24] +0x00000030 ADDI $writable R59 0x28 ;; [80, 67, 176, 40] 0x00000034 MCPI $writable R59 0x10 ;; [96, 67, 176, 16] -0x00000038 LW $writable R59 0x3 ;; [93, 67, 176, 3] -0x0000003c LW R17 R59 0x4 ;; [93, 71, 176, 4] -0x00000040 MOVE R58 $writable ;; [26, 233, 0, 0] -0x00000044 MOVE R57 R17 ;; [26, 229, 16, 0] -0x00000048 JAL R62 $pc 0x5 ;; [153, 248, 48, 5] -0x0000004c SW R59 R61 0x2 ;; [95, 239, 208, 2] -0x00000050 ADDI $writable R59 0x10 ;; [80, 67, 176, 16] -0x00000054 MOVI R17 0x8 ;; [114, 68, 0, 8] -0x00000058 RETD $writable R17 ;; [37, 65, 16, 0] -0x0000005c PSHL 0x1 ;; [149, 0, 0, 1] -0x00000060 PSHH 0x80000 ;; [150, 8, 0, 0] -0x00000064 MOVE R59 $sp ;; [26, 236, 80, 0] -0x00000068 ADD $writable R58 R57 ;; [16, 67, 174, 64] -0x0000006c MOVE R61 $writable ;; [26, 245, 0, 0] -0x00000070 POPH 0x80000 ;; [152, 8, 0, 0] -0x00000074 POPL 0x1 ;; [151, 0, 0, 1] -0x00000078 JAL $zero R62 0x0 ;; [153, 3, 224, 0] -0x0000007c NOOP ;; [71, 0, 0, 0] +0x00000038 ADDI R17 R59 0x40 ;; [80, 71, 176, 64] +0x0000003c MCPI R17 $writable 0x10 ;; [96, 69, 0, 16] +0x00000040 LW $writable R59 0x8 ;; [93, 67, 176, 8] +0x00000044 LW R17 R59 0x9 ;; [93, 71, 176, 9] +0x00000048 MOVE R58 $writable ;; [26, 233, 0, 0] +0x0000004c MOVE R57 R17 ;; [26, 229, 16, 0] +0x00000050 JAL R62 $pc 0x5 ;; [153, 248, 48, 5] +0x00000054 SW R59 R61 0x7 ;; [95, 239, 208, 7] +0x00000058 ADDI $writable R59 0x38 ;; [80, 67, 176, 56] +0x0000005c MOVI R17 0x8 ;; [114, 68, 0, 8] +0x00000060 RETD $writable R17 ;; [37, 65, 16, 0] +0x00000064 PSHL 0x1 ;; [149, 0, 0, 1] +0x00000068 PSHH 0x80000 ;; [150, 8, 0, 0] +0x0000006c MOVE R59 $sp ;; [26, 236, 80, 0] +0x00000070 ADD $writable R58 R57 ;; [16, 67, 174, 64] +0x00000074 MOVE R61 $writable ;; [26, 245, 0, 0] +0x00000078 POPH 0x80000 ;; [152, 8, 0, 0] +0x0000007c POPL 0x1 ;; [151, 0, 0, 1] +0x00000080 JAL $zero R62 0x0 ;; [153, 3, 224, 0] +0x00000084 NOOP ;; [71, 0, 0, 0] .data_section: ;; --- END OF TARGET BYTECODE --- - Finished release [optimized + fuel] target(s) [128 B] in ??? + Finished release [optimized + fuel] target(s) [136 B] in ??? diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/stdout.snap index 1fc9101945e..03bba81f0b2 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_various_types/stdout.snap @@ -47,7 +47,7 @@ script { store v2 to v5, !18 v6 = get_local __ptr { ptr }, buffer, !20 v7 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, first - v8 = call decode_7(v6, v7) + v8 = call decode_17(v6, v7) v9 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], array, !26 v10 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, first, !28 v11 = const u64 0 @@ -57,24 +57,24 @@ script { v14 = get_elem_ptr v9, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v13, !30 mem_copy_val v14, v10 v15 = const u64 1, !31 - br decode_script_data_0_decode_from_raw_ptr_1_abi_decode_5_abi_decode_6_while(v15), !32 + br decode_script_data_0_decode_from_raw_ptr_1_abi_decode_15_abi_decode_16_while(v15), !32 - decode_script_data_0_decode_from_raw_ptr_1_abi_decode_5_abi_decode_6_while(v16: u64): + decode_script_data_0_decode_from_raw_ptr_1_abi_decode_15_abi_decode_16_while(v16: u64): v17 = const u64 2, !33 v18 = cmp lt v16 v17, !36 - cbr v18, decode_script_data_0_decode_from_raw_ptr_1_abi_decode_5_abi_decode_6_while_body(), decode_script_data_0_decode_from_raw_ptr_1_abi_decode_5_abi_decode_6_end_while(), !37 + cbr v18, decode_script_data_0_decode_from_raw_ptr_1_abi_decode_15_abi_decode_16_while_body(), decode_script_data_0_decode_from_raw_ptr_1_abi_decode_15_abi_decode_16_end_while(), !37 - decode_script_data_0_decode_from_raw_ptr_1_abi_decode_5_abi_decode_6_while_body(): + decode_script_data_0_decode_from_raw_ptr_1_abi_decode_15_abi_decode_16_while_body(): v19 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, __ret_val0 - v20 = call decode_7(v6, v19) + v20 = call decode_17(v6, v19) v21 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], array, !39 v22 = get_elem_ptr v21, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v16, !40 mem_copy_val v22, v19 v23 = const u64 1, !41 v24 = add v16, v23, !44 - br decode_script_data_0_decode_from_raw_ptr_1_abi_decode_5_abi_decode_6_while(v24), !45 + br decode_script_data_0_decode_from_raw_ptr_1_abi_decode_15_abi_decode_16_while(v24), !45 - decode_script_data_0_decode_from_raw_ptr_1_abi_decode_5_abi_decode_6_end_while(): + decode_script_data_0_decode_from_raw_ptr_1_abi_decode_15_abi_decode_16_end_while(): v25 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], array, !47 v26 = get_local __ptr { [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] }, args, !49 v27 = const u64 0 @@ -86,13 +86,13 @@ script { v32 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], __tmp_arg mem_copy_val v32, v31 v33 = get_local __ptr { u64 }, _result - v34 = call main_22(v32, v33) + v34 = call main_32(v32, v33) v35 = get_local __ptr { u64 }, _result, !53 v36 = const u64 8 retd v35 v36, !57 } - pub fn decode_7(self !58: __ptr { ptr }, __ret_value: __ptr { { string<3> }, { u64, ( u64 | u64 ) } }) -> (), !61 { + pub fn decode_17(self !58: __ptr { ptr }, __ret_value: __ptr { { string<3> }, { u64, ( u64 | u64 ) } }) -> (), !61 { local mut slice __aggr_memcpy_0 local mut { ptr, u64 } __aggr_memcpy_00 local mut string<3> __aggr_memcpy_01 @@ -166,9 +166,9 @@ script { store v36 to v1, !123 v37 = const u64 0, !124 v38 = cmp eq v33 v37, !127 - cbr v38, abi_decode_8_abi_decode_15_block0(), abi_decode_8_abi_decode_15_block1(), !128 + cbr v38, abi_decode_18_abi_decode_25_block0(), abi_decode_18_abi_decode_25_block1(), !128 - abi_decode_8_abi_decode_15_block0(): + abi_decode_18_abi_decode_25_block0(): v39 = get_local __ptr { u64, ( u64 | u64 ) }, __anon_01, !131 v40 = const u64 0 v41 = get_elem_ptr v39, __ptr u64, v40, !132 @@ -188,14 +188,14 @@ script { store v44 to v50, !143 v51 = get_local __ptr { u64, ( u64 | u64 ) }, __tmp_block_arg mem_copy_val v51, v39 - br abi_decode_8_abi_decode_15_block5(v51), !144 + br abi_decode_18_abi_decode_25_block5(v51), !144 - abi_decode_8_abi_decode_15_block1(): + abi_decode_18_abi_decode_25_block1(): v52 = const u64 1, !145 v53 = cmp eq v33 v52, !148 - cbr v53, abi_decode_8_abi_decode_15_block2(), abi_decode_8_abi_decode_15_block3(), !149 + cbr v53, abi_decode_18_abi_decode_25_block2(), abi_decode_18_abi_decode_25_block3(), !149 - abi_decode_8_abi_decode_15_block2(): + abi_decode_18_abi_decode_25_block2(): v54 = get_local __ptr { u64, ( u64 | u64 ) }, __anon_1, !150 v55 = const u64 0 v56 = get_elem_ptr v54, __ptr u64, v55, !151 @@ -215,13 +215,13 @@ script { store v59 to v65, !162 v66 = get_local __ptr { u64, ( u64 | u64 ) }, __tmp_block_arg mem_copy_val v66, v54 - br abi_decode_8_abi_decode_15_block5(v66), !163 + br abi_decode_18_abi_decode_25_block5(v66), !163 - abi_decode_8_abi_decode_15_block3(): + abi_decode_18_abi_decode_25_block3(): v67 = const u64 0, !164 revert v67, !166 - abi_decode_8_abi_decode_15_block5(v68: __ptr { u64, ( u64 | u64 ) }): + abi_decode_18_abi_decode_25_block5(v68: __ptr { u64, ( u64 | u64 ) }): v69 = get_local __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, __anon_0, !168 v70 = const u64 0 v71 = get_elem_ptr v69, __ptr { string<3> }, v70, !169 @@ -234,7 +234,7 @@ script { ret () v74 } - entry_orig fn main_22(ops: __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], __ret_value: __ptr { u64 }) -> (), !173 { + entry_orig fn main_32(ops: __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], __ret_value: __ptr { u64 }) -> (), !173 { local mut slice __aggr_memcpy_0 local mut { ptr, u64, u64 } __aggr_memcpy_00 local mut { ptr, u64, u64 } __aggr_memcpy_01 @@ -302,9 +302,9 @@ script { v2 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], item_, !174 mem_copy_val v2, v1 v3 = const bool false, !183 - cbr v3, encode_23_block0(), encode_23_block1(), !184 + cbr v3, encode_33_block0(), encode_33_block1(), !184 - encode_23_block0(): + encode_33_block0(): v4 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], item_, !186 v5 = const u64 48 v6 = asm(size: v5, src: v4) -> ptr hp, !188 { @@ -324,12 +324,12 @@ script { mem_copy_val v13, v12 v14 = get_local __ptr slice, __tmp_block_arg0 mem_copy_val v14, v13 - br encode_23_block2(v14), !174 + br encode_33_block2(v14), !174 - encode_23_block1(): + encode_33_block1(): v15 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], item_, !198 v16 = get_local __ptr { { ptr, u64, u64 } }, __ret_val3 - v17 = call new_42(v16) + v17 = call new_52(v16) v18 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], self_2, !201 mem_copy_val v18, v15 v19 = get_local __ptr { { ptr, u64, u64 } }, buffer_, !202 @@ -338,14 +338,14 @@ script { v21 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !206 mem_copy_val v21, v20 v22 = const u64 0, !207 - br encode_23_abi_encode_36_while(v22), !208 + br encode_33_abi_encode_46_while(v22), !208 - encode_23_abi_encode_36_while(v23: u64): + encode_33_abi_encode_46_while(v23: u64): v24 = const u64 2, !209 v25 = cmp lt v23 v24, !212 - cbr v25, encode_23_abi_encode_36_while_body(), encode_23_abi_encode_36_end_while(), !213 + cbr v25, encode_33_abi_encode_46_while_body(), encode_33_abi_encode_46_end_while(), !213 - encode_23_abi_encode_36_while_body(): + encode_33_abi_encode_46_while_body(): v26 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], self_2, !215 v27 = get_elem_ptr v26, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v23, !217 v28 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !219 @@ -391,9 +391,9 @@ script { v59 = const u64 3 v60 = add v57, v59, !257 v61 = cmp gt v60 v54, !258 - cbr v61, encode_23_abi_encode_36_abi_encode_37_abi_encode_38_abi_encode_39_block1(), encode_23_abi_encode_36_abi_encode_37_abi_encode_38_abi_encode_39_block0(v51, v54), !259 + cbr v61, encode_33_abi_encode_46_abi_encode_47_abi_encode_48_abi_encode_49_block1(), encode_33_abi_encode_46_abi_encode_47_abi_encode_48_abi_encode_49_block0(v51, v54), !259 - encode_23_abi_encode_36_abi_encode_37_abi_encode_38_abi_encode_39_block0(v62: ptr, v63: u64): + encode_33_abi_encode_46_abi_encode_47_abi_encode_48_abi_encode_49_block0(v62: ptr, v63: u64): v64 = get_local __ptr string<3>, __anon_10, !260 mem_copy_val v64, v58 v65 = add v62, v57, !261 @@ -439,9 +439,9 @@ script { v93 = load v92, !296 v94 = const u64 0, !290 v95 = cmp eq v93 v94, !299 - cbr v95, encode_23_abi_encode_36_abi_encode_37_abi_encode_40_block0(), encode_23_abi_encode_36_abi_encode_37_abi_encode_40_block1(), !300 + cbr v95, encode_33_abi_encode_46_abi_encode_47_abi_encode_50_block0(), encode_33_abi_encode_46_abi_encode_47_abi_encode_50_block1(), !300 - encode_23_abi_encode_36_abi_encode_37_abi_encode_38_abi_encode_39_block1(): + encode_33_abi_encode_46_abi_encode_47_abi_encode_48_abi_encode_49_block1(): v96 = const u64 2 v97 = mul v54, v96, !301 v98 = add v97, v59, !302 @@ -449,9 +449,9 @@ script { aloc new_cap mcp hp old_ptr len } - br encode_23_abi_encode_36_abi_encode_37_abi_encode_38_abi_encode_39_block0(v99, v98), !304 + br encode_33_abi_encode_46_abi_encode_47_abi_encode_48_abi_encode_49_block0(v99, v98), !304 - encode_23_abi_encode_36_abi_encode_37_abi_encode_40_block0(): + encode_33_abi_encode_46_abi_encode_47_abi_encode_50_block0(): v100 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !305 v101 = const u64 1 v102 = const u64 0 @@ -462,31 +462,31 @@ script { mem_copy_val v106, v105 v107 = get_local __ptr { { ptr, u64, u64 } }, __ret_val v108 = const u64 0, !310 - v109 = call abi_encode_41(v108, v106, v107) + v109 = call abi_encode_51(v108, v106, v107) v110 = get_local __ptr { { ptr, u64, u64 } }, buffer__1, !312 mem_copy_val v110, v107 v111 = get_local __ptr { { ptr, u64, u64 } }, buffer__1, !314 v112 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg0 mem_copy_val v112, v111 v113 = get_local __ptr { { ptr, u64, u64 } }, __ret_val0 - v114 = call abi_encode_41(v104, v112, v113) + v114 = call abi_encode_51(v104, v112, v113) v115 = get_local __ptr { { ptr, u64, u64 } }, buffer___0, !316 mem_copy_val v115, v113 v116 = get_local __ptr { { ptr, u64, u64 } }, buffer___0, !318 v117 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg mem_copy_val v117, v116 - br encode_23_abi_encode_36_abi_encode_37_abi_encode_40_block5(v117), !319 + br encode_33_abi_encode_46_abi_encode_47_abi_encode_50_block5(v117), !319 - encode_23_abi_encode_36_abi_encode_37_abi_encode_40_block1(): + encode_33_abi_encode_46_abi_encode_47_abi_encode_50_block1(): v118 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !320 v119 = const u64 0 v120 = get_elem_ptr v118, __ptr u64, v119, !321 v121 = load v120, !322 v122 = const u64 1, !290 v123 = cmp eq v121 v122, !325 - cbr v123, encode_23_abi_encode_36_abi_encode_37_abi_encode_40_block2(), encode_23_abi_encode_36_abi_encode_37_abi_encode_40_block3(), !326 + cbr v123, encode_33_abi_encode_46_abi_encode_47_abi_encode_50_block2(), encode_33_abi_encode_46_abi_encode_47_abi_encode_50_block3(), !326 - encode_23_abi_encode_36_abi_encode_37_abi_encode_40_block2(): + encode_33_abi_encode_46_abi_encode_47_abi_encode_50_block2(): v124 = get_local __ptr { u64, ( u64 | u64 ) }, __matched_value_10, !327 v125 = const u64 1 v126 = const u64 1 @@ -497,26 +497,26 @@ script { mem_copy_val v130, v129 v131 = get_local __ptr { { ptr, u64, u64 } }, __ret_val1 v132 = const u64 1, !332 - v133 = call abi_encode_41(v132, v130, v131) + v133 = call abi_encode_51(v132, v130, v131) v134 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !334 mem_copy_val v134, v131 v135 = get_local __ptr { { ptr, u64, u64 } }, buffer____, !336 v136 = get_local __ptr { { ptr, u64, u64 } }, __tmp_arg2 mem_copy_val v136, v135 v137 = get_local __ptr { { ptr, u64, u64 } }, __ret_val2 - v138 = call abi_encode_41(v128, v136, v137) + v138 = call abi_encode_51(v128, v136, v137) v139 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !338 mem_copy_val v139, v137 v140 = get_local __ptr { { ptr, u64, u64 } }, buffer_____, !340 v141 = get_local __ptr { { ptr, u64, u64 } }, __tmp_block_arg mem_copy_val v141, v140 - br encode_23_abi_encode_36_abi_encode_37_abi_encode_40_block5(v141), !341 + br encode_33_abi_encode_46_abi_encode_47_abi_encode_50_block5(v141), !341 - encode_23_abi_encode_36_abi_encode_37_abi_encode_40_block3(): + encode_33_abi_encode_46_abi_encode_47_abi_encode_50_block3(): v142 = const u64 14757395258967588866, !292 revert v142, !342 - encode_23_abi_encode_36_abi_encode_37_abi_encode_40_block5(v143: __ptr { { ptr, u64, u64 } }): + encode_33_abi_encode_46_abi_encode_47_abi_encode_50_block5(v143: __ptr { { ptr, u64, u64 } }): v144 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !344 mem_copy_val v144, v143 v145 = get_local __ptr { { ptr, u64, u64 } }, buffer______, !346 @@ -527,9 +527,9 @@ script { mem_copy_val v148, v147 v149 = const u64 1, !353 v150 = add v23, v149, !356 - br encode_23_abi_encode_36_while(v150), !357 + br encode_33_abi_encode_46_while(v150), !357 - encode_23_abi_encode_36_end_while(): + encode_33_abi_encode_46_end_while(): v151 = get_local __ptr { { ptr, u64, u64 } }, buffer__, !359 v152 = get_local __ptr { { ptr, u64, u64 } }, buffer, !361 mem_copy_val v152, v151 @@ -562,9 +562,9 @@ script { mem_copy_val v171, v170 v172 = get_local __ptr slice, __tmp_block_arg0 mem_copy_val v172, v171 - br encode_23_block2(v172), !174 + br encode_33_block2(v172), !174 - encode_23_block2(v173: __ptr slice): + encode_33_block2(v173: __ptr slice): v174 = get_local __ptr slice, __log_arg mem_copy_val v174, v173 v175 = const u64 3647243719605075626 @@ -592,16 +592,16 @@ script { mem_copy_val v192, v182 v193 = get_local __ptr slice, __tmp_arg4 mem_copy_val v193, v191 - v194 = call eq_str_3_47(v192, v193) + v194 = call eq_str_3_57(v192, v193) v195 = const bool false, !382 v196 = cmp eq v194 v195, !388 - cbr v196, assert_44_block0(), assert_44_block1(), !389 + cbr v196, assert_54_block0(), assert_54_block1(), !389 - assert_44_block0(): + assert_54_block0(): v197 = const u64 18446744073709486084 revert v197, !394 - assert_44_block1(): + assert_54_block1(): v198 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !395 v199 = const u64 0, !396 v200 = get_elem_ptr v198, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v199, !397 @@ -626,12 +626,12 @@ script { v215 = const u64 1338, !404 v216 = cmp eq v214 v215, !407 v217 = cmp eq v216 v195, !410 - cbr v217, assert_44_block015(), assert_44_block116(), !411 + cbr v217, assert_54_block015(), assert_54_block116(), !411 - assert_44_block015(): + assert_54_block015(): revert v197, !412 - assert_44_block116(): + assert_54_block116(): v218 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !413 v219 = const u64 1, !414 v220 = get_elem_ptr v218, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v219, !415 @@ -655,14 +655,14 @@ script { mem_copy_val v234, v224 v235 = get_local __ptr slice, __tmp_arg6 mem_copy_val v235, v233 - v236 = call eq_str_3_47(v234, v235) + v236 = call eq_str_3_57(v234, v235) v237 = cmp eq v236 v195, !420 - cbr v237, assert_44_block018(), assert_44_block119(), !421 + cbr v237, assert_54_block018(), assert_54_block119(), !421 - assert_44_block018(): + assert_54_block018(): revert v197, !422 - assert_44_block119(): + assert_54_block119(): v238 = get_local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2], ops_, !423 v239 = const u64 1, !424 v240 = get_elem_ptr v238, __ptr { { string<3> }, { u64, ( u64 | u64 ) } }, v239, !425 @@ -691,12 +691,12 @@ script { v256 = const u64 1, !436 v257 = cmp eq v255 v256, !439 v258 = cmp eq v257 v195, !442 - cbr v258, assert_44_block021(), assert_44_block122(), !443 + cbr v258, assert_54_block021(), assert_54_block122(), !443 - assert_44_block021(): + assert_54_block021(): revert v197, !444 - assert_44_block122(): + assert_54_block122(): v259 = get_local __ptr { u64 }, __anon_4, !445 v260 = const u64 0 v261 = get_elem_ptr v259, __ptr u64, v260 @@ -711,7 +711,7 @@ script { revert v264, !450 } - pub fn abi_encode_41(self !451: u64, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }) -> (), !454 { + pub fn abi_encode_51(self !451: u64, buffer: __ptr { { ptr, u64, u64 } }, __ret_value: __ptr { { ptr, u64, u64 } }) -> (), !454 { local mut { ptr, u64, u64 } __aggr_memcpy_0 local mut { ptr, u64, u64 } __aggr_memcpy_00 local { ptr, u64, u64 } __anon_0 @@ -782,7 +782,7 @@ script { br block0(v39, v38) } - pub fn new_42(__ret_value: __ptr { { ptr, u64, u64 } }) -> (), !459 { + pub fn new_52(__ret_value: __ptr { { ptr, u64, u64 } }) -> (), !459 { local mut { ptr, u64, u64 } __aggr_memcpy_0 local { ptr, u64, u64 } __anon_0 local { { ptr, u64, u64 } } __anon_1 @@ -816,7 +816,7 @@ script { ret () v15 } - fn eq_str_3_47(a: __ptr string<3>, b: __ptr slice) -> bool, !463 { + fn eq_str_3_57(a: __ptr string<3>, b: __ptr slice) -> bool, !463 { local { ptr, u64 } __tuple_1_ local string<3> a_ local slice self_ @@ -863,47 +863,47 @@ script { !5 = span !4 1542 1543 !6 = span !0 80 131 !7 = fn_call_path_span !0 80 98 -!8 = span !4 175056 175088 -!9 = fn_call_path_span !4 175056 175086 +!8 = span !4 184944 184976 +!9 = fn_call_path_span !4 184944 184974 !10 = span !4 1525 1549 !11 = (!6 !7 !8 !9 !10) !12 = (!6 !7 !8 !9 !10) -!13 = span !4 175031 175089 -!14 = fn_call_path_span !4 175031 175050 -!15 = span !4 174904 174924 +!13 = span !4 184919 184977 +!14 = fn_call_path_span !4 184919 184938 +!15 = span !4 184792 184812 !16 = (!6 !7 !13 !14 !15) !17 = (!6 !7 !13 !14) !18 = (!6 !7 !13 !14 !15) -!19 = span !4 174948 174954 +!19 = span !4 184836 184842 !20 = (!6 !7 !13 !14 !19) -!21 = span !4 174934 174955 -!22 = fn_call_path_span !4 174934 174947 -!23 = span !4 147888 147909 -!24 = fn_call_path_span !4 147888 147901 -!25 = span !4 118623 118633 +!21 = span !4 184822 184843 +!22 = fn_call_path_span !4 184822 184835 +!23 = span !4 147976 147997 +!24 = fn_call_path_span !4 147976 147989 +!25 = span !4 118683 118693 !26 = (!6 !7 !13 !14 !21 !22 !23 !24 !25) -!27 = span !4 118624 118629 +!27 = span !4 118684 118689 !28 = (!6 !7 !13 !14 !21 !22 !23 !24 !27) !29 = (!6 !7 !13 !14 !21 !22 !23 !24) !30 = (!6 !7 !13 !14 !21 !22 !23 !24) -!31 = span !4 118655 118656 +!31 = span !4 118715 118716 !32 = (!6 !7 !13 !14 !21 !22 !23 !24) -!33 = span !4 118676 118677 -!34 = span !4 118672 118677 -!35 = fn_call_path_span !4 118674 118675 +!33 = span !4 118736 118737 +!34 = span !4 118732 118737 +!35 = fn_call_path_span !4 118734 118735 !36 = (!6 !7 !13 !14 !21 !22 !23 !24 !34 !35) !37 = (!6 !7 !13 !14 !21 !22 !23 !24) -!38 = span !4 118692 118723 +!38 = span !4 118752 118783 !39 = (!6 !7 !13 !14 !21 !22 !23 !24 !38) !40 = (!6 !7 !13 !14 !21 !22 !23 !24 !38) -!41 = span !4 118742 118743 -!42 = span !4 118737 118743 -!43 = fn_call_path_span !4 118739 118741 +!41 = span !4 118802 118803 +!42 = span !4 118797 118803 +!43 = fn_call_path_span !4 118799 118801 !44 = (!6 !7 !13 !14 !21 !22 !23 !24 !42 !43) !45 = (!6 !7 !13 !14 !21 !22 !23 !24) -!46 = span !4 118764 118769 +!46 = span !4 118824 118829 !47 = (!6 !7 !13 !14 !21 !22 !23 !24 !46) -!48 = span !4 147887 147912 +!48 = span !4 147975 148000 !49 = (!6 !7 !13 !14 !21 !22 !48) !50 = (!6 !7 !13 !14 !21 !22 !48) !51 = span !0 178 182 @@ -919,19 +919,19 @@ script { !61 = (!59 !60) !62 = span !4 3405 3424 !63 = fn_call_path_span !4 3405 3418 -!64 = span !4 148173 148194 -!65 = fn_call_path_span !4 148173 148186 +!64 = span !4 148317 148338 +!65 = fn_call_path_span !4 148317 148330 !66 = span !0 404 429 !67 = fn_call_path_span !0 411 417 -!68 = span !4 98402 98422 -!69 = fn_call_path_span !4 98409 98419 +!68 = span !4 98462 98482 +!69 = fn_call_path_span !4 98469 98479 !70 = span !4 625 641 !71 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69 !70) !72 = span !4 2636 2653 !73 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69 !72) !74 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69 !72) !75 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69 !72) -!76 = span !4 98420 98421 +!76 = span !4 98480 98481 !77 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69 !72) !78 = span !4 2615 2694 !79 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69 !78) @@ -942,12 +942,12 @@ script { !84 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69 !83) !85 = span !4 2756 2761 !86 = (!62 !63 !64 !65 !66 !67 !62 !63 !68 !69 !85) -!87 = span !4 98391 98423 +!87 = span !4 98451 98483 !88 = (!62 !63 !64 !65 !66 !67 !62 !63 !87) -!89 = span !4 98439 98443 +!89 = span !4 98499 98503 !90 = (!62 !63 !64 !65 !66 !67 !62 !63 !89) -!91 = span !4 98439 98449 -!92 = fn_call_path_span !4 98444 98447 +!91 = span !4 98499 98509 +!92 = fn_call_path_span !4 98504 98507 !93 = (!62 !63 !64 !65 !66 !67 !62 !63 !91 !92) !94 = "sway-lib-std/src/raw_slice.sw" !95 = span !94 2922 2926 @@ -964,8 +964,8 @@ script { !106 = span !0 392 432 !107 = (!62 !63 !64 !65 !106) !108 = (!62 !63 !64 !65) -!109 = span !4 148196 148217 -!110 = fn_call_path_span !4 148196 148209 +!109 = span !4 148340 148361 +!110 = fn_call_path_span !4 148340 148353 !111 = span !0 329 351 !112 = fn_call_path_span !0 336 342 !113 = span !4 95201 95229 @@ -1022,7 +1022,7 @@ script { !164 = span !0 486 487 !165 = span !0 477 488 !166 = (!62 !63 !109 !110 !165) -!167 = span !4 148172 148218 +!167 = span !4 148316 148362 !168 = (!62 !63 !167) !169 = (!62 !63 !167) !170 = (!62 !63 !167) @@ -1354,7 +1354,7 @@ addi $r3 $$locbase i176 ; get offset to local __ptr { ptr } addi $r0 $$locbase i184 ; get offset to local __ptr { { string<3> }, { u64, ( u64 | u64 ) } } move $$arg0 $r3 ; [call]: pass argument 0 move $$arg1 $r0 ; [call]: pass argument 1 -jal $$reta $pc i38 ; [call]: call decode_7 +jal $$reta $pc i38 ; [call]: call decode_17 addi $r1 $$locbase i128 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] addi $r2 $$locbase i184 ; get offset to local __ptr { { string<3> }, { u64, ( u64 | u64 ) } } movi $r0 i24 ; get array element size @@ -1378,13 +1378,13 @@ mcpi $r1 $r0 i48 ; copy memory addi $r0 $$locbase i72 ; get offset to local __ptr { u64 } move $$arg0 $r1 ; [call]: pass argument 0 move $$arg1 $r0 ; [call]: pass argument 1 -jal $$reta $pc i95 ; [call]: call main_22 +jal $$reta $pc i95 ; [call]: call main_32 addi $r0 $$locbase i72 ; get offset to local __ptr { u64 } movi $r1 i8 ; initialize constant into register retd $r0 $r1 move $$arg0 $r3 ; [call]: pass argument 0 move $$arg1 $$locbase ; [call]: pass argument 1 -jal $$reta $pc i8 ; [call]: call decode_7 +jal $$reta $pc i8 ; [call]: call decode_17 addi $r0 $$locbase i128 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] movi $r1 i24 ; get array element size mul $r1 $r2 $r1 ; get offset to array element @@ -1394,7 +1394,7 @@ add $r2 $r2 $one jmpb $zero i24 pshl i255 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function decode_7 +move $$locbase $sp ; save locals base register for function decode_17 cfei i216 ; allocate 216 bytes for locals and 0 slots for call arguments move $r7 $$arg0 ; save argument 0 (self) move $r6 $$arg1 ; save argument 1 (__ret_value) @@ -1475,7 +1475,7 @@ popl i255 ; restore registers 16..40 jal $zero $$reta i0 ; return from call pshl i511 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function main_22 +move $$locbase $sp ; save locals base register for function main_32 cfei i1264 ; allocate 1264 bytes for locals and 0 slots for call arguments move $r4 $$arg1 ; save argument 1 (__ret_value) move $r3 $$reta ; save return address @@ -1487,7 +1487,7 @@ mcpi $r1 $r0 i48 ; copy memory addi $r0 $$locbase i1040 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] addi $r1 $$locbase i472 ; get offset to local __ptr { { ptr, u64, u64 } } move $$arg0 $r1 ; [call]: pass argument 0 -jal $$reta $pc i310 ; [call]: call new_42 +jal $$reta $pc i310 ; [call]: call new_52 addi $r2 $$locbase i1192 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] mcpi $r2 $r0 i48 ; copy memory addi $r0 $$locbase i704 ; get offset to local __ptr { { ptr, u64, u64 } } @@ -1605,7 +1605,7 @@ addi $r1 $$locbase i424 ; get offset to local __ptr { { ptr, u64, u64 } } move $$arg0 $one ; [call]: pass argument 0 move $$arg1 $r2 ; [call]: pass argument 1 move $$arg2 $r1 ; [call]: pass argument 2 -jal $$reta $pc i148 ; [call]: call abi_encode_41 +jal $$reta $pc i148 ; [call]: call abi_encode_51 addi $r2 $$locbase i968 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r2 $r1 i24 ; copy memory addi $r1 $$locbase i968 ; get offset to local __ptr { { ptr, u64, u64 } } @@ -1615,7 +1615,7 @@ addi $r1 $$locbase i448 ; get offset to local __ptr { { ptr, u64, u64 } } move $$arg0 $r0 ; [call]: pass argument 0 move $$arg1 $r2 ; [call]: pass argument 1 move $$arg2 $r1 ; [call]: pass argument 2 -jal $$reta $pc i138 ; [call]: call abi_encode_41 +jal $$reta $pc i138 ; [call]: call abi_encode_51 addi $r0 $$locbase i992 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r0 $r1 i24 ; copy memory addi $r0 $$locbase i992 ; get offset to local __ptr { { ptr, u64, u64 } } @@ -1630,7 +1630,7 @@ addi $r1 $$locbase i376 ; get offset to local __ptr { { ptr, u64, u64 } } move $$arg0 $zero ; [call]: pass argument 0 move $$arg1 $r2 ; [call]: pass argument 1 move $$arg2 $r1 ; [call]: pass argument 2 -jal $$reta $pc i123 ; [call]: call abi_encode_41 +jal $$reta $pc i123 ; [call]: call abi_encode_51 addi $r2 $$locbase i896 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r2 $r1 i24 ; copy memory addi $r1 $$locbase i896 ; get offset to local __ptr { { ptr, u64, u64 } } @@ -1640,7 +1640,7 @@ addi $r1 $$locbase i400 ; get offset to local __ptr { { ptr, u64, u64 } } move $$arg0 $r0 ; [call]: pass argument 0 move $$arg1 $r2 ; [call]: pass argument 1 move $$arg2 $r1 ; [call]: pass argument 2 -jal $$reta $pc i113 ; [call]: call abi_encode_41 +jal $$reta $pc i113 ; [call]: call abi_encode_51 addi $r0 $$locbase i944 ; get offset to local __ptr { { ptr, u64, u64 } } mcpi $r0 $r1 i24 ; copy memory addi $r0 $$locbase i944 ; get offset to local __ptr { { ptr, u64, u64 } } @@ -1679,7 +1679,7 @@ addi $r1 $$locbase i600 ; get offset to local __ptr slice mcpi $r1 $r0 i16 ; copy memory move $$arg0 $r2 ; [call]: pass argument 0 move $$arg1 $r1 ; [call]: pass argument 1 -jal $$reta $pc i139 ; [call]: call eq_str_3_47 +jal $$reta $pc i139 ; [call]: call eq_str_3_57 eq $r0 $$retv $zero jnzf $r0 $zero i63 addi $r0 $$locbase i1088 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] @@ -1715,7 +1715,7 @@ addi $r1 $$locbase i624 ; get offset to local __ptr slice mcpi $r1 $r0 i16 ; copy memory move $$arg0 $r2 ; [call]: pass argument 0 move $$arg1 $r1 ; [call]: pass argument 1 -jal $$reta $pc i102 ; [call]: call eq_str_3_47 +jal $$reta $pc i102 ; [call]: call eq_str_3_57 eq $r0 $$retv $zero jnzf $r0 $zero i22 addi $r0 $$locbase i1088 ; get offset to local __ptr [{ { string<3> }, { u64, ( u64 | u64 ) } }; 2] @@ -1753,7 +1753,7 @@ popl i511 ; restore registers 16..40 jal $zero $$reta i0 ; return from call pshl i255 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function abi_encode_41 +move $$locbase $sp ; save locals base register for function abi_encode_51 cfei i144 ; allocate 144 bytes for locals and 0 slots for call arguments move $r0 $$arg0 ; save argument 0 (self) move $r1 $$arg2 ; save argument 2 (__ret_value) @@ -1797,7 +1797,7 @@ popl i255 ; restore registers 16..40 jal $zero $$reta i0 ; return from call pshl i15 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function new_42 +move $$locbase $sp ; save locals base register for function new_52 cfei i72 ; allocate 72 bytes for locals and 0 slots for call arguments move $r0 $$arg0 ; save argument 0 (__ret_value) move $r1 $$reta ; save return address @@ -1819,7 +1819,7 @@ popl i15 ; restore registers 16..40 jal $zero $$reta i0 ; return from call pshl i15 ; save registers 16..40 pshh i524288 ; save registers 40..64 -move $$locbase $sp ; save locals base register for function eq_str_3_47 +move $$locbase $sp ; save locals base register for function eq_str_3_57 cfei i40 ; allocate 40 bytes for locals and 0 slots for call arguments move $r0 $$arg1 ; save argument 1 (b) move $r1 $$reta ; save return address diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call/stdout.snap b/test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call/stdout.snap index ae038de05cc..eeabf298dd5 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call/stdout.snap +++ b/test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call/stdout.snap @@ -8,40 +8,40 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [19.792 KB] in ??? + Finished release [optimized + fuel] target(s) [20.784 KB] in ??? Running 29 tests, filtered 0 tests tested -- const_of_contract_call - test cost_of_in_bool ... ok (???, 11155 gas) - test cost_of_in_u8 ... ok (???, 10970 gas) - test cost_of_in_u16 ... ok (???, 11375 gas) - test cost_of_in_u32 ... ok (???, 11628 gas) - test cost_of_in_u64 ... ok (???, 10804 gas) - test cost_of_in_u256 ... ok (???, 10851 gas) - test cost_of_in_b256 ... ok (???, 10833 gas) - test cost_of_in_str_0 ... ok (???, 11232 gas) - test cost_of_in_str_1 ... ok (???, 11542 gas) - test cost_of_in_str_8 ... ok (???, 11416 gas) - test cost_of_in_str_16 ... ok (???, 11409 gas) - test cost_of_in_str_32 ... ok (???, 11423 gas) - test cost_of_in_array_0 ... ok (???, 10770 gas) - test cost_of_in_array_1 ... ok (???, 10863 gas) - test cost_of_in_array_8 ... ok (???, 11536 gas) - test cost_of_in_array_16 ... ok (???, 11158 gas) - test cost_of_in_array_32 ... ok (???, 11467 gas) - test cost_of_in_array_64 ... ok (???, 12076 gas) - test cost_of_in_tuple_0 ... ok (???, 10984 gas) - test cost_of_in_tuple_1 ... ok (???, 10882 gas) - test cost_of_in_tuple_2 ... ok (???, 10951 gas) - test cost_of_in_tuple_3 ... ok (???, 10965 gas) - test cost_of_in_tuple_4 ... ok (???, 10936 gas) - test in_struct_u64 ... ok (???, 10911 gas) - test in_struct_u64_u64 ... ok (???, 10944 gas) - test in_struct_u64_u64_u64 ... ok (???, 10966 gas) - test in_enum_u64 ... ok (???, 10963 gas) - test in_enum_u64_u64 ... ok (???, 10959 gas) - test in_enum_u64_u64_u64 ... ok (???, 10975 gas) + test cost_of_in_bool ... ok (???, 11304 gas) + test cost_of_in_u8 ... ok (???, 11119 gas) + test cost_of_in_u16 ... ok (???, 11524 gas) + test cost_of_in_u32 ... ok (???, 11777 gas) + test cost_of_in_u64 ... ok (???, 10953 gas) + test cost_of_in_u256 ... ok (???, 11000 gas) + test cost_of_in_b256 ... ok (???, 10982 gas) + test cost_of_in_str_0 ... ok (???, 11512 gas) + test cost_of_in_str_1 ... ok (???, 11691 gas) + test cost_of_in_str_8 ... ok (???, 11710 gas) + test cost_of_in_str_16 ... ok (???, 11703 gas) + test cost_of_in_str_32 ... ok (???, 11717 gas) + test cost_of_in_array_0 ... ok (???, 10917 gas) + test cost_of_in_array_1 ... ok (???, 11012 gas) + test cost_of_in_array_8 ... ok (???, 11685 gas) + test cost_of_in_array_16 ... ok (???, 11303 gas) + test cost_of_in_array_32 ... ok (???, 11612 gas) + test cost_of_in_array_64 ... ok (???, 12221 gas) + test cost_of_in_tuple_0 ... ok (???, 11139 gas) + test cost_of_in_tuple_1 ... ok (???, 11027 gas) + test cost_of_in_tuple_2 ... ok (???, 11110 gas) + test cost_of_in_tuple_3 ... ok (???, 11125 gas) + test cost_of_in_tuple_4 ... ok (???, 11095 gas) + test in_struct_u64 ... ok (???, 11056 gas) + test in_struct_u64_u64 ... ok (???, 11097 gas) + test in_struct_u64_u64_u64 ... ok (???, 11119 gas) + test in_enum_u64 ... ok (???, 11158 gas) + test in_enum_u64_u64 ... ok (???, 11162 gas) + test in_enum_u64_u64_u64 ... ok (???, 11178 gas) test result: OK. 29 passed; 0 failed; finished in ??? @@ -216,12 +216,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [880 B] in ??? + Finished release [optimized + fuel] target(s) [912 B] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test in_enum_u64 ... ok (???, 10336 gas) + test in_enum_u64 ... ok (???, 10391 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -236,12 +236,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.392 KB] in ??? + Finished release [optimized + fuel] target(s) [1.432 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test in_enum_u64_u64 ... ok (???, 10362 gas) + test in_enum_u64_u64 ... ok (???, 10430 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -256,12 +256,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.536 KB] in ??? + Finished release [optimized + fuel] target(s) [1.568 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test in_enum_u64_u64_u64 ... ok (???, 10363 gas) + test in_enum_u64_u64_u64 ... ok (???, 10438 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -276,12 +276,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.144 KB] in ??? + Finished release [optimized + fuel] target(s) [1.184 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_str_0 ... ok (???, 10574 gas) + test isolated_cost_of_in_str_0 ... ok (???, 10662 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -316,12 +316,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.432 KB] in ??? + Finished release [optimized + fuel] target(s) [1.472 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_str_16 ... ok (???, 10775 gas) + test isolated_cost_of_in_str_16 ... ok (???, 10877 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -336,12 +336,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.448 KB] in ??? + Finished release [optimized + fuel] target(s) [1.488 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_str_32 ... ok (???, 10781 gas) + test isolated_cost_of_in_str_32 ... ok (???, 10882 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -356,12 +356,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.4 KB] in ??? + Finished release [optimized + fuel] target(s) [1.44 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_str_8 ... ok (???, 10771 gas) + test isolated_cost_of_in_str_8 ... ok (???, 10873 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -396,12 +396,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.216 KB] in ??? + Finished release [optimized + fuel] target(s) [1.224 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test in_struct_u64_u64 ... ok (???, 10296 gas) + test in_struct_u64_u64 ... ok (???, 10303 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -416,12 +416,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.28 KB] in ??? + Finished release [optimized + fuel] target(s) [1.288 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test in_struct_u64_u64_u64 ... ok (???, 10302 gas) + test in_struct_u64_u64_u64 ... ok (???, 10309 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -436,12 +436,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [816 B] in ??? + Finished release [optimized + fuel] target(s) [832 B] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_tuple_0 ... ok (???, 10312 gas) + test isolated_cost_of_in_tuple_0 ... ok (???, 10321 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -476,12 +476,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.096 KB] in ??? + Finished release [optimized + fuel] target(s) [1.208 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_tuple_2 ... ok (???, 10290 gas) + test isolated_cost_of_in_tuple_2 ... ok (???, 10302 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -496,12 +496,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.128 KB] in ??? + Finished release [optimized + fuel] target(s) [1.272 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_tuple_3 ... ok (???, 10296 gas) + test isolated_cost_of_in_tuple_3 ... ok (???, 10308 gas) test result: OK. 1 passed; 0 failed; finished in ??? @@ -516,12 +516,12 @@ output: Building test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call Compiling library std (test/src/e2e_vm_tests/reduced_std_libs/sway-lib-std-core) Compiling contract const_of_contract_call (test/src/e2e_vm_tests/test_programs/should_pass/test_contracts/const_of_contract_call) - Finished release [optimized + fuel] target(s) [1.16 KB] in ??? + Finished release [optimized + fuel] target(s) [1.328 KB] in ??? Running 1 test, filtered 0 tests tested -- const_of_contract_call - test isolated_cost_of_in_tuple_4 ... ok (???, 10300 gas) + test isolated_cost_of_in_tuple_4 ... ok (???, 10312 gas) test result: OK. 1 passed; 0 failed; finished in ??? From 8386bb00323b4592c73e4fee55ea9b2330ef007d Mon Sep 17 00:00:00 2001 From: Daniel Frederico Lins Leite Date: Fri, 21 Nov 2025 20:45:56 -0300 Subject: [PATCH 23/27] update tests --- forc-plugins/forc-client/tests/deploy.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/forc-plugins/forc-client/tests/deploy.rs b/forc-plugins/forc-client/tests/deploy.rs index d88c50a3b05..4b5c65fc644 100644 --- a/forc-plugins/forc-client/tests/deploy.rs +++ b/forc-plugins/forc-client/tests/deploy.rs @@ -377,7 +377,7 @@ async fn test_simple_deploy() { node.kill().unwrap(); let expected = vec![DeployedPackage::Contract(DeployedContract { id: ContractId::from_str( - "2105f7490b862ada104f4da5bfca173ad4ee1f2e5dae92c26665ddd5bb4a951f", + "6d59c621e41a1648b637b1392505cd34501613108100bedf5f30b0020770b74a", ) .unwrap(), proxy: None, @@ -421,7 +421,7 @@ async fn test_deploy_submit_only() { node.kill().unwrap(); let expected = vec![DeployedPackage::Contract(DeployedContract { id: ContractId::from_str( - "2105f7490b862ada104f4da5bfca173ad4ee1f2e5dae92c26665ddd5bb4a951f", + "6d59c621e41a1648b637b1392505cd34501613108100bedf5f30b0020770b74a", ) .unwrap(), proxy: None, @@ -468,12 +468,12 @@ async fn test_deploy_fresh_proxy() { node.kill().unwrap(); let impl_contract = DeployedPackage::Contract(DeployedContract { id: ContractId::from_str( - "2105f7490b862ada104f4da5bfca173ad4ee1f2e5dae92c26665ddd5bb4a951f", + "6d59c621e41a1648b637b1392505cd34501613108100bedf5f30b0020770b74a", ) .unwrap(), proxy: Some( ContractId::from_str( - "00802a2891db52f7a85183fe76c95804e2feb2c1831d755651e5179f777793ba", + "49bde7ba2bd4bdd593411bdf2080026588df8a97546b48fe4cd4f03bd4bf916d", ) .unwrap(), ), From 182bf4a5c56175ab9040b36bb2fab7bfe59e8b1a Mon Sep 17 00:00:00 2001 From: Daniel Frederico Lins Leite Date: Fri, 21 Nov 2025 21:08:15 -0300 Subject: [PATCH 24/27] update tests --- .../json_abi_oracle_new_encoding.release.json | 32 +++++++++---------- .../asset_ops_test/src/main.sw | 2 +- .../call_abi_with_tuples/src/main.sw | 2 +- .../call_basic_storage/src/main.sw | 2 +- .../src/main.sw | 2 +- .../caller_context_test/src/main.sw | 2 +- .../nested_struct_args_caller/src/main.sw | 2 +- .../storage_access_caller/src/main.sw | 2 +- 8 files changed, 23 insertions(+), 23 deletions(-) diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_consts/json_abi_oracle_new_encoding.release.json b/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_consts/json_abi_oracle_new_encoding.release.json index d70f40298c6..7e69ff26f2d 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_consts/json_abi_oracle_new_encoding.release.json +++ b/test/src/e2e_vm_tests/test_programs/should_pass/language/configurable_consts/json_abi_oracle_new_encoding.release.json @@ -63,97 +63,97 @@ "concreteTypeId": "b760f44fa5965c2474a3b471467a22c43185152129295af588b022ae50b50903", "indirect": false, "name": "BOOL", - "offset": 4408 + "offset": 4272 }, { "concreteTypeId": "c89951a24c6ca28c13fd1cfdc646b2b656d69e61a92b91023be7eb58eb914b6b", "indirect": false, "name": "U8", - "offset": 4600 + "offset": 4464 }, { "concreteTypeId": "c89951a24c6ca28c13fd1cfdc646b2b656d69e61a92b91023be7eb58eb914b6b", "indirect": false, "name": "ANOTHER_U8", - "offset": 4336 + "offset": 4200 }, { "concreteTypeId": "29881aad8730c5ab11d275376323d8e4ff4179aae8ccb6c13fe4902137e162ef", "indirect": false, "name": "U16", - "offset": 4544 + "offset": 4408 }, { "concreteTypeId": "d7649d428b9ff33d188ecbf38a7e4d8fd167fa01b2e10fe9a8f9308e52f1d7cc", "indirect": false, "name": "U32", - "offset": 4584 + "offset": 4448 }, { "concreteTypeId": "d7649d428b9ff33d188ecbf38a7e4d8fd167fa01b2e10fe9a8f9308e52f1d7cc", "indirect": false, "name": "U64", - "offset": 4592 + "offset": 4456 }, { "concreteTypeId": "1b5759d94094368cfd443019e7ca5ec4074300e544e5ea993a979f5da627261e", "indirect": false, "name": "U256", - "offset": 4552 + "offset": 4416 }, { "concreteTypeId": "7c5ee1cecf5f8eacd1284feb5f0bf2bdea533a51e2f0c9aabe9236d335989f3b", "indirect": false, "name": "B256", - "offset": 4376 + "offset": 4240 }, { "concreteTypeId": "81fc10c4681a3271cf2d66b2ec6fbc8ed007a442652930844fcf11818c295bff", "indirect": false, "name": "CONFIGURABLE_STRUCT", - "offset": 4496 + "offset": 4360 }, { "concreteTypeId": "a2922861f03be8a650595dd76455b95383a61b46dd418f02607fa2e00dc39d5c", "indirect": false, "name": "CONFIGURABLE_ENUM_A", - "offset": 4416 + "offset": 4280 }, { "concreteTypeId": "a2922861f03be8a650595dd76455b95383a61b46dd418f02607fa2e00dc39d5c", "indirect": false, "name": "CONFIGURABLE_ENUM_B", - "offset": 4456 + "offset": 4320 }, { "concreteTypeId": "4926d35d1a5157936b0a29bc126b8aace6d911209a5c130e9b716b0c73643ea6", "indirect": false, "name": "ARRAY_BOOL", - "offset": 4344 + "offset": 4208 }, { "concreteTypeId": "776fb5a3824169d6736138565fdc20aad684d9111266a5ff6d5c675280b7e199", "indirect": false, "name": "ARRAY_U64", - "offset": 4352 + "offset": 4216 }, { "concreteTypeId": "c998ca9a5f221fe7b5c66ae70c8a9562b86d964408b00d17f883c906bc1fe4be", "indirect": false, "name": "TUPLE_BOOL_U64", - "offset": 4528 + "offset": 4392 }, { "concreteTypeId": "94f0fa95c830be5e4f711963e83259fe7e8bc723278ab6ec34449e791a99b53a", "indirect": false, "name": "STR_4", - "offset": 4520 + "offset": 4384 }, { "concreteTypeId": "c89951a24c6ca28c13fd1cfdc646b2b656d69e61a92b91023be7eb58eb914b6b", "indirect": false, "name": "NOT_USED", - "offset": 4512 + "offset": 4376 } ], "encodingVersion": "1", diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/asset_ops_test/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/asset_ops_test/src/main.sw index 1c13b2c38b5..9465aa65e76 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/asset_ops_test/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/asset_ops_test/src/main.sw @@ -9,7 +9,7 @@ use test_fuel_coin_abi::*; #[cfg(experimental_new_encoding = false)] const FUEL_COIN_CONTRACT_ID = 0xec2277ebe007ade87e3d797c3b1e070dcd542d5ef8f038b471f262ef9cebc87c; #[cfg(experimental_new_encoding = true)] -const FUEL_COIN_CONTRACT_ID = 0x81114b99801793bccd9f6910b877a08017e774796f51f0214ac31f613771c3a8; // AUTO-CONTRACT-ID ../../test_contracts/test_fuel_coin_contract --release +const FUEL_COIN_CONTRACT_ID = 0x94b5fec0e420392f8db8c763f7ccd8b9b95395c092c80c073b836f297c74a801; // AUTO-CONTRACT-ID ../../test_contracts/test_fuel_coin_contract --release #[cfg(experimental_new_encoding = false)] const BALANCE_CONTRACT_ID = 0xf6cd545152ac83225e8e7df2efb5c6fa6e37bc9b9e977b5ea8103d28668925df; diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_abi_with_tuples/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_abi_with_tuples/src/main.sw index eb96eacfb6c..f73238166ac 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_abi_with_tuples/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_abi_with_tuples/src/main.sw @@ -6,7 +6,7 @@ use abi_with_tuples::{MyContract, Location, Person}; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0xfdc14550c8aee742cd556d0ab7f378b7be0d3b1e6e086c097352e94590d4ed02; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0x98d52336c320159daf918a4d2f87401e3b8d9f3c84b1c32104b5ee163e40dbe4; // AUTO-CONTRACT-ID ../../test_contracts/abi_with_tuples_contract --release +const CONTRACT_ID = 0x19d622bce479672e267405a79c0649efa875af3e4919b2c67d1cc0415bc745b9; // AUTO-CONTRACT-ID ../../test_contracts/abi_with_tuples_contract --release fn main() -> bool { let the_abi = abi(MyContract, CONTRACT_ID); diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_basic_storage/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_basic_storage/src/main.sw index 77daa1f8171..797903a9e3f 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_basic_storage/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_basic_storage/src/main.sw @@ -4,7 +4,7 @@ use basic_storage_abi::{BasicStorage, Quad}; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0x94db39f409a31b9f2ebcadeea44378e419208c20de90f5d8e1e33dc1523754cb; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0x6cb2040c222f09ded36f53bb229f2f273f490d9b3eb4b3afd89814df4624f403; // AUTO-CONTRACT-ID ../../test_contracts/basic_storage --release +const CONTRACT_ID = 0x81b5a3650a3a4517f1830749dfc3d9993a6a6e3cd74861214dea17f51e7420c7; // AUTO-CONTRACT-ID ../../test_contracts/basic_storage --release fn main() -> u64 { let addr = abi(BasicStorage, CONTRACT_ID); diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_contract_with_type_aliases/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_contract_with_type_aliases/src/main.sw index acb7d51eae2..118468a6572 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_contract_with_type_aliases/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/call_contract_with_type_aliases/src/main.sw @@ -5,7 +5,7 @@ use contract_with_type_aliases_abi::*; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0x0cbeb6efe3104b460be769bdc4ea101ebf16ccc16f2d7b667ec3e1c7f5ce35b5; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0xf6a0b274b90eca9200b907be431e492c0881d4a024a0736e79081f0bdc159574; // AUTO-CONTRACT-ID ../../test_contracts/contract_with_type_aliases --release +const CONTRACT_ID = 0x1c2546d5740b8cd3439cdfde1f5a4f11684eb1bf5e644ac480fd36fdc366408e; // AUTO-CONTRACT-ID ../../test_contracts/contract_with_type_aliases --release fn main() { let caller = abi(MyContract, CONTRACT_ID); diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/caller_context_test/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/caller_context_test/src/main.sw index 09882c3e82b..2ae267ec95e 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/caller_context_test/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/caller_context_test/src/main.sw @@ -6,7 +6,7 @@ use context_testing_abi::*; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0x6054c11cda000f5990373a4d61929396165be4dfdd61d5b7bd26da60ab0d8577; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0x5c30fd73b7c199ee05027d969778afb842994751df73577c30a14afc75df0bb2; // AUTO-CONTRACT-ID ../../test_contracts/context_testing_contract --release +const CONTRACT_ID = 0x92e1b3b103bf5c0e3c5ccf3512337e2c91283b9159a5bd7b55d52b6e7bbd4700; // AUTO-CONTRACT-ID ../../test_contracts/context_testing_contract --release fn main() -> bool { let gas: u64 = u64::max(); diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/nested_struct_args_caller/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/nested_struct_args_caller/src/main.sw index 19c145a130e..95a1f74d154 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/nested_struct_args_caller/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/nested_struct_args_caller/src/main.sw @@ -5,7 +5,7 @@ use nested_struct_args_abi::*; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0xe63d33a1b3a6903808b379f6a41a72fa8a370e8b76626775e7d9d2f9c4c5da40; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0x9d7fb4ad635265fc55a5c9eca1b5569785a9cbdae8dd05c50087292f2e3f4260; // AUTO-CONTRACT-ID ../../test_contracts/nested_struct_args_contract --release +const CONTRACT_ID = 0x473ee2deb264bf78b5fa6057e54d48814c3b251fe3df48e5a3d40ba50a25deec; // AUTO-CONTRACT-ID ../../test_contracts/nested_struct_args_contract --release fn main() -> bool { let caller = abi(NestedStructArgs, CONTRACT_ID); diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/storage_access_caller/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/storage_access_caller/src/main.sw index 44e91f89a11..03a7ed7fa38 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/storage_access_caller/src/main.sw +++ b/test/src/e2e_vm_tests/test_programs/should_pass/require_contract_deployment/storage_access_caller/src/main.sw @@ -6,7 +6,7 @@ use std::hash::*; #[cfg(experimental_new_encoding = false)] const CONTRACT_ID = 0x3bc28acd66d327b8c1b9624c1fabfc07e9ffa1b5d71c2832c3bfaaf8f4b805e9; #[cfg(experimental_new_encoding = true)] -const CONTRACT_ID = 0x08259a690a4209743bb3be3bb6a400077f9d360d3e250d2cf11443a3563bbdb6; // AUTO-CONTRACT-ID ../../test_contracts/storage_access_contract --release +const CONTRACT_ID = 0x444fb78d9a9f5826fc5a41b88ab544d4cfae5905571fbd7235bb197c46fdb001; // AUTO-CONTRACT-ID ../../test_contracts/storage_access_contract --release fn main() -> bool { let caller = abi(StorageAccess, CONTRACT_ID); From c09c5c15b3ad297456d321a5ed7aa415b6828761 Mon Sep 17 00:00:00 2001 From: xunilrj Date: Sun, 23 Nov 2025 13:39:50 -0300 Subject: [PATCH 25/27] update predicate tests --- test/src/sdk-harness/test_projects/auth/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/src/sdk-harness/test_projects/auth/mod.rs b/test/src/sdk-harness/test_projects/auth/mod.rs index abbc4ced361..2ee0f57d367 100644 --- a/test/src/sdk-harness/test_projects/auth/mod.rs +++ b/test/src/sdk-harness/test_projects/auth/mod.rs @@ -585,7 +585,7 @@ async fn can_get_predicate_address() { // Setup predicate. let hex_predicate_address: &str = - "0x61c2fbc40e1fe1602f8734928a6f1bf76d5d70f9c0407e6dc74e4bfdfb7ac392"; + "0xe549825429a82fde8b7906f216485a8a7641f9dab25252dabed67eb4e6262b29"; let predicate_address = Address::from_str(hex_predicate_address).expect("failed to create Address from string"); let predicate_data = AuthPredicateEncoder::default() @@ -710,7 +710,7 @@ async fn when_incorrect_predicate_address_passed() { async fn can_get_predicate_address_in_message() { // Setup predicate address. let hex_predicate_address: &str = - "0x61c2fbc40e1fe1602f8734928a6f1bf76d5d70f9c0407e6dc74e4bfdfb7ac392"; + "0xe549825429a82fde8b7906f216485a8a7641f9dab25252dabed67eb4e6262b29"; let predicate_address = Address::from_str(hex_predicate_address).expect("failed to create Address from string"); From 1c2963c0a457e6778bec857195ad81a2e3618482 Mon Sep 17 00:00:00 2001 From: xunilrj Date: Sun, 23 Nov 2025 14:25:04 -0300 Subject: [PATCH 26/27] fix CI --- .../ast_node/declaration/auto_impl/abi_encoding.rs | 6 +++--- test/update-contract-ids.sh | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs b/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs index 782281dca20..1367489f633 100644 --- a/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs +++ b/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs @@ -296,16 +296,16 @@ where let enum_decl_id = decl.to_enum_id(&Handler::default(), engines).unwrap(); let enum_decl = self.ctx.engines().de().get(&enum_decl_id); - let fields_types = enum_decl + let variant_types = enum_decl .variants .iter() .map(|x| Self::generate_type(engines, &x.type_argument)) .collect::>(); let mut is_encode_trivial = "__runtime_mem_id::() == __encoding_mem_id::()".to_string(); - for field_type in fields_types { + for variant_type in variant_types { is_encode_trivial.push_str(" && "); - is_encode_trivial.push_str(&format!("is_encode_trivial::<{}>()", field_type)); + is_encode_trivial.push_str(&format!("is_encode_trivial::<{}>()", variant_type)); } let abi_encode_body = self.generate_abi_encode_enum_body(engines, &enum_decl); diff --git a/test/update-contract-ids.sh b/test/update-contract-ids.sh index 809d08bd6e2..c4fa4b41647 100755 --- a/test/update-contract-ids.sh +++ b/test/update-contract-ids.sh @@ -72,7 +72,7 @@ $grep --include \*.sw -Hno "// AUTO-CONTRACT-ID" . -R | while read line ; do echo -e "${BOLD_WHITE}$PROJ${NC}" pushd "$FOLDER/.." >> /dev/null - CONTRACT_ID=$(/home/xunilrj/sway/target/release/forc contract-id --path $CONTRACT_ARGS 2> /dev/null | $grep -oP '0x[a-zA-Z0-9]{64}') + CONTRACT_ID=$(cargo r -p forc --release -- contract-id --path $CONTRACT_ARGS 2> /dev/null | $grep -oP '0x[a-zA-Z0-9]{64}') if [[ $CONTRACT_ID ]]; then popd >> /dev/null @@ -105,7 +105,7 @@ $grep --include \*.sw -Hno "// AUTO-CONTRACT-ID" . -R | while read line ; do fi else echo -e " ${BOLD_RED}error${NC}" - /home/xunilrj/sway/target/release/forc contract-id --release + cargo r -p forc --release -- contract-id --release popd >> /dev/null fi fi From dddd944aba55150be64f0749bf4977ece3e1bb3c Mon Sep 17 00:00:00 2001 From: xunilrj Date: Mon, 24 Nov 2025 07:49:25 -0300 Subject: [PATCH 27/27] try to improve compilation speed --- .../ast_node/declaration/auto_impl/abi_encoding.rs | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs b/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs index 1367489f633..f6c643c69e9 100644 --- a/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs +++ b/sway-core/src/semantic_analysis/ast_node/declaration/auto_impl/abi_encoding.rs @@ -9,7 +9,7 @@ use crate::{ Engines, TypeInfo, TypeParameter, }; use itertools::Itertools; -use std::collections::{BTreeMap, BTreeSet}; +use std::collections::BTreeMap; use sway_error::{ error::CompileError, handler::{ErrorEmitted, Handler}, @@ -226,8 +226,7 @@ where let fields_types = struct_decl .fields .iter() - .map(|x| Self::generate_type(engines, &x.type_argument)) - .collect::>(); + .map(|x| Self::generate_type(engines, &x.type_argument)); let mut is_encode_trivial = "__runtime_mem_id::() == __encoding_mem_id::()".to_string(); for field_type in fields_types { @@ -252,8 +251,7 @@ where let fields_types = struct_decl .fields .iter() - .map(|x| Self::generate_type(engines, &x.type_argument)) - .collect::>(); + .map(|x| Self::generate_type(engines, &x.type_argument)); let mut is_decode_trivial = "__runtime_mem_id::() == __encoding_mem_id::()".to_string(); for field_type in fields_types { @@ -299,8 +297,7 @@ where let variant_types = enum_decl .variants .iter() - .map(|x| Self::generate_type(engines, &x.type_argument)) - .collect::>(); + .map(|x| Self::generate_type(engines, &x.type_argument)); let mut is_encode_trivial = "__runtime_mem_id::() == __encoding_mem_id::()".to_string(); for variant_type in variant_types {

() } fn abi_encode(self, buffer: Buffer) -> Buffer { let buffer = self.0.abi_encode(buffer); @@ -2666,7 +2666,7 @@ where Q: AbiEncode, { fn is_encode_trivial() -> bool { - false + __runtime_mem_id::() == __encoding_mem_id::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::() && is_encode_trivial::