cranelift: Remove brz and brnz (#5630)
Remove the brz and brnz instructions, as their behavior is now redundant with brif.
This commit is contained in:
@@ -11,8 +11,7 @@ function %f0(i64 vmctx, i32) -> i32 {
|
||||
block0(v0: i64, v1: i32):
|
||||
v2 = global_value.i64 gv1
|
||||
v3 = load.i32 v2+8
|
||||
brz v2, block1
|
||||
jump block2
|
||||
brif v2, block2, block1
|
||||
|
||||
block1:
|
||||
v4 = load.i32 v2+8
|
||||
|
||||
@@ -11,8 +11,7 @@ function %f0(i64 vmctx, i32) -> i32, i32 {
|
||||
fn0 = %g(i64 vmctx)
|
||||
|
||||
block0(v0: i64, v1: i32):
|
||||
brz v1, block1
|
||||
jump block2
|
||||
brif v1, block2, block1
|
||||
|
||||
block1:
|
||||
v2 = global_value.i64 gv1
|
||||
|
||||
@@ -6,15 +6,13 @@ function %nonsense(i32, i32) -> f32 {
|
||||
; regex: I=\binst\d+\b
|
||||
; check: digraph "%nonsense" {
|
||||
; check: block0 [shape=record, label="{block0(v1: i32, v2: i32):
|
||||
; check: | <$(BRZ=$I)>brz v2, block2
|
||||
; nextln: | <$(JUMP0=$I)>jump block3
|
||||
; check: | <$(BRIF=$I)>brif v2, block3, block2
|
||||
; nextln: }"]
|
||||
; nextln: block3 [shape=record, label="{block3:
|
||||
; check: | <$(JUMP3=$I)>jump block1(v4)
|
||||
; nextln: }"]
|
||||
; nextln: block1 [shape=record, label="{block1(v5: i32):
|
||||
; check: | <$(BRNZ1=$I)>brnz v13, block1(v12)
|
||||
; nextln: | <$(JUMP1=$I)>jump block4
|
||||
; check: | <$(BRIF1=$I)>brif v13, block1(v12), block4
|
||||
; nextln: }"]
|
||||
; nextln: block4 [shape=record, label="{block4:
|
||||
; check: | <$I>return v17
|
||||
@@ -24,8 +22,8 @@ function %nonsense(i32, i32) -> f32 {
|
||||
; check:}"]
|
||||
block0(v1: i32, v2: i32):
|
||||
v3 = f64const 0x0.0
|
||||
brz v2, block2 ; unordered: block0:$BRZ -> block2
|
||||
jump block3 ; unordered: block0:$JUMP0 -> block3
|
||||
brif v2, block3, block2 ; unordered: block0:$BRIF -> block2
|
||||
; unordered: block0:$BRIF -> block3
|
||||
|
||||
block3:
|
||||
v4 = iconst.i32 0
|
||||
@@ -40,8 +38,8 @@ block1(v5: i32):
|
||||
v11 = fadd v9, v10
|
||||
v12 = iadd_imm v5, 1
|
||||
v13 = icmp ult v12, v2
|
||||
brnz v13, block1(v12) ; unordered: block1:$BRNZ1 -> block1
|
||||
jump block4 ; unordered: block1:$JUMP1 -> block4
|
||||
brif v13, block1(v12), block4 ; unordered: block1:$BRIF1 -> block1
|
||||
; unordered: block1:$BRIF1 -> block4
|
||||
|
||||
block4:
|
||||
v14 = f64const 0.0
|
||||
|
||||
@@ -8,13 +8,13 @@ function %nonsense(i32) {
|
||||
|
||||
block0(v1: i32):
|
||||
trap user0 ; error: terminator instruction was encountered before the end
|
||||
brnz v1, block2 ; unordered: block0:inst1 -> block2
|
||||
jump block1 ; unordered: block0:inst2 -> block1
|
||||
brif v1, block2, block1 ; unordered: block0:inst1 -> block2
|
||||
; unordered: block0:inst1 -> block1
|
||||
|
||||
block1:
|
||||
v2 = iconst.i32 0
|
||||
v3 = iadd v1, v3
|
||||
jump block0(v3) ; unordered: block1:inst5 -> block0
|
||||
jump block0(v3) ; unordered: block1:inst4 -> block0
|
||||
|
||||
block2:
|
||||
return v1
|
||||
|
||||
@@ -4,24 +4,28 @@ test print-cfg
|
||||
function %not_reached(i32) -> i32 {
|
||||
; check: digraph "%not_reached" {
|
||||
; check: block0 [shape=record, label="{block0(v0: i32):
|
||||
; check: | <inst0>brnz v0, block2
|
||||
; check: | <inst1>trap user0
|
||||
; check: | <inst0>brif v0, block2, block3
|
||||
; check: }"]
|
||||
; check: block1 [shape=record, label="{block1:
|
||||
; check: | <inst4>jump block0(v2)
|
||||
; check: | <inst3>jump block0(v2)
|
||||
; check: }"]
|
||||
; check: block2 [shape=record, label="{block2:
|
||||
; check: | <inst5>return v0
|
||||
; check: | <inst4>return v0
|
||||
; check: }"]
|
||||
; check: block3 [shape=record, label="{block3:
|
||||
; check: | <inst5>trap user0
|
||||
; check: }"]
|
||||
block0(v0: i32):
|
||||
brnz v0, block2 ; unordered: block0:inst0 -> block2
|
||||
trap user0
|
||||
brif v0, block2, block3 ; unordered: block0:inst0 -> block2
|
||||
|
||||
block1:
|
||||
v1 = iconst.i32 1
|
||||
v2 = iadd v0, v1
|
||||
jump block0(v2) ; unordered: block1:inst4 -> block0
|
||||
jump block0(v2) ; unordered: block1:inst3 -> block0
|
||||
|
||||
block2:
|
||||
return v0
|
||||
|
||||
block3:
|
||||
trap user0
|
||||
}
|
||||
|
||||
@@ -18,8 +18,7 @@ block0(v0: i32, v1: i32):
|
||||
v4 = iconst.i32 71
|
||||
v5 = iconst.i32 72
|
||||
v8 = iconst.i32 73
|
||||
brz v0, block1
|
||||
jump block2(v8)
|
||||
brif v0, block2(v8), block1
|
||||
|
||||
block1:
|
||||
v2 = iadd v0, v3
|
||||
@@ -34,8 +33,7 @@ block2(v9: i32):
|
||||
; nextln: block0(v0: i32, v1: i32):
|
||||
; nextln: v4 = iconst.i32 71
|
||||
; nextln: v8 = iconst.i32 73
|
||||
; nextln: brz v0, block1
|
||||
; nextln: jump block2(v8)
|
||||
; nextln: brif v0, block2(v8), block1
|
||||
; nextln:
|
||||
; nextln: block1:
|
||||
; nextln: return v0
|
||||
|
||||
@@ -2,24 +2,23 @@ test domtree
|
||||
|
||||
function %test(i32) {
|
||||
block0(v0: i32):
|
||||
jump block1 ; dominates: block1
|
||||
jump block1 ; dominates: block1
|
||||
block1:
|
||||
brz v0, block3 ; dominates: block3
|
||||
jump block2 ; dominates: block2
|
||||
brif v0, block2, block3 ; dominates: block2 block3
|
||||
block2:
|
||||
jump block3
|
||||
block3:
|
||||
return
|
||||
}
|
||||
; check: cfg_postorder:
|
||||
; sameln: block2
|
||||
; sameln: block3
|
||||
; sameln: block2
|
||||
; sameln: block1
|
||||
; sameln: block0
|
||||
|
||||
; check: domtree_preorder {
|
||||
; nextln: block0: block1
|
||||
; nextln: block1: block3 block2
|
||||
; nextln: block3:
|
||||
; nextln: block1: block2 block3
|
||||
; nextln: block2:
|
||||
; nextln: block3:
|
||||
; nextln: }
|
||||
|
||||
@@ -2,33 +2,29 @@ test domtree
|
||||
|
||||
function %test(i32) {
|
||||
block0(v0: i32):
|
||||
brz v0, block1 ; dominates: block1 block3 block4 block5
|
||||
jump block2 ; dominates: block2
|
||||
brif v0, block2, block1 ; dominates: block1 block2 block3 block4 block5
|
||||
block1:
|
||||
jump block3
|
||||
block2:
|
||||
brz v0, block4
|
||||
jump block5
|
||||
brif v0, block5, block4
|
||||
block3:
|
||||
jump block4
|
||||
block4:
|
||||
brz v0, block3
|
||||
jump block5
|
||||
brif v0, block5, block3
|
||||
block5:
|
||||
brz v0, block4
|
||||
jump block6 ; dominates: block6
|
||||
brif v0, block6, block4 ; dominates: block6
|
||||
block6:
|
||||
return
|
||||
}
|
||||
; Fall-through-first, prune-at-source DFT:
|
||||
;
|
||||
; block0 {
|
||||
; block0:brz v0, block1 {
|
||||
; block0:brif v0, block1 {
|
||||
; block0:jump block2 {
|
||||
; block2 {
|
||||
; block2:brz v2, block2 -
|
||||
; block2:brz v3, block1 -
|
||||
; block2:brz v4, block4 {
|
||||
; block2:brif v2, block2 -
|
||||
; block2:brif v3, block1 -
|
||||
; block2:brif v4, block4 {
|
||||
; block2: jump block5 {
|
||||
; block5: jump block6 {
|
||||
; block6 {}
|
||||
@@ -49,42 +45,37 @@ function %test(i32) {
|
||||
; check: cfg_postorder:
|
||||
; sameln: block6
|
||||
; sameln: block5
|
||||
; sameln: block3
|
||||
; sameln: block4
|
||||
; sameln: block2
|
||||
; sameln: block3
|
||||
; sameln: block1
|
||||
; sameln: block2
|
||||
; sameln: block0
|
||||
|
||||
; check: domtree_preorder {
|
||||
; nextln: block0: block1 block2 block4 block3 block5
|
||||
; nextln: block1:
|
||||
; nextln: block0: block2 block1 block3 block4 block5
|
||||
; nextln: block2:
|
||||
; nextln: block4:
|
||||
; nextln: block1:
|
||||
; nextln: block3:
|
||||
; nextln: block4:
|
||||
; nextln: block5: block6
|
||||
; nextln: block6:
|
||||
; nextln: }
|
||||
|
||||
function %loop2(i32) system_v {
|
||||
block0(v0: i32):
|
||||
brz v0, block1 ; dominates: block1 block3 block4 block5
|
||||
jump block2 ; dominates: block2
|
||||
brif v0, block2, block1 ; dominates: block2 block1 block3 block4 block5
|
||||
block1:
|
||||
jump block3
|
||||
block2:
|
||||
brz v0, block4
|
||||
jump block5
|
||||
brif v0, block5, block4
|
||||
block3:
|
||||
jump block4
|
||||
block4:
|
||||
brz v0, block3
|
||||
jump block8 ; dominates: block8
|
||||
brif v0, block8, block3 ; dominates: block8
|
||||
block8:
|
||||
brnz v0, block5
|
||||
jump block6 ; dominates: block6
|
||||
brif v0, block5, block6 ; dominates: block6
|
||||
block5:
|
||||
brz v0, block4
|
||||
jump block9 ; dominates: block9
|
||||
brif v0, block9, block4 ; dominates: block9
|
||||
block9:
|
||||
trap user0
|
||||
block6:
|
||||
@@ -93,26 +84,26 @@ function %loop2(i32) system_v {
|
||||
return
|
||||
}
|
||||
; check: cfg_postorder:
|
||||
; sameln: block9
|
||||
; sameln: block5
|
||||
; sameln: block7
|
||||
; sameln: block6
|
||||
; sameln: block9
|
||||
; sameln: block5
|
||||
; sameln: block8
|
||||
; sameln: block3
|
||||
; sameln: block4
|
||||
; sameln: block2
|
||||
; sameln: block3
|
||||
; sameln: block1
|
||||
; sameln: block2
|
||||
; sameln: block0
|
||||
|
||||
; check: domtree_preorder {
|
||||
; nextln: block0: block1 block2 block4 block3 block5
|
||||
; nextln: block1:
|
||||
; nextln: block0: block2 block1 block3 block4 block5
|
||||
; nextln: block2:
|
||||
; nextln: block1:
|
||||
; nextln: block3:
|
||||
; nextln: block4: block8
|
||||
; nextln: block8: block6
|
||||
; nextln: block6: block7
|
||||
; nextln: block7:
|
||||
; nextln: block3:
|
||||
; nextln: block5: block9
|
||||
; nextln: block9:
|
||||
; nextln: }
|
||||
|
||||
@@ -2,30 +2,23 @@ test domtree
|
||||
|
||||
function %loop1(i32) {
|
||||
block0(v0: i32):
|
||||
brz v0, block1 ; dominates: block1 block6
|
||||
jump block10 ; dominates: block10
|
||||
brif v0, block10, block1 ; dominates: block10 block1 block6
|
||||
block10:
|
||||
brnz v0, block2 ; dominates: block2 block9
|
||||
jump block3 ; dominates: block3
|
||||
brif v0, block2, block3 ; dominates: block2 block9 block3
|
||||
block1:
|
||||
jump block6
|
||||
block2:
|
||||
brz v0, block4 ; dominates: block4 block7 block8
|
||||
jump block5 ; dominates: block5
|
||||
brif v0, block5, block4 ; dominates: block5 block4 block7 block8
|
||||
block3:
|
||||
jump block9
|
||||
block4:
|
||||
brz v0, block4
|
||||
jump block11 ; dominates: block11
|
||||
brif v0, block11, block4 ; dominates: block11
|
||||
block11:
|
||||
brnz v0, block6
|
||||
jump block7
|
||||
brif v0, block6, block7
|
||||
block5:
|
||||
brz v0, block7
|
||||
jump block12 ; dominates: block12
|
||||
brif v0, block12, block7 ; dominates: block12
|
||||
block12:
|
||||
brnz v0, block8
|
||||
jump block9
|
||||
brif v0, block8, block9
|
||||
block6:
|
||||
return
|
||||
block7:
|
||||
@@ -37,56 +30,52 @@ function %loop1(i32) {
|
||||
}
|
||||
|
||||
; check: domtree_preorder {
|
||||
; nextln: block0: block1 block10 block6
|
||||
; nextln: block1:
|
||||
; nextln: block0: block10 block1 block6
|
||||
; nextln: block10: block2 block3 block9
|
||||
; nextln: block2: block4 block5 block7 block8
|
||||
; nextln: block4: block11
|
||||
; nextln: block11:
|
||||
; nextln: block2: block5 block4 block7 block8
|
||||
; nextln: block5: block12
|
||||
; nextln: block12:
|
||||
; nextln: block4: block11
|
||||
; nextln: block11:
|
||||
; nextln: block7:
|
||||
; nextln: block8:
|
||||
; nextln: block3:
|
||||
; nextln: block9:
|
||||
; nextln: block1:
|
||||
; nextln: block6:
|
||||
; nextln: }
|
||||
|
||||
function %loop2(i32) system_v {
|
||||
block0(v0: i32):
|
||||
brz v0, block1 ; dominates: block1 block3 block4 block5
|
||||
jump block2 ; dominates: block2
|
||||
brif v0, block2, block1 ; dominates: block2 block1 block3 block4 block5
|
||||
block1:
|
||||
jump block3
|
||||
block2:
|
||||
brz v0, block4
|
||||
jump block5
|
||||
brif v0, block5, block4
|
||||
block3:
|
||||
jump block4
|
||||
block4:
|
||||
brz v0, block3
|
||||
jump block5
|
||||
brif v0, block5, block3
|
||||
block5:
|
||||
brz v0, block4
|
||||
jump block6 ; dominates: block6
|
||||
brif v0, block6, block4 ; dominates: block6
|
||||
block6:
|
||||
return
|
||||
}
|
||||
; check: cfg_postorder:
|
||||
; sameln: block6
|
||||
; sameln: block5
|
||||
; sameln: block3
|
||||
; sameln: block4
|
||||
; sameln: block2
|
||||
; sameln: block3
|
||||
; sameln: block1
|
||||
; sameln: block2
|
||||
; sameln: block0
|
||||
|
||||
; check: domtree_preorder {
|
||||
; nextln: block0: block1 block2 block4 block3 block5
|
||||
; nextln: block1:
|
||||
; nextln: block0: block2 block1 block3 block4 block5
|
||||
; nextln: block2:
|
||||
; nextln: block4:
|
||||
; nextln: block1:
|
||||
; nextln: block3:
|
||||
; nextln: block4:
|
||||
; nextln: block5: block6
|
||||
; nextln: block6:
|
||||
; nextln: }
|
||||
|
||||
@@ -2,11 +2,9 @@ test domtree
|
||||
|
||||
function %test(i32) {
|
||||
block0(v0: i32):
|
||||
brz v0, block1 ; dominates: block1
|
||||
jump block12 ; dominates: block12
|
||||
brif v0, block12, block1 ; dominates: block12 block1
|
||||
block12:
|
||||
brnz v0, block2 ; dominates: block2 block5
|
||||
jump block3 ; dominates: block3
|
||||
brif v0, block2, block3 ; dominates: block2 block5 block3
|
||||
block1:
|
||||
jump block4 ; dominates: block4
|
||||
block2:
|
||||
@@ -14,16 +12,13 @@ function %test(i32) {
|
||||
block3:
|
||||
jump block5
|
||||
block4:
|
||||
brz v0, block6 ; dominates: block6 block10
|
||||
jump block7 ; dominates: block7
|
||||
brif v0, block7, block6 ; dominates: block7 block6 block10
|
||||
block5:
|
||||
return
|
||||
block6:
|
||||
brz v0, block8 ; dominates: block11 block8
|
||||
jump block13 ; dominates: block13
|
||||
brif v0, block13, block8 ; dominates: block13 block11 block8
|
||||
block13:
|
||||
brnz v0, block9 ; dominates: block9
|
||||
jump block10
|
||||
brif v0, block9, block10 ; dominates: block9
|
||||
block7:
|
||||
jump block10
|
||||
block8:
|
||||
@@ -37,18 +32,18 @@ function %test(i32) {
|
||||
}
|
||||
|
||||
; check: domtree_preorder {
|
||||
; nextln: block0: block1 block12
|
||||
; nextln: block1: block4
|
||||
; nextln: block4: block6 block7 block10
|
||||
; nextln: block6: block8 block13 block11
|
||||
; nextln: block8:
|
||||
; nextln: block13: block9
|
||||
; nextln: block9:
|
||||
; nextln: block11:
|
||||
; nextln: block7:
|
||||
; nextln: block10:
|
||||
; nextln: block0: block12 block1
|
||||
; nextln: block12: block2 block3 block5
|
||||
; nextln: block2:
|
||||
; nextln: block3:
|
||||
; nextln: block5:
|
||||
; nextln: block1: block4
|
||||
; nextln: block4: block7 block6 block10
|
||||
; nextln: block7:
|
||||
; nextln: block6: block13 block8 block11
|
||||
; nextln: block13: block9
|
||||
; nextln: block9:
|
||||
; nextln: block8:
|
||||
; nextln: block11:
|
||||
; nextln: block10:
|
||||
; nextln: }
|
||||
|
||||
@@ -2,20 +2,15 @@ test domtree
|
||||
|
||||
function %test(i32) {
|
||||
block0(v0: i32):
|
||||
brz v0, block13 ; dominates: block13
|
||||
jump block1 ; dominates: block1
|
||||
brif v0, block1, block13 ; dominates: block1 block13
|
||||
block1:
|
||||
brz v0, block2 ; dominates: block2 block7
|
||||
jump block20 ; dominates: block20
|
||||
brif v0, block20, block2 ; dominates: block20 block2 block7
|
||||
block20:
|
||||
brnz v0, block3 ; dominates: block3
|
||||
jump block21 ; dominates: block21
|
||||
brif v0, block3, block21 ; dominates: block3 block21
|
||||
block21:
|
||||
brz v0, block4 ; dominates: block4
|
||||
jump block22 ; dominates: block22
|
||||
brif v0, block22, block4 ; dominates: block22 block4
|
||||
block22:
|
||||
brnz v0, block5 ; dominates: block5
|
||||
jump block6 ; dominates: block6
|
||||
brif v0, block5, block6 ; dominates: block5 block6
|
||||
block2:
|
||||
jump block7
|
||||
block3:
|
||||
@@ -27,21 +22,17 @@ function %test(i32) {
|
||||
block6:
|
||||
jump block7
|
||||
block7:
|
||||
brnz v0, block8 ; dominates: block8 block12
|
||||
jump block23 ; dominates: block23
|
||||
brif v0, block8, block23 ; dominates: block8 block12 block23
|
||||
block23:
|
||||
brz v0, block9 ; dominates: block9
|
||||
jump block24 ; dominates: block24
|
||||
brif v0, block24, block9 ; dominates: block24 block9
|
||||
block24:
|
||||
brnz v0, block10 ; dominates: block10
|
||||
jump block11 ; dominates: block11
|
||||
brif v0, block10, block11 ; dominates: block10 block11
|
||||
block8:
|
||||
jump block12
|
||||
block9:
|
||||
jump block12
|
||||
block10:
|
||||
brz v0, block13
|
||||
jump block12
|
||||
brif v0, block12, block13
|
||||
block11:
|
||||
jump block13
|
||||
block12:
|
||||
@@ -51,23 +42,23 @@ function %test(i32) {
|
||||
}
|
||||
|
||||
; check: domtree_preorder {
|
||||
; nextln: block0: block13 block1
|
||||
; nextln: block13:
|
||||
; nextln: block1: block2 block20 block7
|
||||
; nextln: block2:
|
||||
; nextln: block0: block1 block13
|
||||
; nextln: block1: block20 block2 block7
|
||||
; nextln: block20: block3 block21
|
||||
; nextln: block3:
|
||||
; nextln: block21: block4 block22
|
||||
; nextln: block4:
|
||||
; nextln: block21: block22 block4
|
||||
; nextln: block22: block5 block6
|
||||
; nextln: block5:
|
||||
; nextln: block6:
|
||||
; nextln: block4:
|
||||
; nextln: block2:
|
||||
; nextln: block7: block8 block23 block12
|
||||
; nextln: block8:
|
||||
; nextln: block23: block9 block24
|
||||
; nextln: block9:
|
||||
; nextln: block23: block24 block9
|
||||
; nextln: block24: block10 block11
|
||||
; nextln: block10:
|
||||
; nextln: block11:
|
||||
; nextln: block9:
|
||||
; nextln: block12:
|
||||
; nextln: block13:
|
||||
; nextln: }
|
||||
|
||||
@@ -6,8 +6,7 @@ target x86_64
|
||||
function %f(i32, i32) -> i32 {
|
||||
block0(v0: i32, v1: i32):
|
||||
v2 = iadd v0, v1
|
||||
brnz v2, block1(v0)
|
||||
jump block2(v1)
|
||||
brif v2, block1(v0), block2(v1)
|
||||
|
||||
block1(v3: i32):
|
||||
v4 = iadd v0, v1
|
||||
|
||||
@@ -17,8 +17,7 @@ function u0:0(i64 vmctx, i64) fast {
|
||||
block0(v0: i64, v1: i64):
|
||||
@0019 v2 = vconst.i8x16 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
|
||||
@001b v3 = iconst.i32 0
|
||||
@001d brz v3, block2 ; v3 = 0
|
||||
@001d jump block3
|
||||
@001d brif v3, block3, block2 ; v3 = 0
|
||||
|
||||
block3:
|
||||
@001f trap unreachable
|
||||
@@ -30,8 +29,7 @@ function u0:0(i64 vmctx, i64) fast {
|
||||
@0027 v7 = bitcast.i32x4 little v6
|
||||
@0027 v8 = vhigh_bits.i32 v7
|
||||
@002a v9 = iconst.i32 0
|
||||
@002c brnz v9, block1 ; v9 = 0
|
||||
@002c jump block4
|
||||
@002c brif v9, block1, block4 ; v9 = 0
|
||||
|
||||
block4:
|
||||
@002e call fn0(v0, v0)
|
||||
|
||||
@@ -14,8 +14,7 @@ block1(v2: i32):
|
||||
v6 = icmp eq v2, v5
|
||||
v7 = iconst.i32 1
|
||||
v8 = iadd.i32 v2, v7
|
||||
brnz v6, block2(v4)
|
||||
jump block1(v8)
|
||||
brif v6, block2(v4), block1(v8)
|
||||
|
||||
block2(v9: i32):
|
||||
return v9
|
||||
@@ -30,8 +29,7 @@ block2(v9: i32):
|
||||
; check: v6 = icmp eq v2, v5
|
||||
; check: v3 = iconst.i32 1
|
||||
; check: v8 = iadd v2, v3
|
||||
; check: brnz v6, block2
|
||||
; check: jump block1(v8)
|
||||
; check: brif v6, block2, block1(v8)
|
||||
|
||||
; check: block2:
|
||||
; check: v10 = iconst.i32 1
|
||||
|
||||
@@ -7,8 +7,7 @@ function %f(i32) -> i32 {
|
||||
block0(v0: i32):
|
||||
v1 = iconst.i32 42
|
||||
v2 = iadd.i32 v0, v1
|
||||
brnz v2, block1
|
||||
jump block2
|
||||
brif v2, block1, block2
|
||||
|
||||
block1:
|
||||
v3 = iconst.i32 84
|
||||
@@ -22,8 +21,7 @@ block2:
|
||||
; check: block0(v0: i32):
|
||||
; check: v1 = iconst.i32 42
|
||||
; check: v2 = iadd v0, v1
|
||||
; check: brnz v2, block1
|
||||
; check: jump block2
|
||||
; check: brif v2, block1, block2
|
||||
; check: block1:
|
||||
; check: v11 = iconst.i32 126
|
||||
; check: v13 = iadd.i32 v0, v11
|
||||
|
||||
@@ -153,8 +153,7 @@ function %f(i64, i64) -> i64 {
|
||||
block0(v0: i64, v1: i64):
|
||||
v2 = icmp eq v0, v1
|
||||
v3 = uextend.i32 v2
|
||||
brnz v3, block1
|
||||
jump block2
|
||||
brif v3, block1, block2
|
||||
|
||||
block1:
|
||||
v4 = iconst.i64 1
|
||||
@@ -179,8 +178,7 @@ function %f(i64, i64) -> i64 {
|
||||
block0(v0: i64, v1: i64):
|
||||
v2 = icmp eq v0, v1
|
||||
v3 = uextend.i32 v2
|
||||
brnz v3, block1
|
||||
jump block1
|
||||
brif v3, block1, block1
|
||||
|
||||
block1:
|
||||
v4 = iconst.i64 1
|
||||
@@ -198,10 +196,9 @@ block1:
|
||||
; movz x0, #1
|
||||
; ret
|
||||
|
||||
function %i128_brz(i128){
|
||||
function %i128_brif_false(i128){
|
||||
block0(v0: i128):
|
||||
brz v0, block1
|
||||
jump block1
|
||||
brif v0, block1, block1
|
||||
|
||||
block1:
|
||||
nop
|
||||
@@ -210,7 +207,7 @@ block1:
|
||||
|
||||
; block0:
|
||||
; orr x3, x0, x1
|
||||
; cbz x3, label1 ; b label2
|
||||
; cbnz x3, label1 ; b label2
|
||||
; block1:
|
||||
; b label3
|
||||
; block2:
|
||||
@@ -218,10 +215,9 @@ block1:
|
||||
; block3:
|
||||
; ret
|
||||
|
||||
function %i128_brnz(i128){
|
||||
function %i128_brif_true(i128){
|
||||
block0(v0: i128):
|
||||
brnz v0, block1
|
||||
jump block1
|
||||
brif v0, block1, block1
|
||||
|
||||
block1:
|
||||
nop
|
||||
@@ -242,8 +238,7 @@ function %i128_bricmp_eq(i128, i128) {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp eq v0, v1
|
||||
v3 = uextend.i32 v2
|
||||
brnz v3, block1
|
||||
jump block1
|
||||
brif v3, block1, block1
|
||||
|
||||
block1:
|
||||
return
|
||||
@@ -264,8 +259,7 @@ function %i128_bricmp_ne(i128, i128) {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp ne v0, v1
|
||||
v3 = uextend.i32 v2
|
||||
brnz v3, block1
|
||||
jump block1
|
||||
brif v3, block1, block1
|
||||
|
||||
block1:
|
||||
return
|
||||
@@ -286,8 +280,7 @@ function %i128_bricmp_slt(i128, i128) {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp slt v0, v1
|
||||
v3 = uextend.i32 v2
|
||||
brnz v3, block1
|
||||
jump block1
|
||||
brif v3, block1, block1
|
||||
|
||||
block1:
|
||||
return
|
||||
@@ -312,8 +305,7 @@ function %i128_bricmp_ult(i128, i128) {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp ult v0, v1
|
||||
v3 = uextend.i32 v2
|
||||
brnz v3, block1
|
||||
jump block1
|
||||
brif v3, block1, block1
|
||||
|
||||
block1:
|
||||
return
|
||||
@@ -338,8 +330,7 @@ function %i128_bricmp_sle(i128, i128) {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp sle v0, v1
|
||||
v3 = uextend.i32 v2
|
||||
brnz v3, block1
|
||||
jump block1
|
||||
brif v3, block1, block1
|
||||
|
||||
block1:
|
||||
return
|
||||
@@ -365,8 +356,7 @@ function %i128_bricmp_ule(i128, i128) {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp ule v0, v1
|
||||
v3 = uextend.i32 v2
|
||||
brnz v3, block1
|
||||
jump block1
|
||||
brif v3, block1, block1
|
||||
|
||||
block1:
|
||||
return
|
||||
@@ -392,8 +382,7 @@ function %i128_bricmp_sgt(i128, i128) {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp sgt v0, v1
|
||||
v3 = uextend.i32 v2
|
||||
brnz v3, block1
|
||||
jump block1
|
||||
brif v3, block1, block1
|
||||
|
||||
block1:
|
||||
return
|
||||
@@ -418,8 +407,7 @@ function %i128_bricmp_ugt(i128, i128) {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp ugt v0, v1
|
||||
v3 = uextend.i32 v2
|
||||
brnz v3, block1
|
||||
jump block1
|
||||
brif v3, block1, block1
|
||||
|
||||
block1:
|
||||
return
|
||||
@@ -444,8 +432,7 @@ function %i128_bricmp_sge(i128, i128) {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp sge v0, v1
|
||||
v3 = uextend.i32 v2
|
||||
brnz v3, block1
|
||||
jump block1
|
||||
brif v3, block1, block1
|
||||
|
||||
block1:
|
||||
return
|
||||
@@ -471,8 +458,7 @@ function %i128_bricmp_uge(i128, i128) {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp uge v0, v1
|
||||
v3 = uextend.i32 v2
|
||||
brnz v3, block1
|
||||
jump block1
|
||||
brif v3, block1, block1
|
||||
|
||||
block1:
|
||||
return
|
||||
|
||||
@@ -49,8 +49,7 @@ function %f4(r64, r64) -> r64, r64, r64 {
|
||||
block0(v0: r64, v1: r64):
|
||||
v2 = call fn0(v0)
|
||||
stack_store.r64 v0, ss0
|
||||
brz v2, block1(v1, v0)
|
||||
jump block2(v0, v1)
|
||||
brif v2, block2(v0, v1), block1(v1, v0)
|
||||
|
||||
block1(v3: r64, v4: r64):
|
||||
jump block3(v3, v4)
|
||||
@@ -75,18 +74,18 @@ block3(v7: r64, v8: r64):
|
||||
; ldr x6, [sp, #8]
|
||||
; str x6, [x15]
|
||||
; uxtb w0, w0
|
||||
; cbz x0, label1 ; b label3
|
||||
; cbnz x0, label1 ; b label3
|
||||
; block1:
|
||||
; b label2
|
||||
; block2:
|
||||
; mov x1, x6
|
||||
; ldr x0, [sp, #16]
|
||||
; mov x0, x6
|
||||
; ldr x1, [sp, #16]
|
||||
; b label5
|
||||
; block3:
|
||||
; b label4
|
||||
; block4:
|
||||
; mov x0, x6
|
||||
; ldr x1, [sp, #16]
|
||||
; mov x1, x6
|
||||
; ldr x0, [sp, #16]
|
||||
; b label5
|
||||
; block5:
|
||||
; mov x2, sp
|
||||
|
||||
@@ -45,14 +45,14 @@
|
||||
;; ldr x8, [x2, #8]
|
||||
;; sub x8, x8, #4
|
||||
;; subs xzr, x7, x8
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x9, [x2]
|
||||
;; str w1, [x9, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x10, [x2]
|
||||
;; str w1, [x10, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -61,12 +61,12 @@
|
||||
;; ldr x8, [x1, #8]
|
||||
;; sub x8, x8, #4
|
||||
;; subs xzr, x7, x8
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x9, [x1]
|
||||
;; ldr w0, [x9, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x10, [x1]
|
||||
;; ldr w0, [x10, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -46,15 +46,15 @@
|
||||
;; movn x8, #4099
|
||||
;; add x10, x10, x8
|
||||
;; subs xzr, x9, x10
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x11, [x2]
|
||||
;; add x11, x11, #4096
|
||||
;; str w1, [x11, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x12, [x2]
|
||||
;; add x12, x12, #4096
|
||||
;; str w1, [x12, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -64,13 +64,13 @@
|
||||
;; movn x8, #4099
|
||||
;; add x10, x10, x8
|
||||
;; subs xzr, x9, x10
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x11, [x1]
|
||||
;; add x10, x11, #4096
|
||||
;; ldr w0, [x10, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x12, [x1]
|
||||
;; add x11, x12, #4096
|
||||
;; ldr w0, [x11, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -47,16 +47,16 @@
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x12, [x2, #8]
|
||||
;; subs xzr, x11, x12
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x13, [x2]
|
||||
;; movz x14, #65535, LSL #16
|
||||
;; add x13, x14, x13
|
||||
;; str w1, [x13, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x14, [x2]
|
||||
;; movz x15, #65535, LSL #16
|
||||
;; add x14, x15, x14
|
||||
;; str w1, [x14, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -67,14 +67,14 @@
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x12, [x1, #8]
|
||||
;; subs xzr, x11, x12
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x13, [x1]
|
||||
;; movz x12, #65535, LSL #16
|
||||
;; add x12, x12, x13
|
||||
;; ldr w0, [x12, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x14, [x1]
|
||||
;; movz x13, #65535, LSL #16
|
||||
;; add x13, x13, x14
|
||||
;; ldr w0, [x13, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -44,14 +44,14 @@
|
||||
;; mov w6, w0
|
||||
;; ldr x7, [x2, #8]
|
||||
;; subs xzr, x6, x7
|
||||
;; b.lo label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x8, [x2]
|
||||
;; strb w1, [x8, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hs label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x9, [x2]
|
||||
;; strb w1, [x9, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -59,12 +59,12 @@
|
||||
;; mov w6, w0
|
||||
;; ldr x7, [x1, #8]
|
||||
;; subs xzr, x6, x7
|
||||
;; b.lo label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x8, [x1]
|
||||
;; ldrb w0, [x8, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hs label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x9, [x1]
|
||||
;; ldrb w0, [x9, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -46,15 +46,15 @@
|
||||
;; movn x8, #4096
|
||||
;; add x10, x10, x8
|
||||
;; subs xzr, x9, x10
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x11, [x2]
|
||||
;; add x11, x11, #4096
|
||||
;; strb w1, [x11, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x12, [x2]
|
||||
;; add x12, x12, #4096
|
||||
;; strb w1, [x12, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -64,13 +64,13 @@
|
||||
;; movn x8, #4096
|
||||
;; add x10, x10, x8
|
||||
;; subs xzr, x9, x10
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x11, [x1]
|
||||
;; add x10, x11, #4096
|
||||
;; ldrb w0, [x10, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x12, [x1]
|
||||
;; add x11, x12, #4096
|
||||
;; ldrb w0, [x11, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -47,16 +47,16 @@
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x12, [x2, #8]
|
||||
;; subs xzr, x11, x12
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x13, [x2]
|
||||
;; movz x14, #65535, LSL #16
|
||||
;; add x13, x14, x13
|
||||
;; strb w1, [x13, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x14, [x2]
|
||||
;; movz x15, #65535, LSL #16
|
||||
;; add x14, x15, x14
|
||||
;; strb w1, [x14, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -67,14 +67,14 @@
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x12, [x1, #8]
|
||||
;; subs xzr, x11, x12
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x13, [x1]
|
||||
;; movz x12, #65535, LSL #16
|
||||
;; add x12, x12, x13
|
||||
;; ldrb w0, [x12, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x14, [x1]
|
||||
;; movz x13, #65535, LSL #16
|
||||
;; add x13, x13, x14
|
||||
;; ldrb w0, [x13, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -45,14 +45,14 @@
|
||||
;; ldr x8, [x2, #8]
|
||||
;; sub x8, x8, #4
|
||||
;; subs xzr, x7, x8
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x9, [x2]
|
||||
;; str w1, [x9, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x10, [x2]
|
||||
;; str w1, [x10, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -61,12 +61,12 @@
|
||||
;; ldr x8, [x1, #8]
|
||||
;; sub x8, x8, #4
|
||||
;; subs xzr, x7, x8
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x9, [x1]
|
||||
;; ldr w0, [x9, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x10, [x1]
|
||||
;; ldr w0, [x10, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -46,15 +46,15 @@
|
||||
;; movn x8, #4099
|
||||
;; add x10, x10, x8
|
||||
;; subs xzr, x9, x10
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x11, [x2]
|
||||
;; add x11, x11, #4096
|
||||
;; str w1, [x11, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x12, [x2]
|
||||
;; add x12, x12, #4096
|
||||
;; str w1, [x12, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -64,13 +64,13 @@
|
||||
;; movn x8, #4099
|
||||
;; add x10, x10, x8
|
||||
;; subs xzr, x9, x10
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x11, [x1]
|
||||
;; add x10, x11, #4096
|
||||
;; ldr w0, [x10, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x12, [x1]
|
||||
;; add x11, x12, #4096
|
||||
;; ldr w0, [x11, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -47,16 +47,16 @@
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x12, [x2, #8]
|
||||
;; subs xzr, x11, x12
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x13, [x2]
|
||||
;; movz x14, #65535, LSL #16
|
||||
;; add x13, x14, x13
|
||||
;; str w1, [x13, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x14, [x2]
|
||||
;; movz x15, #65535, LSL #16
|
||||
;; add x14, x15, x14
|
||||
;; str w1, [x14, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -67,14 +67,14 @@
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x12, [x1, #8]
|
||||
;; subs xzr, x11, x12
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x13, [x1]
|
||||
;; movz x12, #65535, LSL #16
|
||||
;; add x12, x12, x13
|
||||
;; ldr w0, [x12, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x14, [x1]
|
||||
;; movz x13, #65535, LSL #16
|
||||
;; add x13, x13, x14
|
||||
;; ldr w0, [x13, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -44,14 +44,14 @@
|
||||
;; mov w6, w0
|
||||
;; ldr x7, [x2, #8]
|
||||
;; subs xzr, x6, x7
|
||||
;; b.lo label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x8, [x2]
|
||||
;; strb w1, [x8, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hs label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x9, [x2]
|
||||
;; strb w1, [x9, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -59,12 +59,12 @@
|
||||
;; mov w6, w0
|
||||
;; ldr x7, [x1, #8]
|
||||
;; subs xzr, x6, x7
|
||||
;; b.lo label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x8, [x1]
|
||||
;; ldrb w0, [x8, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hs label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x9, [x1]
|
||||
;; ldrb w0, [x9, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -46,15 +46,15 @@
|
||||
;; movn x8, #4096
|
||||
;; add x10, x10, x8
|
||||
;; subs xzr, x9, x10
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x11, [x2]
|
||||
;; add x11, x11, #4096
|
||||
;; strb w1, [x11, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x12, [x2]
|
||||
;; add x12, x12, #4096
|
||||
;; strb w1, [x12, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -64,13 +64,13 @@
|
||||
;; movn x8, #4096
|
||||
;; add x10, x10, x8
|
||||
;; subs xzr, x9, x10
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x11, [x1]
|
||||
;; add x10, x11, #4096
|
||||
;; ldrb w0, [x10, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x12, [x1]
|
||||
;; add x11, x12, #4096
|
||||
;; ldrb w0, [x11, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -47,16 +47,16 @@
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x12, [x2, #8]
|
||||
;; subs xzr, x11, x12
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x13, [x2]
|
||||
;; movz x14, #65535, LSL #16
|
||||
;; add x13, x14, x13
|
||||
;; strb w1, [x13, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x14, [x2]
|
||||
;; movz x15, #65535, LSL #16
|
||||
;; add x14, x15, x14
|
||||
;; strb w1, [x14, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -67,14 +67,14 @@
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x12, [x1, #8]
|
||||
;; subs xzr, x11, x12
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x13, [x1]
|
||||
;; movz x12, #65535, LSL #16
|
||||
;; add x12, x12, x13
|
||||
;; ldrb w0, [x12, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x14, [x1]
|
||||
;; movz x13, #65535, LSL #16
|
||||
;; add x13, x13, x14
|
||||
;; ldrb w0, [x13, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -44,14 +44,14 @@
|
||||
;; ldr x6, [x2, #8]
|
||||
;; sub x6, x6, #4
|
||||
;; subs xzr, x0, x6
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x8, [x2]
|
||||
;; str w1, [x8, x0]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x9, [x2]
|
||||
;; str w1, [x9, x0]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -59,12 +59,12 @@
|
||||
;; ldr x6, [x1, #8]
|
||||
;; sub x6, x6, #4
|
||||
;; subs xzr, x0, x6
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x8, [x1]
|
||||
;; ldr w0, [x8, x0]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x9, [x1]
|
||||
;; ldr w0, [x9, x0]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -45,15 +45,15 @@
|
||||
;; movn x7, #4099
|
||||
;; add x9, x8, x7
|
||||
;; subs xzr, x0, x9
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x10, [x2]
|
||||
;; add x11, x0, #4096
|
||||
;; str w1, [x11, x10]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x11, [x2]
|
||||
;; add x12, x0, #4096
|
||||
;; str w1, [x12, x11]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -62,13 +62,13 @@
|
||||
;; movn x7, #4099
|
||||
;; add x9, x8, x7
|
||||
;; subs xzr, x0, x9
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x10, [x1]
|
||||
;; add x9, x0, #4096
|
||||
;; ldr w0, [x9, x10]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x11, [x1]
|
||||
;; add x10, x0, #4096
|
||||
;; ldr w0, [x10, x11]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -46,16 +46,16 @@
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x11, [x2, #8]
|
||||
;; subs xzr, x10, x11
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x12, [x2]
|
||||
;; movz x13, #65535, LSL #16
|
||||
;; add x13, x13, x0
|
||||
;; str w1, [x13, x12]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x13, [x2]
|
||||
;; movz x14, #65535, LSL #16
|
||||
;; add x14, x14, x0
|
||||
;; str w1, [x14, x13]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -65,14 +65,14 @@
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x11, [x1, #8]
|
||||
;; subs xzr, x10, x11
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x12, [x1]
|
||||
;; movz x11, #65535, LSL #16
|
||||
;; add x11, x11, x0
|
||||
;; ldr w0, [x11, x12]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x13, [x1]
|
||||
;; movz x12, #65535, LSL #16
|
||||
;; add x12, x12, x0
|
||||
;; ldr w0, [x12, x13]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -43,26 +43,26 @@
|
||||
;; block0:
|
||||
;; ldr x5, [x2, #8]
|
||||
;; subs xzr, x0, x5
|
||||
;; b.lo label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x7, [x2]
|
||||
;; strb w1, [x7, x0]
|
||||
;; b label2
|
||||
;; b.hs label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x8, [x2]
|
||||
;; strb w1, [x8, x0]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x5, [x1, #8]
|
||||
;; subs xzr, x0, x5
|
||||
;; b.lo label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x7, [x1]
|
||||
;; ldrb w0, [x7, x0]
|
||||
;; b label2
|
||||
;; b.hs label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x8, [x1]
|
||||
;; ldrb w0, [x8, x0]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -45,15 +45,15 @@
|
||||
;; movn x7, #4096
|
||||
;; add x9, x8, x7
|
||||
;; subs xzr, x0, x9
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x10, [x2]
|
||||
;; add x11, x0, #4096
|
||||
;; strb w1, [x11, x10]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x11, [x2]
|
||||
;; add x12, x0, #4096
|
||||
;; strb w1, [x12, x11]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -62,13 +62,13 @@
|
||||
;; movn x7, #4096
|
||||
;; add x9, x8, x7
|
||||
;; subs xzr, x0, x9
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x10, [x1]
|
||||
;; add x9, x0, #4096
|
||||
;; ldrb w0, [x9, x10]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x11, [x1]
|
||||
;; add x10, x0, #4096
|
||||
;; ldrb w0, [x10, x11]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -46,16 +46,16 @@
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x11, [x2, #8]
|
||||
;; subs xzr, x10, x11
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x12, [x2]
|
||||
;; movz x13, #65535, LSL #16
|
||||
;; add x13, x13, x0
|
||||
;; strb w1, [x13, x12]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x13, [x2]
|
||||
;; movz x14, #65535, LSL #16
|
||||
;; add x14, x14, x0
|
||||
;; strb w1, [x14, x13]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -65,14 +65,14 @@
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x11, [x1, #8]
|
||||
;; subs xzr, x10, x11
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x12, [x1]
|
||||
;; movz x11, #65535, LSL #16
|
||||
;; add x11, x11, x0
|
||||
;; ldrb w0, [x11, x12]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x13, [x1]
|
||||
;; movz x12, #65535, LSL #16
|
||||
;; add x12, x12, x0
|
||||
;; ldrb w0, [x12, x13]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -44,14 +44,14 @@
|
||||
;; ldr x6, [x2, #8]
|
||||
;; sub x6, x6, #4
|
||||
;; subs xzr, x0, x6
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x8, [x2]
|
||||
;; str w1, [x8, x0]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x9, [x2]
|
||||
;; str w1, [x9, x0]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -59,12 +59,12 @@
|
||||
;; ldr x6, [x1, #8]
|
||||
;; sub x6, x6, #4
|
||||
;; subs xzr, x0, x6
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x8, [x1]
|
||||
;; ldr w0, [x8, x0]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x9, [x1]
|
||||
;; ldr w0, [x9, x0]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -45,15 +45,15 @@
|
||||
;; movn x7, #4099
|
||||
;; add x9, x8, x7
|
||||
;; subs xzr, x0, x9
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x10, [x2]
|
||||
;; add x11, x0, #4096
|
||||
;; str w1, [x11, x10]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x11, [x2]
|
||||
;; add x12, x0, #4096
|
||||
;; str w1, [x12, x11]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -62,13 +62,13 @@
|
||||
;; movn x7, #4099
|
||||
;; add x9, x8, x7
|
||||
;; subs xzr, x0, x9
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x10, [x1]
|
||||
;; add x9, x0, #4096
|
||||
;; ldr w0, [x9, x10]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x11, [x1]
|
||||
;; add x10, x0, #4096
|
||||
;; ldr w0, [x10, x11]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -46,16 +46,16 @@
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x11, [x2, #8]
|
||||
;; subs xzr, x10, x11
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x12, [x2]
|
||||
;; movz x13, #65535, LSL #16
|
||||
;; add x13, x13, x0
|
||||
;; str w1, [x13, x12]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x13, [x2]
|
||||
;; movz x14, #65535, LSL #16
|
||||
;; add x14, x14, x0
|
||||
;; str w1, [x14, x13]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -65,14 +65,14 @@
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x11, [x1, #8]
|
||||
;; subs xzr, x10, x11
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x12, [x1]
|
||||
;; movz x11, #65535, LSL #16
|
||||
;; add x11, x11, x0
|
||||
;; ldr w0, [x11, x12]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x13, [x1]
|
||||
;; movz x12, #65535, LSL #16
|
||||
;; add x12, x12, x0
|
||||
;; ldr w0, [x12, x13]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -43,26 +43,26 @@
|
||||
;; block0:
|
||||
;; ldr x5, [x2, #8]
|
||||
;; subs xzr, x0, x5
|
||||
;; b.lo label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x7, [x2]
|
||||
;; strb w1, [x7, x0]
|
||||
;; b label2
|
||||
;; b.hs label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x8, [x2]
|
||||
;; strb w1, [x8, x0]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ldr x5, [x1, #8]
|
||||
;; subs xzr, x0, x5
|
||||
;; b.lo label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x7, [x1]
|
||||
;; ldrb w0, [x7, x0]
|
||||
;; b label2
|
||||
;; b.hs label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x8, [x1]
|
||||
;; ldrb w0, [x8, x0]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -45,15 +45,15 @@
|
||||
;; movn x7, #4096
|
||||
;; add x9, x8, x7
|
||||
;; subs xzr, x0, x9
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x10, [x2]
|
||||
;; add x11, x0, #4096
|
||||
;; strb w1, [x11, x10]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x11, [x2]
|
||||
;; add x12, x0, #4096
|
||||
;; strb w1, [x12, x11]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -62,13 +62,13 @@
|
||||
;; movn x7, #4096
|
||||
;; add x9, x8, x7
|
||||
;; subs xzr, x0, x9
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x10, [x1]
|
||||
;; add x9, x0, #4096
|
||||
;; ldrb w0, [x9, x10]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x11, [x1]
|
||||
;; add x10, x0, #4096
|
||||
;; ldrb w0, [x10, x11]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -46,16 +46,16 @@
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x11, [x2, #8]
|
||||
;; subs xzr, x10, x11
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x12, [x2]
|
||||
;; movz x13, #65535, LSL #16
|
||||
;; add x13, x13, x0
|
||||
;; strb w1, [x13, x12]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x13, [x2]
|
||||
;; movz x14, #65535, LSL #16
|
||||
;; add x14, x14, x0
|
||||
;; strb w1, [x14, x13]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -65,14 +65,14 @@
|
||||
;; b.lo 8 ; udf
|
||||
;; ldr x11, [x1, #8]
|
||||
;; subs xzr, x10, x11
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x12, [x1]
|
||||
;; movz x11, #65535, LSL #16
|
||||
;; add x11, x11, x0
|
||||
;; ldrb w0, [x11, x12]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x13, [x1]
|
||||
;; movz x12, #65535, LSL #16
|
||||
;; add x12, x12, x0
|
||||
;; ldrb w0, [x12, x13]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -42,14 +42,14 @@
|
||||
;; mov w6, w0
|
||||
;; orr x7, xzr, #268435452
|
||||
;; subs xzr, x6, x7
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x8, [x2]
|
||||
;; str w1, [x8, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x9, [x2]
|
||||
;; str w1, [x9, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -57,12 +57,12 @@
|
||||
;; mov w6, w0
|
||||
;; orr x7, xzr, #268435452
|
||||
;; subs xzr, x6, x7
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x8, [x1]
|
||||
;; ldr w0, [x8, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x9, [x1]
|
||||
;; ldr w0, [x9, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -43,15 +43,15 @@
|
||||
;; movz w9, #61436
|
||||
;; movk w9, w9, #4095, LSL #16
|
||||
;; subs xzr, x8, x9
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x10, [x2]
|
||||
;; add x10, x10, #4096
|
||||
;; str w1, [x10, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x11, [x2]
|
||||
;; add x11, x11, #4096
|
||||
;; str w1, [x11, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -60,13 +60,13 @@
|
||||
;; movz w9, #61436
|
||||
;; movk w9, w9, #4095, LSL #16
|
||||
;; subs xzr, x8, x9
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x10, [x1]
|
||||
;; add x9, x10, #4096
|
||||
;; ldr w0, [x9, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x11, [x1]
|
||||
;; add x10, x11, #4096
|
||||
;; ldr w0, [x10, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -42,14 +42,14 @@
|
||||
;; mov w6, w0
|
||||
;; orr x7, xzr, #268435455
|
||||
;; subs xzr, x6, x7
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x8, [x2]
|
||||
;; strb w1, [x8, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x9, [x2]
|
||||
;; strb w1, [x9, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -57,12 +57,12 @@
|
||||
;; mov w6, w0
|
||||
;; orr x7, xzr, #268435455
|
||||
;; subs xzr, x6, x7
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x8, [x1]
|
||||
;; ldrb w0, [x8, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x9, [x1]
|
||||
;; ldrb w0, [x9, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -43,15 +43,15 @@
|
||||
;; movz w9, #61439
|
||||
;; movk w9, w9, #4095, LSL #16
|
||||
;; subs xzr, x8, x9
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x10, [x2]
|
||||
;; add x10, x10, #4096
|
||||
;; strb w1, [x10, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x11, [x2]
|
||||
;; add x11, x11, #4096
|
||||
;; strb w1, [x11, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -60,13 +60,13 @@
|
||||
;; movz w9, #61439
|
||||
;; movk w9, w9, #4095, LSL #16
|
||||
;; subs xzr, x8, x9
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x10, [x1]
|
||||
;; add x9, x10, #4096
|
||||
;; ldrb w0, [x9, w0, UXTW]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x11, [x1]
|
||||
;; add x10, x11, #4096
|
||||
;; ldrb w0, [x10, w0, UXTW]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -41,26 +41,26 @@
|
||||
;; block0:
|
||||
;; orr x5, xzr, #268435452
|
||||
;; subs xzr, x0, x5
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x7, [x2]
|
||||
;; str w1, [x7, x0]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x8, [x2]
|
||||
;; str w1, [x8, x0]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; orr x5, xzr, #268435452
|
||||
;; subs xzr, x0, x5
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x7, [x1]
|
||||
;; ldr w0, [x7, x0]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x8, [x1]
|
||||
;; ldr w0, [x8, x0]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -42,15 +42,15 @@
|
||||
;; movz w7, #61436
|
||||
;; movk w7, w7, #4095, LSL #16
|
||||
;; subs xzr, x0, x7
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x9, [x2]
|
||||
;; add x10, x0, #4096
|
||||
;; str w1, [x10, x9]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x10, [x2]
|
||||
;; add x11, x0, #4096
|
||||
;; str w1, [x11, x10]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -58,13 +58,13 @@
|
||||
;; movz w7, #61436
|
||||
;; movk w7, w7, #4095, LSL #16
|
||||
;; subs xzr, x0, x7
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x9, [x1]
|
||||
;; add x8, x0, #4096
|
||||
;; ldr w0, [x8, x9]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x10, [x1]
|
||||
;; add x9, x0, #4096
|
||||
;; ldr w0, [x9, x10]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -41,26 +41,26 @@
|
||||
;; block0:
|
||||
;; orr x5, xzr, #268435455
|
||||
;; subs xzr, x0, x5
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x7, [x2]
|
||||
;; strb w1, [x7, x0]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x8, [x2]
|
||||
;; strb w1, [x8, x0]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; orr x5, xzr, #268435455
|
||||
;; subs xzr, x0, x5
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x7, [x1]
|
||||
;; ldrb w0, [x7, x0]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x8, [x1]
|
||||
;; ldrb w0, [x8, x0]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -42,15 +42,15 @@
|
||||
;; movz w7, #61439
|
||||
;; movk w7, w7, #4095, LSL #16
|
||||
;; subs xzr, x0, x7
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x9, [x2]
|
||||
;; add x10, x0, #4096
|
||||
;; strb w1, [x10, x9]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x10, [x2]
|
||||
;; add x11, x0, #4096
|
||||
;; strb w1, [x11, x10]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -58,13 +58,13 @@
|
||||
;; movz w7, #61439
|
||||
;; movk w7, w7, #4095, LSL #16
|
||||
;; subs xzr, x0, x7
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x9, [x1]
|
||||
;; add x8, x0, #4096
|
||||
;; ldrb w0, [x8, x9]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x10, [x1]
|
||||
;; add x9, x0, #4096
|
||||
;; ldrb w0, [x9, x10]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -41,26 +41,26 @@
|
||||
;; block0:
|
||||
;; orr x5, xzr, #268435452
|
||||
;; subs xzr, x0, x5
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x7, [x2]
|
||||
;; str w1, [x7, x0]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x8, [x2]
|
||||
;; str w1, [x8, x0]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; orr x5, xzr, #268435452
|
||||
;; subs xzr, x0, x5
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x7, [x1]
|
||||
;; ldr w0, [x7, x0]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x8, [x1]
|
||||
;; ldr w0, [x8, x0]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -42,15 +42,15 @@
|
||||
;; movz w7, #61436
|
||||
;; movk w7, w7, #4095, LSL #16
|
||||
;; subs xzr, x0, x7
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x9, [x2]
|
||||
;; add x10, x0, #4096
|
||||
;; str w1, [x10, x9]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x10, [x2]
|
||||
;; add x11, x0, #4096
|
||||
;; str w1, [x11, x10]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -58,13 +58,13 @@
|
||||
;; movz w7, #61436
|
||||
;; movk w7, w7, #4095, LSL #16
|
||||
;; subs xzr, x0, x7
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x9, [x1]
|
||||
;; add x8, x0, #4096
|
||||
;; ldr w0, [x8, x9]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x10, [x1]
|
||||
;; add x9, x0, #4096
|
||||
;; ldr w0, [x9, x10]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -41,26 +41,26 @@
|
||||
;; block0:
|
||||
;; orr x5, xzr, #268435455
|
||||
;; subs xzr, x0, x5
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x7, [x2]
|
||||
;; strb w1, [x7, x0]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x8, [x2]
|
||||
;; strb w1, [x8, x0]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; orr x5, xzr, #268435455
|
||||
;; subs xzr, x0, x5
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x7, [x1]
|
||||
;; ldrb w0, [x7, x0]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x8, [x1]
|
||||
;; ldrb w0, [x8, x0]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -42,15 +42,15 @@
|
||||
;; movz w7, #61439
|
||||
;; movk w7, w7, #4095, LSL #16
|
||||
;; subs xzr, x0, x7
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x9, [x2]
|
||||
;; add x10, x0, #4096
|
||||
;; strb w1, [x10, x9]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x10, [x2]
|
||||
;; add x11, x0, #4096
|
||||
;; strb w1, [x11, x10]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -58,13 +58,13 @@
|
||||
;; movz w7, #61439
|
||||
;; movk w7, w7, #4095, LSL #16
|
||||
;; subs xzr, x0, x7
|
||||
;; b.ls label1 ; b label3
|
||||
;; block1:
|
||||
;; ldr x9, [x1]
|
||||
;; add x8, x0, #4096
|
||||
;; ldrb w0, [x8, x9]
|
||||
;; b label2
|
||||
;; b.hi label1 ; b label2
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ldr x10, [x1]
|
||||
;; add x9, x0, #4096
|
||||
;; ldrb w0, [x9, x10]
|
||||
;; b label3
|
||||
;; block3:
|
||||
;; udf #0xc11f
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf #0xc11f
|
||||
|
||||
@@ -115,8 +115,7 @@ block0(v0: i128, v1: i128):
|
||||
function %f(i64, i64) -> i64 {
|
||||
block0(v0: i64, v1: i64):
|
||||
v2 = icmp eq v0, v1
|
||||
brnz v2, block1
|
||||
jump block2
|
||||
brif v2, block1, block2
|
||||
|
||||
block1:
|
||||
v4 = iconst.i64 1
|
||||
@@ -140,8 +139,7 @@ block2:
|
||||
function %f(i64, i64) -> i64 {
|
||||
block0(v0: i64, v1: i64):
|
||||
v2 = icmp eq v0, v1
|
||||
brnz v2, block1
|
||||
jump block1
|
||||
brif v2, block1, block1
|
||||
|
||||
block1:
|
||||
v4 = iconst.i64 1
|
||||
@@ -159,30 +157,9 @@ block1:
|
||||
; li a0,1
|
||||
; ret
|
||||
|
||||
function %i128_brz(i128){
|
||||
function %i128_brif(i128){
|
||||
block0(v0: i128):
|
||||
brz v0, block1
|
||||
jump block1
|
||||
|
||||
block1:
|
||||
nop
|
||||
return
|
||||
}
|
||||
|
||||
; block0:
|
||||
; eq a0,[a0,a1],[zerozero]##ty=i128
|
||||
; bne a0,zero,taken(label1),not_taken(label2)
|
||||
; block1:
|
||||
; j label3
|
||||
; block2:
|
||||
; j label3
|
||||
; block3:
|
||||
; ret
|
||||
|
||||
function %i128_brnz(i128){
|
||||
block0(v0: i128):
|
||||
brnz v0, block1
|
||||
jump block1
|
||||
brif v0, block1, block1
|
||||
|
||||
block1:
|
||||
nop
|
||||
@@ -202,8 +179,7 @@ block1:
|
||||
function %i128_bricmp_eq(i128, i128) {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp eq v0, v1
|
||||
brnz v2, block1
|
||||
jump block1
|
||||
brif v2, block1, block1
|
||||
|
||||
block1:
|
||||
return
|
||||
@@ -222,8 +198,7 @@ block1:
|
||||
function %i128_bricmp_ne(i128, i128) {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp ne v0, v1
|
||||
brnz v2, block1
|
||||
jump block1
|
||||
brif v2, block1, block1
|
||||
|
||||
block1:
|
||||
return
|
||||
@@ -242,8 +217,7 @@ block1:
|
||||
function %i128_bricmp_slt(i128, i128) {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp slt v0, v1
|
||||
brnz v2, block1
|
||||
jump block1
|
||||
brif v2, block1, block1
|
||||
|
||||
block1:
|
||||
return
|
||||
@@ -262,8 +236,7 @@ block1:
|
||||
function %i128_bricmp_ult(i128, i128) {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp ult v0, v1
|
||||
brnz v2, block1
|
||||
jump block1
|
||||
brif v2, block1, block1
|
||||
|
||||
block1:
|
||||
return
|
||||
@@ -282,8 +255,7 @@ block1:
|
||||
function %i128_bricmp_sle(i128, i128) {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp sle v0, v1
|
||||
brnz v2, block1
|
||||
jump block1
|
||||
brif v2, block1, block1
|
||||
|
||||
block1:
|
||||
return
|
||||
@@ -302,8 +274,7 @@ block1:
|
||||
function %i128_bricmp_ule(i128, i128) {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp ule v0, v1
|
||||
brnz v2, block1
|
||||
jump block1
|
||||
brif v2, block1, block1
|
||||
|
||||
block1:
|
||||
return
|
||||
@@ -322,8 +293,7 @@ block1:
|
||||
function %i128_bricmp_sgt(i128, i128) {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp sgt v0, v1
|
||||
brnz v2, block1
|
||||
jump block1
|
||||
brif v2, block1, block1
|
||||
|
||||
block1:
|
||||
return
|
||||
@@ -342,8 +312,7 @@ block1:
|
||||
function %i128_bricmp_ugt(i128, i128) {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp ugt v0, v1
|
||||
brnz v2, block1
|
||||
jump block1
|
||||
brif v2, block1, block1
|
||||
|
||||
block1:
|
||||
return
|
||||
@@ -362,8 +331,7 @@ block1:
|
||||
function %i128_bricmp_sge(i128, i128) {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp sge v0, v1
|
||||
brnz v2, block1
|
||||
jump block1
|
||||
brif v2, block1, block1
|
||||
|
||||
block1:
|
||||
return
|
||||
@@ -382,8 +350,7 @@ block1:
|
||||
function %i128_bricmp_uge(i128, i128) {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp uge v0, v1
|
||||
brnz v2, block1
|
||||
jump block1
|
||||
brif v2, block1, block1
|
||||
|
||||
block1:
|
||||
return
|
||||
@@ -401,30 +368,9 @@ block1:
|
||||
|
||||
|
||||
|
||||
function %i8_brz(i8){
|
||||
function %i8_brif(i8){
|
||||
block0(v0: i8):
|
||||
brz v0, block1
|
||||
jump block1
|
||||
|
||||
block1:
|
||||
nop
|
||||
return
|
||||
}
|
||||
|
||||
; block0:
|
||||
; andi t2,a0,255
|
||||
; beq t2,zero,taken(label1),not_taken(label2)
|
||||
; block1:
|
||||
; j label3
|
||||
; block2:
|
||||
; j label3
|
||||
; block3:
|
||||
; ret
|
||||
|
||||
function %i8_brnz(i8){
|
||||
block0(v0: i8):
|
||||
brnz v0, block1
|
||||
jump block1
|
||||
brif v0, block1, block1
|
||||
|
||||
block1:
|
||||
nop
|
||||
@@ -441,32 +387,9 @@ block1:
|
||||
; block3:
|
||||
; ret
|
||||
|
||||
function %i16_brz(i16){
|
||||
function %i16_brif(i16){
|
||||
block0(v0: i16):
|
||||
brz v0, block1
|
||||
jump block1
|
||||
|
||||
block1:
|
||||
nop
|
||||
return
|
||||
}
|
||||
|
||||
; block0:
|
||||
; lui a1,16
|
||||
; addi a1,a1,4095
|
||||
; and a3,a0,a1
|
||||
; beq a3,zero,taken(label1),not_taken(label2)
|
||||
; block1:
|
||||
; j label3
|
||||
; block2:
|
||||
; j label3
|
||||
; block3:
|
||||
; ret
|
||||
|
||||
function %i16_brnz(i16){
|
||||
block0(v0: i16):
|
||||
brnz v0, block1
|
||||
jump block1
|
||||
brif v0, block1, block1
|
||||
|
||||
block1:
|
||||
nop
|
||||
@@ -485,30 +408,9 @@ block1:
|
||||
; block3:
|
||||
; ret
|
||||
|
||||
function %i32_brz(i32){
|
||||
function %i32_brif(i32){
|
||||
block0(v0: i32):
|
||||
brz v0, block1
|
||||
jump block1
|
||||
|
||||
block1:
|
||||
nop
|
||||
return
|
||||
}
|
||||
|
||||
; block0:
|
||||
; addiw t2,a0,0
|
||||
; beq t2,zero,taken(label1),not_taken(label2)
|
||||
; block1:
|
||||
; j label3
|
||||
; block2:
|
||||
; j label3
|
||||
; block3:
|
||||
; ret
|
||||
|
||||
function %i32_brnz(i32){
|
||||
block0(v0: i32):
|
||||
brnz v0, block1
|
||||
jump block1
|
||||
brif v0, block1, block1
|
||||
|
||||
block1:
|
||||
nop
|
||||
@@ -525,29 +427,9 @@ block1:
|
||||
; block3:
|
||||
; ret
|
||||
|
||||
function %i64_brz(i64){
|
||||
function %i64_brif(i64){
|
||||
block0(v0: i64):
|
||||
brz v0, block1
|
||||
jump block1
|
||||
|
||||
block1:
|
||||
nop
|
||||
return
|
||||
}
|
||||
|
||||
; block0:
|
||||
; beq a0,zero,taken(label1),not_taken(label2)
|
||||
; block1:
|
||||
; j label3
|
||||
; block2:
|
||||
; j label3
|
||||
; block3:
|
||||
; ret
|
||||
|
||||
function %i64_brnz(i64){
|
||||
block0(v0: i64):
|
||||
brnz v0, block1
|
||||
jump block1
|
||||
brif v0, block1, block1
|
||||
|
||||
block1:
|
||||
nop
|
||||
|
||||
@@ -6,33 +6,31 @@ function %f0() {
|
||||
block0:
|
||||
v0 = f64const 0.0
|
||||
v1 = fcmp ult v0, v0
|
||||
brz v1, block1
|
||||
jump block1
|
||||
|
||||
block1:
|
||||
return
|
||||
}
|
||||
|
||||
; block0:
|
||||
; li t1,0
|
||||
; fmv.d.x ft1,t1
|
||||
; li a2,0
|
||||
; fmv.d.x ft5,a2
|
||||
; fle.d a5,ft5,ft1
|
||||
; bne a5,zero,taken(label1),not_taken(label2)
|
||||
; block1:
|
||||
; j label3
|
||||
; block2:
|
||||
; j label3
|
||||
; block3:
|
||||
; ret
|
||||
|
||||
function %f1() {
|
||||
block0:
|
||||
v0 = f64const 0.0
|
||||
v1 = fcmp ult v0, v0
|
||||
brnz v1, block1
|
||||
jump block1
|
||||
brif v1, block1, block1
|
||||
|
||||
block1:
|
||||
return
|
||||
}
|
||||
|
||||
; block0:
|
||||
; li t1,0
|
||||
; fmv.d.x ft1,t1
|
||||
; li a2,0
|
||||
; fmv.d.x ft5,a2
|
||||
; fle.d a5,ft5,ft1
|
||||
; bne a5,zero,taken(label2),not_taken(label1)
|
||||
; block1:
|
||||
; j label3
|
||||
; block2:
|
||||
; j label3
|
||||
; block3:
|
||||
; ret
|
||||
|
||||
function %f1() {
|
||||
block0:
|
||||
v0 = f64const 0.0
|
||||
v1 = fcmp ult v0, v0
|
||||
brif v1, block1, block1
|
||||
|
||||
block1:
|
||||
return
|
||||
|
||||
@@ -47,8 +47,7 @@ function %f4(r64, r64) -> r64, r64, r64 {
|
||||
block0(v0: r64, v1: r64):
|
||||
v2 = call fn0(v0)
|
||||
stack_store.r64 v0, ss0
|
||||
brz v2, block1(v1, v0)
|
||||
jump block2(v0, v1)
|
||||
brif v2, block2(v0, v1), block1(v1, v0)
|
||||
|
||||
block1(v3: r64, v4: r64):
|
||||
jump block3(v3, v4)
|
||||
@@ -77,18 +76,18 @@ block3(v7: r64, v8: r64):
|
||||
; ld t4,8(nominal_sp)
|
||||
; sd t4,0(a1)
|
||||
; andi a1,a0,255
|
||||
; beq a1,zero,taken(label1),not_taken(label3)
|
||||
; bne a1,zero,taken(label1),not_taken(label3)
|
||||
; block1:
|
||||
; j label2
|
||||
; block2:
|
||||
; mv a1,t4
|
||||
; ld a0,16(nominal_sp)
|
||||
; mv a0,t4
|
||||
; ld a1,16(nominal_sp)
|
||||
; j label5
|
||||
; block3:
|
||||
; j label4
|
||||
; block4:
|
||||
; mv a0,t4
|
||||
; ld a1,16(nominal_sp)
|
||||
; mv a1,t4
|
||||
; ld a0,16(nominal_sp)
|
||||
; j label5
|
||||
; block5:
|
||||
; load_addr a2,nsp+0
|
||||
|
||||
@@ -20,11 +20,11 @@ block0(v0: i64):
|
||||
|
||||
; block0:
|
||||
; li t2,42
|
||||
; ne a1,a0,t2##ty=i64
|
||||
; eq a1,a0,t2##ty=i64
|
||||
; bne a1,zero,taken(label1),not_taken(label2)
|
||||
; block1:
|
||||
; ret
|
||||
; block2:
|
||||
; ret
|
||||
; block1:
|
||||
; udf##trap_code=user0
|
||||
|
||||
function %h() {
|
||||
|
||||
@@ -44,16 +44,16 @@
|
||||
;; uext.w a6,a0
|
||||
;; ld a7,8(a2)
|
||||
;; addi a7,a7,-4
|
||||
;; ule a7,a6,a7##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a7,0(a2)
|
||||
;; add a7,a7,a6
|
||||
;; sw a1,0(a7)
|
||||
;; j label2
|
||||
;; ugt a7,a6,a7##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t3,0(a2)
|
||||
;; add t3,t3,a6
|
||||
;; sw a1,0(t3)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -61,14 +61,14 @@
|
||||
;; uext.w a6,a0
|
||||
;; ld a7,8(a1)
|
||||
;; addi a7,a7,-4
|
||||
;; ule a7,a6,a7##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a7,0(a1)
|
||||
;; add a7,a7,a6
|
||||
;; lw a0,0(a7)
|
||||
;; j label2
|
||||
;; ugt a7,a6,a7##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t3,0(a1)
|
||||
;; add t3,t3,a6
|
||||
;; lw a0,0(t3)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -46,18 +46,18 @@
|
||||
;; lui t4,1048575
|
||||
;; addi t4,t4,4092
|
||||
;; add t2,t1,t4
|
||||
;; ule t1,t0,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t1,0(a2)
|
||||
;; add t1,t1,t0
|
||||
;; lui t0,1
|
||||
;; add t2,t1,t0
|
||||
;; sw a1,0(t2)
|
||||
;; j label2
|
||||
;; ugt t1,t0,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t2,0(a2)
|
||||
;; add t2,t2,t0
|
||||
;; lui t1,1
|
||||
;; add a0,t2,t1
|
||||
;; sw a1,0(a0)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -67,16 +67,16 @@
|
||||
;; lui t4,1048575
|
||||
;; addi t4,t4,4092
|
||||
;; add t2,t1,t4
|
||||
;; ule t1,t0,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t1,0(a1)
|
||||
;; add t1,t1,t0
|
||||
;; lui t0,1
|
||||
;; add t2,t1,t0
|
||||
;; lw a0,0(t2)
|
||||
;; j label2
|
||||
;; ugt t1,t0,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t2,0(a1)
|
||||
;; add t2,t2,t0
|
||||
;; lui t1,1
|
||||
;; add a0,t2,t1
|
||||
;; lw a0,0(a0)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -47,18 +47,18 @@
|
||||
;; ult t2,t1,t0##ty=i64
|
||||
;; trap_if t2,heap_oob
|
||||
;; ld t2,8(a2)
|
||||
;; ule t1,t1,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t2,0(a2)
|
||||
;; add t2,t2,t0
|
||||
;; auipc t1,0; ld t1,12(t1); j 12; .8byte 0xffff0000
|
||||
;; add a0,t2,t1
|
||||
;; sw a1,0(a0)
|
||||
;; j label2
|
||||
;; ugt t1,t1,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a0,0(a2)
|
||||
;; add a0,a0,t0
|
||||
;; auipc t2,0; ld t2,12(t2); j 12; .8byte 0xffff0000
|
||||
;; add a2,a0,t2
|
||||
;; sw a1,0(a2)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -69,16 +69,16 @@
|
||||
;; ult t2,t1,t0##ty=i64
|
||||
;; trap_if t2,heap_oob
|
||||
;; ld t2,8(a1)
|
||||
;; ule t1,t1,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t2,0(a1)
|
||||
;; add t2,t2,t0
|
||||
;; auipc t1,0; ld t1,12(t1); j 12; .8byte 0xffff0000
|
||||
;; add a0,t2,t1
|
||||
;; lw a0,0(a0)
|
||||
;; j label2
|
||||
;; ugt t1,t1,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a0,0(a1)
|
||||
;; add a0,a0,t0
|
||||
;; auipc t2,0; ld t2,12(t2); j 12; .8byte 0xffff0000
|
||||
;; add a1,a0,t2
|
||||
;; lw a0,0(a1)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -43,30 +43,30 @@
|
||||
;; block0:
|
||||
;; uext.w a5,a0
|
||||
;; ld a6,8(a2)
|
||||
;; ult a6,a5,a6##ty=i64
|
||||
;; bne a6,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a6,0(a2)
|
||||
;; add a6,a6,a5
|
||||
;; sb a1,0(a6)
|
||||
;; j label2
|
||||
;; uge a6,a5,a6##ty=i64
|
||||
;; bne a6,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a7,0(a2)
|
||||
;; add a7,a7,a5
|
||||
;; sb a1,0(a7)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; uext.w a5,a0
|
||||
;; ld a6,8(a1)
|
||||
;; ult a6,a5,a6##ty=i64
|
||||
;; bne a6,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a6,0(a1)
|
||||
;; add a6,a6,a5
|
||||
;; lbu a0,0(a6)
|
||||
;; j label2
|
||||
;; uge a6,a5,a6##ty=i64
|
||||
;; bne a6,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a7,0(a1)
|
||||
;; add a7,a7,a5
|
||||
;; lbu a0,0(a7)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -46,18 +46,18 @@
|
||||
;; lui t4,1048575
|
||||
;; addi t4,t4,4095
|
||||
;; add t2,t1,t4
|
||||
;; ule t1,t0,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t1,0(a2)
|
||||
;; add t1,t1,t0
|
||||
;; lui t0,1
|
||||
;; add t2,t1,t0
|
||||
;; sb a1,0(t2)
|
||||
;; j label2
|
||||
;; ugt t1,t0,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t2,0(a2)
|
||||
;; add t2,t2,t0
|
||||
;; lui t1,1
|
||||
;; add a0,t2,t1
|
||||
;; sb a1,0(a0)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -67,16 +67,16 @@
|
||||
;; lui t4,1048575
|
||||
;; addi t4,t4,4095
|
||||
;; add t2,t1,t4
|
||||
;; ule t1,t0,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t1,0(a1)
|
||||
;; add t1,t1,t0
|
||||
;; lui t0,1
|
||||
;; add t2,t1,t0
|
||||
;; lbu a0,0(t2)
|
||||
;; j label2
|
||||
;; ugt t1,t0,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t2,0(a1)
|
||||
;; add t2,t2,t0
|
||||
;; lui t1,1
|
||||
;; add a0,t2,t1
|
||||
;; lbu a0,0(a0)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -47,18 +47,18 @@
|
||||
;; ult t2,t1,t0##ty=i64
|
||||
;; trap_if t2,heap_oob
|
||||
;; ld t2,8(a2)
|
||||
;; ule t1,t1,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t2,0(a2)
|
||||
;; add t2,t2,t0
|
||||
;; auipc t1,0; ld t1,12(t1); j 12; .8byte 0xffff0000
|
||||
;; add a0,t2,t1
|
||||
;; sb a1,0(a0)
|
||||
;; j label2
|
||||
;; ugt t1,t1,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a0,0(a2)
|
||||
;; add a0,a0,t0
|
||||
;; auipc t2,0; ld t2,12(t2); j 12; .8byte 0xffff0000
|
||||
;; add a2,a0,t2
|
||||
;; sb a1,0(a2)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -69,16 +69,16 @@
|
||||
;; ult t2,t1,t0##ty=i64
|
||||
;; trap_if t2,heap_oob
|
||||
;; ld t2,8(a1)
|
||||
;; ule t1,t1,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t2,0(a1)
|
||||
;; add t2,t2,t0
|
||||
;; auipc t1,0; ld t1,12(t1); j 12; .8byte 0xffff0000
|
||||
;; add a0,t2,t1
|
||||
;; lbu a0,0(a0)
|
||||
;; j label2
|
||||
;; ugt t1,t1,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a0,0(a1)
|
||||
;; add a0,a0,t0
|
||||
;; auipc t2,0; ld t2,12(t2); j 12; .8byte 0xffff0000
|
||||
;; add a1,a0,t2
|
||||
;; lbu a0,0(a1)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -44,16 +44,16 @@
|
||||
;; uext.w a6,a0
|
||||
;; ld a7,8(a2)
|
||||
;; addi a7,a7,-4
|
||||
;; ule a7,a6,a7##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a7,0(a2)
|
||||
;; add a7,a7,a6
|
||||
;; sw a1,0(a7)
|
||||
;; j label2
|
||||
;; ugt a7,a6,a7##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t3,0(a2)
|
||||
;; add t3,t3,a6
|
||||
;; sw a1,0(t3)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -61,14 +61,14 @@
|
||||
;; uext.w a6,a0
|
||||
;; ld a7,8(a1)
|
||||
;; addi a7,a7,-4
|
||||
;; ule a7,a6,a7##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a7,0(a1)
|
||||
;; add a7,a7,a6
|
||||
;; lw a0,0(a7)
|
||||
;; j label2
|
||||
;; ugt a7,a6,a7##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t3,0(a1)
|
||||
;; add t3,t3,a6
|
||||
;; lw a0,0(t3)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -46,18 +46,18 @@
|
||||
;; lui t4,1048575
|
||||
;; addi t4,t4,4092
|
||||
;; add t2,t1,t4
|
||||
;; ule t1,t0,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t1,0(a2)
|
||||
;; add t1,t1,t0
|
||||
;; lui t0,1
|
||||
;; add t2,t1,t0
|
||||
;; sw a1,0(t2)
|
||||
;; j label2
|
||||
;; ugt t1,t0,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t2,0(a2)
|
||||
;; add t2,t2,t0
|
||||
;; lui t1,1
|
||||
;; add a0,t2,t1
|
||||
;; sw a1,0(a0)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -67,16 +67,16 @@
|
||||
;; lui t4,1048575
|
||||
;; addi t4,t4,4092
|
||||
;; add t2,t1,t4
|
||||
;; ule t1,t0,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t1,0(a1)
|
||||
;; add t1,t1,t0
|
||||
;; lui t0,1
|
||||
;; add t2,t1,t0
|
||||
;; lw a0,0(t2)
|
||||
;; j label2
|
||||
;; ugt t1,t0,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t2,0(a1)
|
||||
;; add t2,t2,t0
|
||||
;; lui t1,1
|
||||
;; add a0,t2,t1
|
||||
;; lw a0,0(a0)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -47,18 +47,18 @@
|
||||
;; ult t2,t1,t0##ty=i64
|
||||
;; trap_if t2,heap_oob
|
||||
;; ld t2,8(a2)
|
||||
;; ule t1,t1,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t2,0(a2)
|
||||
;; add t2,t2,t0
|
||||
;; auipc t1,0; ld t1,12(t1); j 12; .8byte 0xffff0000
|
||||
;; add a0,t2,t1
|
||||
;; sw a1,0(a0)
|
||||
;; j label2
|
||||
;; ugt t1,t1,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a0,0(a2)
|
||||
;; add a0,a0,t0
|
||||
;; auipc t2,0; ld t2,12(t2); j 12; .8byte 0xffff0000
|
||||
;; add a2,a0,t2
|
||||
;; sw a1,0(a2)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -69,16 +69,16 @@
|
||||
;; ult t2,t1,t0##ty=i64
|
||||
;; trap_if t2,heap_oob
|
||||
;; ld t2,8(a1)
|
||||
;; ule t1,t1,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t2,0(a1)
|
||||
;; add t2,t2,t0
|
||||
;; auipc t1,0; ld t1,12(t1); j 12; .8byte 0xffff0000
|
||||
;; add a0,t2,t1
|
||||
;; lw a0,0(a0)
|
||||
;; j label2
|
||||
;; ugt t1,t1,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a0,0(a1)
|
||||
;; add a0,a0,t0
|
||||
;; auipc t2,0; ld t2,12(t2); j 12; .8byte 0xffff0000
|
||||
;; add a1,a0,t2
|
||||
;; lw a0,0(a1)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -43,30 +43,30 @@
|
||||
;; block0:
|
||||
;; uext.w a5,a0
|
||||
;; ld a6,8(a2)
|
||||
;; ult a6,a5,a6##ty=i64
|
||||
;; bne a6,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a6,0(a2)
|
||||
;; add a6,a6,a5
|
||||
;; sb a1,0(a6)
|
||||
;; j label2
|
||||
;; uge a6,a5,a6##ty=i64
|
||||
;; bne a6,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a7,0(a2)
|
||||
;; add a7,a7,a5
|
||||
;; sb a1,0(a7)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; uext.w a5,a0
|
||||
;; ld a6,8(a1)
|
||||
;; ult a6,a5,a6##ty=i64
|
||||
;; bne a6,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a6,0(a1)
|
||||
;; add a6,a6,a5
|
||||
;; lbu a0,0(a6)
|
||||
;; j label2
|
||||
;; uge a6,a5,a6##ty=i64
|
||||
;; bne a6,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a7,0(a1)
|
||||
;; add a7,a7,a5
|
||||
;; lbu a0,0(a7)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -46,18 +46,18 @@
|
||||
;; lui t4,1048575
|
||||
;; addi t4,t4,4095
|
||||
;; add t2,t1,t4
|
||||
;; ule t1,t0,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t1,0(a2)
|
||||
;; add t1,t1,t0
|
||||
;; lui t0,1
|
||||
;; add t2,t1,t0
|
||||
;; sb a1,0(t2)
|
||||
;; j label2
|
||||
;; ugt t1,t0,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t2,0(a2)
|
||||
;; add t2,t2,t0
|
||||
;; lui t1,1
|
||||
;; add a0,t2,t1
|
||||
;; sb a1,0(a0)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -67,16 +67,16 @@
|
||||
;; lui t4,1048575
|
||||
;; addi t4,t4,4095
|
||||
;; add t2,t1,t4
|
||||
;; ule t1,t0,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t1,0(a1)
|
||||
;; add t1,t1,t0
|
||||
;; lui t0,1
|
||||
;; add t2,t1,t0
|
||||
;; lbu a0,0(t2)
|
||||
;; j label2
|
||||
;; ugt t1,t0,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t2,0(a1)
|
||||
;; add t2,t2,t0
|
||||
;; lui t1,1
|
||||
;; add a0,t2,t1
|
||||
;; lbu a0,0(a0)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -47,18 +47,18 @@
|
||||
;; ult t2,t1,t0##ty=i64
|
||||
;; trap_if t2,heap_oob
|
||||
;; ld t2,8(a2)
|
||||
;; ule t1,t1,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t2,0(a2)
|
||||
;; add t2,t2,t0
|
||||
;; auipc t1,0; ld t1,12(t1); j 12; .8byte 0xffff0000
|
||||
;; add a0,t2,t1
|
||||
;; sb a1,0(a0)
|
||||
;; j label2
|
||||
;; ugt t1,t1,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a0,0(a2)
|
||||
;; add a0,a0,t0
|
||||
;; auipc t2,0; ld t2,12(t2); j 12; .8byte 0xffff0000
|
||||
;; add a2,a0,t2
|
||||
;; sb a1,0(a2)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -69,16 +69,16 @@
|
||||
;; ult t2,t1,t0##ty=i64
|
||||
;; trap_if t2,heap_oob
|
||||
;; ld t2,8(a1)
|
||||
;; ule t1,t1,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t2,0(a1)
|
||||
;; add t2,t2,t0
|
||||
;; auipc t1,0; ld t1,12(t1); j 12; .8byte 0xffff0000
|
||||
;; add a0,t2,t1
|
||||
;; lbu a0,0(a0)
|
||||
;; j label2
|
||||
;; ugt t1,t1,t2##ty=i64
|
||||
;; bne t1,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a0,0(a1)
|
||||
;; add a0,a0,t0
|
||||
;; auipc t2,0; ld t2,12(t2); j 12; .8byte 0xffff0000
|
||||
;; add a1,a0,t2
|
||||
;; lbu a0,0(a1)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -43,30 +43,30 @@
|
||||
;; block0:
|
||||
;; ld a5,8(a2)
|
||||
;; addi a5,a5,-4
|
||||
;; ule a5,a0,a5##ty=i64
|
||||
;; bne a5,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a6,0(a2)
|
||||
;; add a6,a6,a0
|
||||
;; sw a1,0(a6)
|
||||
;; j label2
|
||||
;; ugt a5,a0,a5##ty=i64
|
||||
;; bne a5,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a7,0(a2)
|
||||
;; add a7,a7,a0
|
||||
;; sw a1,0(a7)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ld a5,8(a1)
|
||||
;; addi a5,a5,-4
|
||||
;; ule a5,a0,a5##ty=i64
|
||||
;; bne a5,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a6,0(a1)
|
||||
;; add a6,a6,a0
|
||||
;; lw a0,0(a6)
|
||||
;; j label2
|
||||
;; ugt a5,a0,a5##ty=i64
|
||||
;; bne a5,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a7,0(a1)
|
||||
;; add a7,a7,a0
|
||||
;; lw a0,0(a7)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -45,18 +45,18 @@
|
||||
;; lui t3,1048575
|
||||
;; addi t3,t3,4092
|
||||
;; add t1,t4,t3
|
||||
;; ule t4,a0,t1##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t0,0(a2)
|
||||
;; add t0,t0,a0
|
||||
;; lui t4,1
|
||||
;; add t1,t0,t4
|
||||
;; sw a1,0(t1)
|
||||
;; j label2
|
||||
;; ugt t4,a0,t1##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t1,0(a2)
|
||||
;; add t1,t1,a0
|
||||
;; lui t0,1
|
||||
;; add t2,t1,t0
|
||||
;; sw a1,0(t2)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -65,16 +65,16 @@
|
||||
;; lui t3,1048575
|
||||
;; addi t3,t3,4092
|
||||
;; add t1,t4,t3
|
||||
;; ule t4,a0,t1##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t0,0(a1)
|
||||
;; add t0,t0,a0
|
||||
;; lui t4,1
|
||||
;; add t1,t0,t4
|
||||
;; lw a0,0(t1)
|
||||
;; j label2
|
||||
;; ugt t4,a0,t1##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t1,0(a1)
|
||||
;; add t1,t1,a0
|
||||
;; lui t0,1
|
||||
;; add t2,t1,t0
|
||||
;; lw a0,0(t2)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -46,18 +46,18 @@
|
||||
;; ult t1,t4,a0##ty=i64
|
||||
;; trap_if t1,heap_oob
|
||||
;; ld t0,8(a2)
|
||||
;; ule t0,t4,t0##ty=i64
|
||||
;; bne t0,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t1,0(a2)
|
||||
;; add t1,t1,a0
|
||||
;; auipc t0,0; ld t0,12(t0); j 12; .8byte 0xffff0000
|
||||
;; add t2,t1,t0
|
||||
;; sw a1,0(t2)
|
||||
;; j label2
|
||||
;; ugt t0,t4,t0##ty=i64
|
||||
;; bne t0,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t2,0(a2)
|
||||
;; add t2,t2,a0
|
||||
;; auipc t1,0; ld t1,12(t1); j 12; .8byte 0xffff0000
|
||||
;; add a0,t2,t1
|
||||
;; sw a1,0(a0)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -67,16 +67,16 @@
|
||||
;; ult t1,t4,a0##ty=i64
|
||||
;; trap_if t1,heap_oob
|
||||
;; ld t0,8(a1)
|
||||
;; ule t0,t4,t0##ty=i64
|
||||
;; bne t0,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t1,0(a1)
|
||||
;; add t1,t1,a0
|
||||
;; auipc t0,0; ld t0,12(t0); j 12; .8byte 0xffff0000
|
||||
;; add t2,t1,t0
|
||||
;; lw a0,0(t2)
|
||||
;; j label2
|
||||
;; ugt t0,t4,t0##ty=i64
|
||||
;; bne t0,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t2,0(a1)
|
||||
;; add t2,t2,a0
|
||||
;; auipc t1,0; ld t1,12(t1); j 12; .8byte 0xffff0000
|
||||
;; add a0,t2,t1
|
||||
;; lw a0,0(a0)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -42,29 +42,29 @@
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ld a4,8(a2)
|
||||
;; ult a4,a0,a4##ty=i64
|
||||
;; bne a4,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a5,0(a2)
|
||||
;; add a5,a5,a0
|
||||
;; sb a1,0(a5)
|
||||
;; j label2
|
||||
;; uge a4,a0,a4##ty=i64
|
||||
;; bne a4,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a6,0(a2)
|
||||
;; add a6,a6,a0
|
||||
;; sb a1,0(a6)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ld a4,8(a1)
|
||||
;; ult a4,a0,a4##ty=i64
|
||||
;; bne a4,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a5,0(a1)
|
||||
;; add a5,a5,a0
|
||||
;; lbu a0,0(a5)
|
||||
;; j label2
|
||||
;; uge a4,a0,a4##ty=i64
|
||||
;; bne a4,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a6,0(a1)
|
||||
;; add a6,a6,a0
|
||||
;; lbu a0,0(a6)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -45,18 +45,18 @@
|
||||
;; lui t3,1048575
|
||||
;; addi t3,t3,4095
|
||||
;; add t1,t4,t3
|
||||
;; ule t4,a0,t1##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t0,0(a2)
|
||||
;; add t0,t0,a0
|
||||
;; lui t4,1
|
||||
;; add t1,t0,t4
|
||||
;; sb a1,0(t1)
|
||||
;; j label2
|
||||
;; ugt t4,a0,t1##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t1,0(a2)
|
||||
;; add t1,t1,a0
|
||||
;; lui t0,1
|
||||
;; add t2,t1,t0
|
||||
;; sb a1,0(t2)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -65,16 +65,16 @@
|
||||
;; lui t3,1048575
|
||||
;; addi t3,t3,4095
|
||||
;; add t1,t4,t3
|
||||
;; ule t4,a0,t1##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t0,0(a1)
|
||||
;; add t0,t0,a0
|
||||
;; lui t4,1
|
||||
;; add t1,t0,t4
|
||||
;; lbu a0,0(t1)
|
||||
;; j label2
|
||||
;; ugt t4,a0,t1##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t1,0(a1)
|
||||
;; add t1,t1,a0
|
||||
;; lui t0,1
|
||||
;; add t2,t1,t0
|
||||
;; lbu a0,0(t2)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -46,18 +46,18 @@
|
||||
;; ult t1,t4,a0##ty=i64
|
||||
;; trap_if t1,heap_oob
|
||||
;; ld t0,8(a2)
|
||||
;; ule t0,t4,t0##ty=i64
|
||||
;; bne t0,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t1,0(a2)
|
||||
;; add t1,t1,a0
|
||||
;; auipc t0,0; ld t0,12(t0); j 12; .8byte 0xffff0000
|
||||
;; add t2,t1,t0
|
||||
;; sb a1,0(t2)
|
||||
;; j label2
|
||||
;; ugt t0,t4,t0##ty=i64
|
||||
;; bne t0,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t2,0(a2)
|
||||
;; add t2,t2,a0
|
||||
;; auipc t1,0; ld t1,12(t1); j 12; .8byte 0xffff0000
|
||||
;; add a0,t2,t1
|
||||
;; sb a1,0(a0)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -67,16 +67,16 @@
|
||||
;; ult t1,t4,a0##ty=i64
|
||||
;; trap_if t1,heap_oob
|
||||
;; ld t0,8(a1)
|
||||
;; ule t0,t4,t0##ty=i64
|
||||
;; bne t0,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t1,0(a1)
|
||||
;; add t1,t1,a0
|
||||
;; auipc t0,0; ld t0,12(t0); j 12; .8byte 0xffff0000
|
||||
;; add t2,t1,t0
|
||||
;; lbu a0,0(t2)
|
||||
;; j label2
|
||||
;; ugt t0,t4,t0##ty=i64
|
||||
;; bne t0,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t2,0(a1)
|
||||
;; add t2,t2,a0
|
||||
;; auipc t1,0; ld t1,12(t1); j 12; .8byte 0xffff0000
|
||||
;; add a0,t2,t1
|
||||
;; lbu a0,0(a0)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -43,30 +43,30 @@
|
||||
;; block0:
|
||||
;; ld a5,8(a2)
|
||||
;; addi a5,a5,-4
|
||||
;; ule a5,a0,a5##ty=i64
|
||||
;; bne a5,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a6,0(a2)
|
||||
;; add a6,a6,a0
|
||||
;; sw a1,0(a6)
|
||||
;; j label2
|
||||
;; ugt a5,a0,a5##ty=i64
|
||||
;; bne a5,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a7,0(a2)
|
||||
;; add a7,a7,a0
|
||||
;; sw a1,0(a7)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ld a5,8(a1)
|
||||
;; addi a5,a5,-4
|
||||
;; ule a5,a0,a5##ty=i64
|
||||
;; bne a5,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a6,0(a1)
|
||||
;; add a6,a6,a0
|
||||
;; lw a0,0(a6)
|
||||
;; j label2
|
||||
;; ugt a5,a0,a5##ty=i64
|
||||
;; bne a5,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a7,0(a1)
|
||||
;; add a7,a7,a0
|
||||
;; lw a0,0(a7)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -45,18 +45,18 @@
|
||||
;; lui t3,1048575
|
||||
;; addi t3,t3,4092
|
||||
;; add t1,t4,t3
|
||||
;; ule t4,a0,t1##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t0,0(a2)
|
||||
;; add t0,t0,a0
|
||||
;; lui t4,1
|
||||
;; add t1,t0,t4
|
||||
;; sw a1,0(t1)
|
||||
;; j label2
|
||||
;; ugt t4,a0,t1##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t1,0(a2)
|
||||
;; add t1,t1,a0
|
||||
;; lui t0,1
|
||||
;; add t2,t1,t0
|
||||
;; sw a1,0(t2)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -65,16 +65,16 @@
|
||||
;; lui t3,1048575
|
||||
;; addi t3,t3,4092
|
||||
;; add t1,t4,t3
|
||||
;; ule t4,a0,t1##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t0,0(a1)
|
||||
;; add t0,t0,a0
|
||||
;; lui t4,1
|
||||
;; add t1,t0,t4
|
||||
;; lw a0,0(t1)
|
||||
;; j label2
|
||||
;; ugt t4,a0,t1##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t1,0(a1)
|
||||
;; add t1,t1,a0
|
||||
;; lui t0,1
|
||||
;; add t2,t1,t0
|
||||
;; lw a0,0(t2)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -46,18 +46,18 @@
|
||||
;; ult t1,t4,a0##ty=i64
|
||||
;; trap_if t1,heap_oob
|
||||
;; ld t0,8(a2)
|
||||
;; ule t0,t4,t0##ty=i64
|
||||
;; bne t0,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t1,0(a2)
|
||||
;; add t1,t1,a0
|
||||
;; auipc t0,0; ld t0,12(t0); j 12; .8byte 0xffff0000
|
||||
;; add t2,t1,t0
|
||||
;; sw a1,0(t2)
|
||||
;; j label2
|
||||
;; ugt t0,t4,t0##ty=i64
|
||||
;; bne t0,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t2,0(a2)
|
||||
;; add t2,t2,a0
|
||||
;; auipc t1,0; ld t1,12(t1); j 12; .8byte 0xffff0000
|
||||
;; add a0,t2,t1
|
||||
;; sw a1,0(a0)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -67,16 +67,16 @@
|
||||
;; ult t1,t4,a0##ty=i64
|
||||
;; trap_if t1,heap_oob
|
||||
;; ld t0,8(a1)
|
||||
;; ule t0,t4,t0##ty=i64
|
||||
;; bne t0,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t1,0(a1)
|
||||
;; add t1,t1,a0
|
||||
;; auipc t0,0; ld t0,12(t0); j 12; .8byte 0xffff0000
|
||||
;; add t2,t1,t0
|
||||
;; lw a0,0(t2)
|
||||
;; j label2
|
||||
;; ugt t0,t4,t0##ty=i64
|
||||
;; bne t0,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t2,0(a1)
|
||||
;; add t2,t2,a0
|
||||
;; auipc t1,0; ld t1,12(t1); j 12; .8byte 0xffff0000
|
||||
;; add a0,t2,t1
|
||||
;; lw a0,0(a0)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -42,29 +42,29 @@
|
||||
;; function u0:0:
|
||||
;; block0:
|
||||
;; ld a4,8(a2)
|
||||
;; ult a4,a0,a4##ty=i64
|
||||
;; bne a4,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a5,0(a2)
|
||||
;; add a5,a5,a0
|
||||
;; sb a1,0(a5)
|
||||
;; j label2
|
||||
;; uge a4,a0,a4##ty=i64
|
||||
;; bne a4,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a6,0(a2)
|
||||
;; add a6,a6,a0
|
||||
;; sb a1,0(a6)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; ld a4,8(a1)
|
||||
;; ult a4,a0,a4##ty=i64
|
||||
;; bne a4,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a5,0(a1)
|
||||
;; add a5,a5,a0
|
||||
;; lbu a0,0(a5)
|
||||
;; j label2
|
||||
;; uge a4,a0,a4##ty=i64
|
||||
;; bne a4,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a6,0(a1)
|
||||
;; add a6,a6,a0
|
||||
;; lbu a0,0(a6)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -45,18 +45,18 @@
|
||||
;; lui t3,1048575
|
||||
;; addi t3,t3,4095
|
||||
;; add t1,t4,t3
|
||||
;; ule t4,a0,t1##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t0,0(a2)
|
||||
;; add t0,t0,a0
|
||||
;; lui t4,1
|
||||
;; add t1,t0,t4
|
||||
;; sb a1,0(t1)
|
||||
;; j label2
|
||||
;; ugt t4,a0,t1##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t1,0(a2)
|
||||
;; add t1,t1,a0
|
||||
;; lui t0,1
|
||||
;; add t2,t1,t0
|
||||
;; sb a1,0(t2)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -65,16 +65,16 @@
|
||||
;; lui t3,1048575
|
||||
;; addi t3,t3,4095
|
||||
;; add t1,t4,t3
|
||||
;; ule t4,a0,t1##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t0,0(a1)
|
||||
;; add t0,t0,a0
|
||||
;; lui t4,1
|
||||
;; add t1,t0,t4
|
||||
;; lbu a0,0(t1)
|
||||
;; j label2
|
||||
;; ugt t4,a0,t1##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t1,0(a1)
|
||||
;; add t1,t1,a0
|
||||
;; lui t0,1
|
||||
;; add t2,t1,t0
|
||||
;; lbu a0,0(t2)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -46,18 +46,18 @@
|
||||
;; ult t1,t4,a0##ty=i64
|
||||
;; trap_if t1,heap_oob
|
||||
;; ld t0,8(a2)
|
||||
;; ule t0,t4,t0##ty=i64
|
||||
;; bne t0,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t1,0(a2)
|
||||
;; add t1,t1,a0
|
||||
;; auipc t0,0; ld t0,12(t0); j 12; .8byte 0xffff0000
|
||||
;; add t2,t1,t0
|
||||
;; sb a1,0(t2)
|
||||
;; j label2
|
||||
;; ugt t0,t4,t0##ty=i64
|
||||
;; bne t0,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t2,0(a2)
|
||||
;; add t2,t2,a0
|
||||
;; auipc t1,0; ld t1,12(t1); j 12; .8byte 0xffff0000
|
||||
;; add a0,t2,t1
|
||||
;; sb a1,0(a0)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -67,16 +67,16 @@
|
||||
;; ult t1,t4,a0##ty=i64
|
||||
;; trap_if t1,heap_oob
|
||||
;; ld t0,8(a1)
|
||||
;; ule t0,t4,t0##ty=i64
|
||||
;; bne t0,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t1,0(a1)
|
||||
;; add t1,t1,a0
|
||||
;; auipc t0,0; ld t0,12(t0); j 12; .8byte 0xffff0000
|
||||
;; add t2,t1,t0
|
||||
;; lbu a0,0(t2)
|
||||
;; j label2
|
||||
;; ugt t0,t4,t0##ty=i64
|
||||
;; bne t0,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t2,0(a1)
|
||||
;; add t2,t2,a0
|
||||
;; auipc t1,0; ld t1,12(t1); j 12; .8byte 0xffff0000
|
||||
;; add a0,t2,t1
|
||||
;; lbu a0,0(a0)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -42,16 +42,16 @@
|
||||
;; uext.w a6,a0
|
||||
;; lui a5,65536
|
||||
;; addi a5,a5,4092
|
||||
;; ule t3,a6,a5##ty=i64
|
||||
;; bne t3,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a7,0(a2)
|
||||
;; add a7,a7,a6
|
||||
;; sw a1,0(a7)
|
||||
;; j label2
|
||||
;; ugt t3,a6,a5##ty=i64
|
||||
;; bne t3,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t3,0(a2)
|
||||
;; add t3,t3,a6
|
||||
;; sw a1,0(t3)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -59,14 +59,14 @@
|
||||
;; uext.w a6,a0
|
||||
;; lui a5,65536
|
||||
;; addi a5,a5,4092
|
||||
;; ule t3,a6,a5##ty=i64
|
||||
;; bne t3,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a7,0(a1)
|
||||
;; add a7,a7,a6
|
||||
;; lw a0,0(a7)
|
||||
;; j label2
|
||||
;; ugt t3,a6,a5##ty=i64
|
||||
;; bne t3,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t3,0(a1)
|
||||
;; add t3,t3,a6
|
||||
;; lw a0,0(t3)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -42,18 +42,18 @@
|
||||
;; uext.w t3,a0
|
||||
;; lui a7,65535
|
||||
;; addi a7,a7,4092
|
||||
;; ule t0,t3,a7##ty=i64
|
||||
;; bne t0,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t4,0(a2)
|
||||
;; add t4,t4,t3
|
||||
;; lui t3,1
|
||||
;; add t0,t4,t3
|
||||
;; sw a1,0(t0)
|
||||
;; j label2
|
||||
;; ugt t0,t3,a7##ty=i64
|
||||
;; bne t0,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t0,0(a2)
|
||||
;; add t0,t0,t3
|
||||
;; lui t4,1
|
||||
;; add t1,t0,t4
|
||||
;; sw a1,0(t1)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -61,16 +61,16 @@
|
||||
;; uext.w t3,a0
|
||||
;; lui a7,65535
|
||||
;; addi a7,a7,4092
|
||||
;; ule t0,t3,a7##ty=i64
|
||||
;; bne t0,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t4,0(a1)
|
||||
;; add t4,t4,t3
|
||||
;; lui t3,1
|
||||
;; add t0,t4,t3
|
||||
;; lw a0,0(t0)
|
||||
;; j label2
|
||||
;; ugt t0,t3,a7##ty=i64
|
||||
;; bne t0,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t0,0(a1)
|
||||
;; add t0,t0,t3
|
||||
;; lui t4,1
|
||||
;; add t1,t0,t4
|
||||
;; lw a0,0(t1)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -42,16 +42,16 @@
|
||||
;; uext.w a6,a0
|
||||
;; lui a5,65536
|
||||
;; addi a5,a5,4095
|
||||
;; ule t3,a6,a5##ty=i64
|
||||
;; bne t3,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a7,0(a2)
|
||||
;; add a7,a7,a6
|
||||
;; sb a1,0(a7)
|
||||
;; j label2
|
||||
;; ugt t3,a6,a5##ty=i64
|
||||
;; bne t3,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t3,0(a2)
|
||||
;; add t3,t3,a6
|
||||
;; sb a1,0(t3)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -59,14 +59,14 @@
|
||||
;; uext.w a6,a0
|
||||
;; lui a5,65536
|
||||
;; addi a5,a5,4095
|
||||
;; ule t3,a6,a5##ty=i64
|
||||
;; bne t3,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a7,0(a1)
|
||||
;; add a7,a7,a6
|
||||
;; lbu a0,0(a7)
|
||||
;; j label2
|
||||
;; ugt t3,a6,a5##ty=i64
|
||||
;; bne t3,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t3,0(a1)
|
||||
;; add t3,t3,a6
|
||||
;; lbu a0,0(t3)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -42,18 +42,18 @@
|
||||
;; uext.w t3,a0
|
||||
;; lui a7,65535
|
||||
;; addi a7,a7,4095
|
||||
;; ule t0,t3,a7##ty=i64
|
||||
;; bne t0,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t4,0(a2)
|
||||
;; add t4,t4,t3
|
||||
;; lui t3,1
|
||||
;; add t0,t4,t3
|
||||
;; sb a1,0(t0)
|
||||
;; j label2
|
||||
;; ugt t0,t3,a7##ty=i64
|
||||
;; bne t0,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t0,0(a2)
|
||||
;; add t0,t0,t3
|
||||
;; lui t4,1
|
||||
;; add t1,t0,t4
|
||||
;; sb a1,0(t1)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -61,16 +61,16 @@
|
||||
;; uext.w t3,a0
|
||||
;; lui a7,65535
|
||||
;; addi a7,a7,4095
|
||||
;; ule t0,t3,a7##ty=i64
|
||||
;; bne t0,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t4,0(a1)
|
||||
;; add t4,t4,t3
|
||||
;; lui t3,1
|
||||
;; add t0,t4,t3
|
||||
;; lbu a0,0(t0)
|
||||
;; j label2
|
||||
;; ugt t0,t3,a7##ty=i64
|
||||
;; bne t0,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t0,0(a1)
|
||||
;; add t0,t0,t3
|
||||
;; lui t4,1
|
||||
;; add t1,t0,t4
|
||||
;; lbu a0,0(t1)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -41,30 +41,30 @@
|
||||
;; block0:
|
||||
;; lui a4,65536
|
||||
;; addi a4,a4,4092
|
||||
;; ule a7,a0,a4##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a6,0(a2)
|
||||
;; add a6,a6,a0
|
||||
;; sw a1,0(a6)
|
||||
;; j label2
|
||||
;; ugt a7,a0,a4##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a7,0(a2)
|
||||
;; add a7,a7,a0
|
||||
;; sw a1,0(a7)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; lui a4,65536
|
||||
;; addi a4,a4,4092
|
||||
;; ule a7,a0,a4##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a6,0(a1)
|
||||
;; add a6,a6,a0
|
||||
;; lw a0,0(a6)
|
||||
;; j label2
|
||||
;; ugt a7,a0,a4##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a7,0(a1)
|
||||
;; add a7,a7,a0
|
||||
;; lw a0,0(a7)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -41,34 +41,34 @@
|
||||
;; block0:
|
||||
;; lui a6,65535
|
||||
;; addi a6,a6,4092
|
||||
;; ule t4,a0,a6##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t3,0(a2)
|
||||
;; add t3,t3,a0
|
||||
;; lui a7,1
|
||||
;; add t4,t3,a7
|
||||
;; sw a1,0(t4)
|
||||
;; j label2
|
||||
;; ugt t4,a0,a6##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t4,0(a2)
|
||||
;; add t4,t4,a0
|
||||
;; lui t3,1
|
||||
;; add t0,t4,t3
|
||||
;; sw a1,0(t0)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; lui a6,65535
|
||||
;; addi a6,a6,4092
|
||||
;; ule t4,a0,a6##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t3,0(a1)
|
||||
;; add t3,t3,a0
|
||||
;; lui a7,1
|
||||
;; add t4,t3,a7
|
||||
;; lw a0,0(t4)
|
||||
;; j label2
|
||||
;; ugt t4,a0,a6##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t4,0(a1)
|
||||
;; add t4,t4,a0
|
||||
;; lui t3,1
|
||||
;; add t0,t4,t3
|
||||
;; lw a0,0(t0)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -41,30 +41,30 @@
|
||||
;; block0:
|
||||
;; lui a4,65536
|
||||
;; addi a4,a4,4095
|
||||
;; ule a7,a0,a4##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a6,0(a2)
|
||||
;; add a6,a6,a0
|
||||
;; sb a1,0(a6)
|
||||
;; j label2
|
||||
;; ugt a7,a0,a4##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a7,0(a2)
|
||||
;; add a7,a7,a0
|
||||
;; sb a1,0(a7)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; lui a4,65536
|
||||
;; addi a4,a4,4095
|
||||
;; ule a7,a0,a4##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a6,0(a1)
|
||||
;; add a6,a6,a0
|
||||
;; lbu a0,0(a6)
|
||||
;; j label2
|
||||
;; ugt a7,a0,a4##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a7,0(a1)
|
||||
;; add a7,a7,a0
|
||||
;; lbu a0,0(a7)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -41,34 +41,34 @@
|
||||
;; block0:
|
||||
;; lui a6,65535
|
||||
;; addi a6,a6,4095
|
||||
;; ule t4,a0,a6##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t3,0(a2)
|
||||
;; add t3,t3,a0
|
||||
;; lui a7,1
|
||||
;; add t4,t3,a7
|
||||
;; sb a1,0(t4)
|
||||
;; j label2
|
||||
;; ugt t4,a0,a6##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t4,0(a2)
|
||||
;; add t4,t4,a0
|
||||
;; lui t3,1
|
||||
;; add t0,t4,t3
|
||||
;; sb a1,0(t0)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; lui a6,65535
|
||||
;; addi a6,a6,4095
|
||||
;; ule t4,a0,a6##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t3,0(a1)
|
||||
;; add t3,t3,a0
|
||||
;; lui a7,1
|
||||
;; add t4,t3,a7
|
||||
;; lbu a0,0(t4)
|
||||
;; j label2
|
||||
;; ugt t4,a0,a6##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t4,0(a1)
|
||||
;; add t4,t4,a0
|
||||
;; lui t3,1
|
||||
;; add t0,t4,t3
|
||||
;; lbu a0,0(t0)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -41,30 +41,30 @@
|
||||
;; block0:
|
||||
;; lui a4,65536
|
||||
;; addi a4,a4,4092
|
||||
;; ule a7,a0,a4##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a6,0(a2)
|
||||
;; add a6,a6,a0
|
||||
;; sw a1,0(a6)
|
||||
;; j label2
|
||||
;; ugt a7,a0,a4##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a7,0(a2)
|
||||
;; add a7,a7,a0
|
||||
;; sw a1,0(a7)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; lui a4,65536
|
||||
;; addi a4,a4,4092
|
||||
;; ule a7,a0,a4##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a6,0(a1)
|
||||
;; add a6,a6,a0
|
||||
;; lw a0,0(a6)
|
||||
;; j label2
|
||||
;; ugt a7,a0,a4##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a7,0(a1)
|
||||
;; add a7,a7,a0
|
||||
;; lw a0,0(a7)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -41,34 +41,34 @@
|
||||
;; block0:
|
||||
;; lui a6,65535
|
||||
;; addi a6,a6,4092
|
||||
;; ule t4,a0,a6##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t3,0(a2)
|
||||
;; add t3,t3,a0
|
||||
;; lui a7,1
|
||||
;; add t4,t3,a7
|
||||
;; sw a1,0(t4)
|
||||
;; j label2
|
||||
;; ugt t4,a0,a6##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t4,0(a2)
|
||||
;; add t4,t4,a0
|
||||
;; lui t3,1
|
||||
;; add t0,t4,t3
|
||||
;; sw a1,0(t0)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; lui a6,65535
|
||||
;; addi a6,a6,4092
|
||||
;; ule t4,a0,a6##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t3,0(a1)
|
||||
;; add t3,t3,a0
|
||||
;; lui a7,1
|
||||
;; add t4,t3,a7
|
||||
;; lw a0,0(t4)
|
||||
;; j label2
|
||||
;; ugt t4,a0,a6##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t4,0(a1)
|
||||
;; add t4,t4,a0
|
||||
;; lui t3,1
|
||||
;; add t0,t4,t3
|
||||
;; lw a0,0(t0)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -41,30 +41,30 @@
|
||||
;; block0:
|
||||
;; lui a4,65536
|
||||
;; addi a4,a4,4095
|
||||
;; ule a7,a0,a4##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a6,0(a2)
|
||||
;; add a6,a6,a0
|
||||
;; sb a1,0(a6)
|
||||
;; j label2
|
||||
;; ugt a7,a0,a4##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a7,0(a2)
|
||||
;; add a7,a7,a0
|
||||
;; sb a1,0(a7)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; lui a4,65536
|
||||
;; addi a4,a4,4095
|
||||
;; ule a7,a0,a4##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld a6,0(a1)
|
||||
;; add a6,a6,a0
|
||||
;; lbu a0,0(a6)
|
||||
;; j label2
|
||||
;; ugt a7,a0,a4##ty=i64
|
||||
;; bne a7,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld a7,0(a1)
|
||||
;; add a7,a7,a0
|
||||
;; lbu a0,0(a7)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -41,34 +41,34 @@
|
||||
;; block0:
|
||||
;; lui a6,65535
|
||||
;; addi a6,a6,4095
|
||||
;; ule t4,a0,a6##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t3,0(a2)
|
||||
;; add t3,t3,a0
|
||||
;; lui a7,1
|
||||
;; add t4,t3,a7
|
||||
;; sb a1,0(t4)
|
||||
;; j label2
|
||||
;; ugt t4,a0,a6##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t4,0(a2)
|
||||
;; add t4,t4,a0
|
||||
;; lui t3,1
|
||||
;; add t0,t4,t3
|
||||
;; sb a1,0(t0)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
;;
|
||||
;; function u0:1:
|
||||
;; block0:
|
||||
;; lui a6,65535
|
||||
;; addi a6,a6,4095
|
||||
;; ule t4,a0,a6##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label3)
|
||||
;; block1:
|
||||
;; ld t3,0(a1)
|
||||
;; add t3,t3,a0
|
||||
;; lui a7,1
|
||||
;; add t4,t3,a7
|
||||
;; lbu a0,0(t4)
|
||||
;; j label2
|
||||
;; ugt t4,a0,a6##ty=i64
|
||||
;; bne t4,zero,taken(label1),not_taken(label2)
|
||||
;; block2:
|
||||
;; ret
|
||||
;; ld t4,0(a1)
|
||||
;; add t4,t4,a0
|
||||
;; lui t3,1
|
||||
;; add t0,t4,t3
|
||||
;; lbu a0,0(t0)
|
||||
;; j label3
|
||||
;; block3:
|
||||
;; udf##trap_code=heap_oob
|
||||
;; ret
|
||||
;; block1:
|
||||
;; udf##trap_code=heap_oob
|
||||
|
||||
@@ -16,8 +16,7 @@ block0(v0: i64, v1: i64):
|
||||
function %f(i64, i64) -> i64 {
|
||||
block0(v0: i64, v1: i64):
|
||||
v2 = icmp eq v0, v1
|
||||
brnz v2, block1
|
||||
jump block2
|
||||
brif v2, block1, block2
|
||||
|
||||
block1:
|
||||
v4 = iconst.i64 1
|
||||
@@ -41,8 +40,7 @@ block2:
|
||||
function %f(i64, i64) -> i64 {
|
||||
block0(v0: i64, v1: i64):
|
||||
v2 = icmp eq v0, v1
|
||||
brnz v2, block1
|
||||
jump block1
|
||||
brif v2, block1, block1
|
||||
|
||||
block1:
|
||||
v4 = iconst.i64 1
|
||||
|
||||
@@ -51,8 +51,7 @@ function %f4(r64, r64) -> r64, r64, r64 {
|
||||
block0(v0: r64, v1: r64):
|
||||
v2 = call fn0(v0)
|
||||
stack_store.r64 v0, ss0
|
||||
brz v2, block1(v1, v0)
|
||||
jump block2(v0, v1)
|
||||
brif v2, block2(v0, v1), block1(v1, v0)
|
||||
|
||||
block1(v3: r64, v4: r64):
|
||||
jump block3(v3, v4)
|
||||
@@ -78,18 +77,18 @@ block3(v7: r64, v8: r64):
|
||||
; stg %r4, 0(%r5)
|
||||
; lbr %r2, %r2
|
||||
; chi %r2, 0
|
||||
; jgnlh label1 ; jg label3
|
||||
; jglh label1 ; jg label3
|
||||
; block1:
|
||||
; jg label2
|
||||
; block2:
|
||||
; lgr %r3, %r4
|
||||
; lg %r2, 176(%r15)
|
||||
; lgr %r2, %r4
|
||||
; lg %r3, 176(%r15)
|
||||
; jg label5
|
||||
; block3:
|
||||
; jg label4
|
||||
; block4:
|
||||
; lgr %r2, %r4
|
||||
; lg %r3, 176(%r15)
|
||||
; lgr %r3, %r4
|
||||
; lg %r2, 176(%r15)
|
||||
; jg label5
|
||||
; block5:
|
||||
; la %r4, 160(%r15)
|
||||
|
||||
@@ -47,10 +47,10 @@ block0(v0: i64):
|
||||
|
||||
; block0:
|
||||
; clgfi %r2, 42
|
||||
; jgne label1 ; jg label2
|
||||
; block1:
|
||||
; br %r14
|
||||
; jge label1 ; jg label2
|
||||
; block2:
|
||||
; br %r14
|
||||
; block1:
|
||||
; trap
|
||||
|
||||
function %resumable_trapnz(i64) {
|
||||
@@ -63,10 +63,10 @@ block0(v0: i64):
|
||||
|
||||
; block0:
|
||||
; clgfi %r2, 42
|
||||
; jgne label1 ; jg label2
|
||||
; block1:
|
||||
; br %r14
|
||||
; jge label1 ; jg label2
|
||||
; block2:
|
||||
; br %r14
|
||||
; block1:
|
||||
; trap
|
||||
|
||||
function %h() {
|
||||
|
||||
@@ -47,14 +47,14 @@
|
||||
;; lghi %r2, -4
|
||||
;; ag %r2, 8(%r4)
|
||||
;; clgr %r5, %r2
|
||||
;; jgnh label1 ; jg label3
|
||||
;; block1:
|
||||
;; jgh label1 ; jg label2
|
||||
;; block2:
|
||||
;; lg %r4, 0(%r4)
|
||||
;; strv %r3, 0(%r5,%r4)
|
||||
;; jg label2
|
||||
;; block2:
|
||||
;; br %r14
|
||||
;; jg label3
|
||||
;; block3:
|
||||
;; br %r14
|
||||
;; block1:
|
||||
;; trap
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -65,12 +65,12 @@
|
||||
;; lghi %r2, -4
|
||||
;; ag %r2, 8(%r3)
|
||||
;; clgr %r5, %r2
|
||||
;; jgnh label1 ; jg label3
|
||||
;; block1:
|
||||
;; lg %r3, 0(%r3)
|
||||
;; lrv %r2, 0(%r5,%r3)
|
||||
;; jg label2
|
||||
;; jgh label1 ; jg label2
|
||||
;; block2:
|
||||
;; br %r14
|
||||
;; lg %r4, 0(%r3)
|
||||
;; lrv %r2, 0(%r5,%r4)
|
||||
;; jg label3
|
||||
;; block3:
|
||||
;; trap
|
||||
;; br %r14
|
||||
;; block1:
|
||||
;; trap
|
||||
|
||||
@@ -48,15 +48,15 @@
|
||||
;; lghi %r2, -4100
|
||||
;; ag %r2, 8(%r5)
|
||||
;; clgr %r4, %r2
|
||||
;; jgnh label1 ; jg label3
|
||||
;; block1:
|
||||
;; jgh label1 ; jg label2
|
||||
;; block2:
|
||||
;; ag %r4, 0(%r5)
|
||||
;; lghi %r5, 4096
|
||||
;; strv %r3, 0(%r5,%r4)
|
||||
;; jg label2
|
||||
;; block2:
|
||||
;; br %r14
|
||||
;; jg label3
|
||||
;; block3:
|
||||
;; br %r14
|
||||
;; block1:
|
||||
;; trap
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -69,13 +69,13 @@
|
||||
;; lgr %r5, %r4
|
||||
;; ag %r2, 8(%r5)
|
||||
;; clgr %r3, %r2
|
||||
;; jgnh label1 ; jg label3
|
||||
;; block1:
|
||||
;; jgh label1 ; jg label2
|
||||
;; block2:
|
||||
;; ag %r3, 0(%r5)
|
||||
;; lghi %r4, 4096
|
||||
;; lrv %r2, 0(%r4,%r3)
|
||||
;; jg label2
|
||||
;; block2:
|
||||
;; br %r14
|
||||
;; jg label3
|
||||
;; block3:
|
||||
;; trap
|
||||
;; br %r14
|
||||
;; block1:
|
||||
;; trap
|
||||
|
||||
@@ -62,16 +62,16 @@
|
||||
;; lgr %r5, %r7
|
||||
;; lg %r7, 8(%r5)
|
||||
;; clgr %r2, %r7
|
||||
;; jgnh label1 ; jg label3
|
||||
;; block1:
|
||||
;; ag %r4, 0(%r5)
|
||||
;; llilh %r2, 65535
|
||||
;; strv %r3, 0(%r2,%r4)
|
||||
;; jg label2
|
||||
;; jgh label1 ; jg label2
|
||||
;; block2:
|
||||
;; ag %r4, 0(%r5)
|
||||
;; llilh %r5, 65535
|
||||
;; strv %r3, 0(%r5,%r4)
|
||||
;; jg label3
|
||||
;; block3:
|
||||
;; lmg %r7, %r15, 56(%r15)
|
||||
;; br %r14
|
||||
;; block3:
|
||||
;; block1:
|
||||
;; trap
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -85,13 +85,13 @@
|
||||
;; jle 6 ; trap
|
||||
;; lg %r2, 8(%r4)
|
||||
;; clgr %r5, %r2
|
||||
;; jgnh label1 ; jg label3
|
||||
;; block1:
|
||||
;; ag %r3, 0(%r4)
|
||||
;; llilh %r5, 65535
|
||||
;; lrv %r2, 0(%r5,%r3)
|
||||
;; jg label2
|
||||
;; jgh label1 ; jg label2
|
||||
;; block2:
|
||||
;; br %r14
|
||||
;; ag %r3, 0(%r4)
|
||||
;; llilh %r2, 65535
|
||||
;; lrv %r2, 0(%r2,%r3)
|
||||
;; jg label3
|
||||
;; block3:
|
||||
;; trap
|
||||
;; br %r14
|
||||
;; block1:
|
||||
;; trap
|
||||
|
||||
@@ -48,14 +48,14 @@
|
||||
;; lgr %r2, %r5
|
||||
;; lg %r5, 8(%r2)
|
||||
;; clgr %r4, %r5
|
||||
;; jgnhe label1 ; jg label3
|
||||
;; block1:
|
||||
;; lg %r2, 0(%r2)
|
||||
;; stc %r3, 0(%r4,%r2)
|
||||
;; jg label2
|
||||
;; jghe label1 ; jg label2
|
||||
;; block2:
|
||||
;; br %r14
|
||||
;; lg %r5, 0(%r2)
|
||||
;; stc %r3, 0(%r4,%r5)
|
||||
;; jg label3
|
||||
;; block3:
|
||||
;; br %r14
|
||||
;; block1:
|
||||
;; trap
|
||||
;;
|
||||
;; function u0:1:
|
||||
@@ -65,12 +65,12 @@
|
||||
;; llgfr %r4, %r2
|
||||
;; lg %r5, 8(%r3)
|
||||
;; clgr %r4, %r5
|
||||
;; jgnhe label1 ; jg label3
|
||||
;; block1:
|
||||
;; lg %r2, 0(%r3)
|
||||
;; llc %r2, 0(%r4,%r2)
|
||||
;; jg label2
|
||||
;; jghe label1 ; jg label2
|
||||
;; block2:
|
||||
;; br %r14
|
||||
;; lg %r3, 0(%r3)
|
||||
;; llc %r2, 0(%r4,%r3)
|
||||
;; jg label3
|
||||
;; block3:
|
||||
;; trap
|
||||
;; br %r14
|
||||
;; block1:
|
||||
;; trap
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user