Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ input_file: crates/codegen/tests/fixtures/by_ref_trait_provider_storage_bug.fe
---
target = "evm-ethereum-osaka"

type @layout_0 = {i256, i256, i256};
type @layout_1 = {i256};
type @layout_0 = {i256};
type @layout_1 = {i256, i256, i256};
type @layout_2 = {i256};
type @layout_3 = {};
type @layout_4 = {@layout_3};
Expand Down Expand Up @@ -78,50 +78,55 @@ func private %abi_single_root_size(v0.i256) -> i256 {
return v2;
}

func private %impl_MemBuffer__alloc(v0.i256) -> @layout_0 {
func inline(always) private %alloc__g1d2b() -> @layout_0 {
block0:
jump block1;

block1:
v2.*i8 = evm_malloc v0;
v3.i256 = ptr_to_int v2 i256;
v6.@layout_0 = insert_value undef.@layout_0 0.i256 v3;
v8.@layout_0 = insert_value v6 1.i256 v0;
v10.@layout_0 = insert_value v8 2.i256 v0;
return v10;
v1.*i8 = evm_malloc 32.i256;
v2.i256 = ptr_to_int v1 i256;
v5.@layout_0 = insert_value undef.@layout_0 0.i256 v2;
return v5;
}

func inline(always) private %alloc__g03ed() -> @layout_1 {
func private %core__lib__ptr__impl_MemBuffer_2cdf__alloc_8444(v0.i256) -> @layout_1 {
block0:
jump block1;

block1:
v1.*i8 = evm_malloc 64.i256;
v2.i256 = ptr_to_int v1 i256;
v5.@layout_1 = insert_value undef.@layout_1 0.i256 v2;
return v5;
v2.*i8 = evm_malloc v0;
v3.i256 = ptr_to_int v2 i256;
v6.@layout_1 = insert_value undef.@layout_1 0.i256 v3;
v8.@layout_1 = insert_value v6 1.i256 v0;
v10.@layout_1 = insert_value v8 2.i256 v0;
return v10;
}

func inline(always) private %alloc__g1d2b() -> @layout_1 {
func inline(always) private %alloc__g03ed() -> @layout_0 {
block0:
jump block1;

block1:
v1.*i8 = evm_malloc 32.i256;
v1.*i8 = evm_malloc 64.i256;
v2.i256 = ptr_to_int v1 i256;
v5.@layout_1 = insert_value undef.@layout_1 0.i256 v2;
v5.@layout_0 = insert_value undef.@layout_0 0.i256 v2;
return v5;
}

func private %core__lib__ptr__cast__g5f1e_9b21(v0.i256) -> i256 {
func private %core__lib__ptr__impl_MemBuffer_2cdf__alloc_e5e1(v0.i256) -> @layout_1 {
block0:
jump block1;

block1:
return v0;
v2.*i8 = evm_malloc v0;
v3.i256 = ptr_to_int v2 i256;
v6.@layout_1 = insert_value undef.@layout_1 0.i256 v3;
v8.@layout_1 = insert_value v6 1.i256 v0;
v10.@layout_1 = insert_value v8 2.i256 v0;
return v10;
}

func private %core__lib__ptr__cast__g5f1e_f94f(v0.i256) -> i256 {
func private %cast(v0.i256) -> i256 {
block0:
jump block1;

Expand Down Expand Up @@ -237,7 +242,7 @@ func private %encode(v0.i256, v1.i256) {
jump block1;

block1:
call %core__lib__abi__store_word_0f18 v1 v0;
call %store_word v1 v0;
return;
}

Expand All @@ -251,7 +256,7 @@ func inline(always) private %encode_field_at(v0.i256, v1.i256, v2.i256, v3.i256)
block2:
v7.i256 = call %payload_size v0;
v10.i256 = call %ptr_offset v1 v2;
call %core__lib__abi__store_word_5921 v10 v3;
call %store_word v10 v3;
v12.i256 = call %ptr_offset v1 v3;
call %encode v0 v12;
v14.i256 = add v3 v7;
Expand All @@ -266,14 +271,14 @@ func inline(always) private %encode_field_at(v0.i256, v1.i256, v2.i256, v3.i256)
return v3;
}

func inline(always) private %encode_single_root_alloc(v0.i256) -> @layout_0 {
func inline(always) private %encode_single_root_alloc(v0.i256) -> @layout_1 {
block0:
v1.objref<@layout_0> = obj.alloc @layout_0;
v1.objref<@layout_1> = obj.alloc @layout_1;
jump block1;

block1:
v3.i256 = call %abi_single_root_size v0;
v4.@layout_0 = call %impl_MemBuffer__alloc v3;
v4.@layout_1 = call %core__lib__ptr__impl_MemBuffer_2cdf__alloc_e5e1 v3;
v6.objref<i256> = obj.proj v1 0.i256;
v7.i256 = extract_value v4 0.i256;
obj.store v6 v7;
Expand All @@ -283,9 +288,9 @@ func inline(always) private %encode_single_root_alloc(v0.i256) -> @layout_0 {
v12.objref<i256> = obj.proj v1 2.i256;
v13.i256 = extract_value v4 2.i256;
obj.store v12 v13;
v14.i256 = call %impl_MemBuffer__ptr v1;
v14.i256 = call %core__lib__ptr__impl_MemBuffer_2cdf__ptr_bc2f v1;
v16.i256 = call %encode_field_at v0 v14 0.i256 32.i256;
v17.@layout_0 = obj.load v1;
v17.@layout_1 = obj.load v1;
return v17;
}

Expand Down Expand Up @@ -379,7 +384,7 @@ func private %payload_size(v0.i256) -> i256 {
return 32.i256;
}

func private %impl_MemBuffer__ptr(v0.objref<@layout_0>) -> i256 {
func inline(always) private %ptr__g1d2b(v0.objref<@layout_0>) -> i256 {
block0:
jump block1;

Expand All @@ -389,7 +394,7 @@ func private %impl_MemBuffer__ptr(v0.objref<@layout_0>) -> i256 {
return v4;
}

func inline(always) private %ptr__g03ed(v0.objref<@layout_1>) -> i256 {
func inline(always) private %ptr__g03ed(v0.objref<@layout_0>) -> i256 {
block0:
jump block1;

Expand All @@ -409,7 +414,17 @@ func private %ptr__g79ff(v0.objref<@layout_5>) -> i256 {
return v4;
}

func inline(always) private %ptr__g1d2b(v0.objref<@layout_1>) -> i256 {
func private %core__lib__ptr__impl_MemBuffer_2cdf__ptr_bc2f(v0.objref<@layout_1>) -> i256 {
block0:
jump block1;

block1:
v3.objref<i256> = obj.proj v0 0.i256;
v4.i256 = obj.load v3;
return v4;
}

func private %core__lib__ptr__impl_MemBuffer_2cdf__ptr_eea0(v0.objref<@layout_1>) -> i256 {
block0:
jump block1;

Expand Down Expand Up @@ -473,10 +488,10 @@ func private %return_data(v0.objref<@layout_5>) {

func private %return_value(v0.i256) {
block0:
v1.objref<@layout_1> = obj.alloc @layout_1;
v2.objref<@layout_1> = obj.alloc @layout_1;
v3.objref<@layout_0> = obj.alloc @layout_0;
v4.objref<@layout_0> = obj.alloc @layout_0;
v1.objref<@layout_0> = obj.alloc @layout_0;
v2.objref<@layout_0> = obj.alloc @layout_0;
v3.objref<@layout_1> = obj.alloc @layout_1;
v4.objref<@layout_1> = obj.alloc @layout_1;
v5.objref<@layout_5> = obj.alloc @layout_5;
v6.objref<@layout_5> = obj.alloc @layout_5;
v7.objref<@layout_5> = obj.alloc @layout_5;
Expand All @@ -490,7 +505,7 @@ func private %return_value(v0.i256) {
br 1.i1 block4 block5;

block3:
v13.@layout_0 = call %encode_single_root_alloc v0;
v13.@layout_1 = call %encode_single_root_alloc v0;
v15.objref<i256> = obj.proj v4 0.i256;
v16.i256 = extract_value v13 0.i256;
obj.store v15 v16;
Expand All @@ -511,7 +526,7 @@ func private %return_value(v0.i256) {
unreachable;

block4:
v28.@layout_1 = call %alloc__g1d2b;
v28.@layout_0 = call %alloc__g1d2b;
v29.objref<i256> = obj.proj v1 0.i256;
v30.i256 = extract_value v28 0.i256;
obj.store v29 v30;
Expand All @@ -532,7 +547,7 @@ func private %return_value(v0.i256) {
br 1.i1 block6 block7;

block6:
v41.@layout_1 = call %alloc__g03ed;
v41.@layout_0 = call %alloc__g03ed;
v42.objref<i256> = obj.proj v2 0.i256;
v43.i256 = extract_value v41 0.i256;
obj.store v42 v43;
Expand All @@ -550,7 +565,7 @@ func private %return_value(v0.i256) {
unreachable;

block7:
v53.@layout_0 = call %impl_MemBuffer__alloc 32.i256;
v53.@layout_1 = call %core__lib__ptr__impl_MemBuffer_2cdf__alloc_8444 32.i256;
v54.objref<i256> = obj.proj v3 0.i256;
v55.i256 = extract_value v53 0.i256;
obj.store v54 v55;
Expand All @@ -560,7 +575,7 @@ func private %return_value(v0.i256) {
v58.objref<i256> = obj.proj v3 2.i256;
v59.i256 = extract_value v53 2.i256;
obj.store v58 v59;
v60.i256 = call %impl_MemBuffer__ptr v3;
v60.i256 = call %core__lib__ptr__impl_MemBuffer_2cdf__ptr_eea0 v3;
call %encode v0 v60;
v63.@layout_5 = call %span v3;
v64.objref<i256> = obj.proj v7 0.i256;
Expand All @@ -573,7 +588,7 @@ func private %return_value(v0.i256) {
unreachable;
}

func private %span(v0.objref<@layout_0>) -> @layout_5 {
func private %span(v0.objref<@layout_1>) -> @layout_5 {
block0:
jump block1;

Expand All @@ -586,22 +601,12 @@ func private %span(v0.objref<@layout_0>) -> @layout_5 {
return v8;
}

func private %core__lib__abi__store_word_0f18(v0.i256, v1.i256) {
block0:
jump block1;

block1:
v3.i256 = call %core__lib__ptr__cast__g5f1e_f94f v0;
mstore v3 v1 i256;
return;
}

func private %core__lib__abi__store_word_5921(v0.i256, v1.i256) {
func private %store_word(v0.i256, v1.i256) {
block0:
jump block1;

block1:
v3.i256 = call %core__lib__ptr__cast__g5f1e_9b21 v0;
v3.i256 = call %cast v0;
mstore v3 v1 i256;
return;
}
Expand Down
Loading
Loading