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:
Trevor Elliott
2023-01-30 12:34:56 -08:00
committed by GitHub
parent 77cf547f41
commit a5698cedf8
247 changed files with 2947 additions and 3754 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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
}

View File

@@ -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

View File

@@ -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: }

View File

@@ -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: }

View File

@@ -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: }

View File

@@ -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: }

View File

@@ -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: }

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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() {

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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() {

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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