Use BB-like EBB in filetests/isa/x86/*.clif

This commit is contained in:
Nicolas B. Pierron
2019-06-28 17:05:45 +02:00
committed by Nicolas B. Pierron
parent 77eb34e20f
commit 7b36cb58a0
7 changed files with 177 additions and 6 deletions

View File

@@ -481,21 +481,44 @@ ebb0(v0: f32 [%xmm0]):
ebb1:
; asm: jnp ebb1
brff ord v1, ebb1 ; bin: 7b fe
jump ebb2
ebb2:
; asm: jp ebb1
brff uno v1, ebb1 ; bin: 7a fc
jump ebb3
ebb3:
; asm: jne ebb1
brff one v1, ebb1 ; bin: 75 fa
jump ebb4
ebb4:
; asm: je ebb1
brff ueq v1, ebb1 ; bin: 74 f8
jump ebb5
ebb5:
; asm: ja ebb1
brff gt v1, ebb1 ; bin: 77 f6
jump ebb6
ebb6:
; asm: jae ebb1
brff ge v1, ebb1 ; bin: 73 f4
jump ebb7
ebb7:
; asm: jb ebb1
brff ult v1, ebb1 ; bin: 72 f2
jump ebb8
ebb8:
; asm: jbe ebb1
brff ule v1, ebb1 ; bin: 76 f0
jump ebb9
ebb9:
; asm: jp .+4; ud2
trapff ord v1, user0 ; bin: 7a 02 user0 0f 0b
; asm: jnp .+4; ud2

View File

@@ -472,12 +472,21 @@ ebb0:
; asm: testl %ecx, %ecx
; asm: je ebb1
brz v1, ebb1 ; bin: 85 c9 74 0e
fallthrough ebb3
ebb3:
; asm: testl %esi, %esi
; asm: je ebb1
brz v2, ebb1 ; bin: 85 f6 74 0a
fallthrough ebb4
ebb4:
; asm: testl %ecx, %ecx
; asm: jne ebb1
brnz v1, ebb1 ; bin: 85 c9 75 06
fallthrough ebb5
ebb5:
; asm: testl %esi, %esi
; asm: jne ebb1
brnz v2, ebb1 ; bin: 85 f6 75 02
@@ -506,16 +515,27 @@ ebb0:
; asm: testl $0xff, %edi
; asm: je ebb1
brz v3, ebb1 ; bin: f7 c7 000000ff 0f 84 00000015
fallthrough ebb2
ebb2:
; asm: testb %bl, %bl
; asm: je ebb1
brz v4, ebb1 ; bin: 84 db 74 11
fallthrough ebb3
ebb3:
; asm: testl $0xff, %edi
; asm: jne ebb1
brnz v3, ebb1 ; bin: f7 c7 000000ff 0f 85 00000005
fallthrough ebb4
ebb4:
; asm: testb %bl, %bl
; asm: jne ebb1
brnz v4, ebb1 ; bin: 84 db 75 01
fallthrough ebb5
ebb5:
return
ebb1:
@@ -537,24 +557,54 @@ ebb1:
; asm: je ebb1
brif eq v11, ebb1 ; bin: 74 fa
jump ebb2
ebb2:
; asm: jne ebb1
brif ne v11, ebb1 ; bin: 75 f8
jump ebb3
ebb3:
; asm: jl ebb1
brif slt v11, ebb1 ; bin: 7c f6
jump ebb4
ebb4:
; asm: jge ebb1
brif sge v11, ebb1 ; bin: 7d f4
jump ebb5
ebb5:
; asm: jg ebb1
brif sgt v11, ebb1 ; bin: 7f f2
jump ebb6
ebb6:
; asm: jle ebb1
brif sle v11, ebb1 ; bin: 7e f0
jump ebb7
ebb7:
; asm: jb ebb1
brif ult v11, ebb1 ; bin: 72 ee
jump ebb8
ebb8:
; asm: jae ebb1
brif uge v11, ebb1 ; bin: 73 ec
jump ebb9
ebb9:
; asm: ja ebb1
brif ugt v11, ebb1 ; bin: 77 ea
jump ebb10
ebb10:
; asm: jbe ebb1
brif ule v11, ebb1 ; bin: 76 e8
jump ebb11
ebb11:
; asm: sete %bl
[-,%rbx] v20 = trueif eq v11 ; bin: 0f 94 c3

View File

@@ -542,21 +542,44 @@ ebb0(v0: f32 [%xmm0]):
ebb1:
; asm: jnp ebb1
brff ord v1, ebb1 ; bin: 7b fe
jump ebb2
ebb2:
; asm: jp ebb1
brff uno v1, ebb1 ; bin: 7a fc
jump ebb3
ebb3:
; asm: jne ebb1
brff one v1, ebb1 ; bin: 75 fa
jump ebb4
ebb4:
; asm: je ebb1
brff ueq v1, ebb1 ; bin: 74 f8
jump ebb5
ebb5:
; asm: ja ebb1
brff gt v1, ebb1 ; bin: 77 f6
jump ebb6
ebb6:
; asm: jae ebb1
brff ge v1, ebb1 ; bin: 73 f4
jump ebb7
ebb7:
; asm: jb ebb1
brff ult v1, ebb1 ; bin: 72 f2
jump ebb8
ebb8:
; asm: jbe ebb1
brff ule v1, ebb1 ; bin: 76 f0
jump ebb9
ebb9:
; asm: jp .+4; ud2
trapff ord v1, user0 ; bin: 7a 02 user0 0f 0b
; asm: jnp .+4; ud2

View File

@@ -690,18 +690,33 @@ ebb0:
; asm: testq %rcx, %rcx
; asm: je ebb1
brz v1, ebb1 ; bin: 48 85 c9 74 1b
fallthrough ebb3
ebb3:
; asm: testq %rsi, %rsi
; asm: je ebb1
brz v2, ebb1 ; bin: 48 85 f6 74 16
fallthrough ebb4
ebb4:
; asm: testq %r10, %r10
; asm: je ebb1
brz v3, ebb1 ; bin: 4d 85 d2 74 11
fallthrough ebb5
ebb5:
; asm: testq %rcx, %rcx
; asm: jne ebb1
brnz v1, ebb1 ; bin: 48 85 c9 75 0c
fallthrough ebb6
ebb6:
; asm: testq %rsi, %rsi
; asm: jne ebb1
brnz v2, ebb1 ; bin: 48 85 f6 75 07
fallthrough ebb7
ebb7:
; asm: testq %r10, %r10
; asm: jne ebb1
brnz v3, ebb1 ; bin: 4d 85 d2 75 02
@@ -733,24 +748,54 @@ ebb1:
; asm: je ebb1
brif eq v11, ebb1 ; bin: 74 f8
jump ebb2
ebb2:
; asm: jne ebb1
brif ne v11, ebb1 ; bin: 75 f6
jump ebb3
ebb3:
; asm: jl ebb1
brif slt v11, ebb1 ; bin: 7c f4
jump ebb4
ebb4:
; asm: jge ebb1
brif sge v11, ebb1 ; bin: 7d f2
jump ebb5
ebb5:
; asm: jg ebb1
brif sgt v11, ebb1 ; bin: 7f f0
jump ebb6
ebb6:
; asm: jle ebb1
brif sle v11, ebb1 ; bin: 7e ee
jump ebb7
ebb7:
; asm: jb ebb1
brif ult v11, ebb1 ; bin: 72 ec
jump ebb8
ebb8:
; asm: jae ebb1
brif uge v11, ebb1 ; bin: 73 ea
jump ebb9
ebb9:
; asm: ja ebb1
brif ugt v11, ebb1 ; bin: 77 e8
jump ebb10
ebb10:
; asm: jbe ebb1
brif ule v11, ebb1 ; bin: 76 e6
jump ebb11
ebb11:
; asm: sete %bl
[-,%rbx] v20 = trueif eq v11 ; bin: 0f 94 c3
@@ -1248,18 +1293,33 @@ ebb0:
; asm: testl %ecx, %ecx
; asm: je ebb1x
brz v1, ebb1 ; bin: 85 c9 74 18
fallthrough ebb3
ebb3:
; asm: testl %esi, %esi
; asm: je ebb1x
brz v2, ebb1 ; bin: 85 f6 74 14
fallthrough ebb4
ebb4:
; asm: testl %r10d, %r10d
; asm: je ebb1x
brz v3, ebb1 ; bin: 45 85 d2 74 0f
fallthrough ebb5
ebb5:
; asm: testl %ecx, %ecx
; asm: jne ebb1x
brnz v1, ebb1 ; bin: 85 c9 75 0b
fallthrough ebb6
ebb6:
; asm: testl %esi, %esi
; asm: jne ebb1x
brnz v2, ebb1 ; bin: 85 f6 75 07
fallthrough ebb7
ebb7:
; asm: testl %r10d, %r10d
; asm: jne ebb1x
brnz v3, ebb1 ; bin: 45 85 d2 75 02

View File

@@ -213,20 +213,23 @@ function %divert(i32) -> i32 system_v {
ebb0(v0: i32):
v2 = iconst.i32 0
v3 = iconst.i32 1
jump ebb3(v0, v3, v2)
jump ebb1(v0, v3, v2)
ebb3(v4: i32, v5: i32, v6: i32):
brz v4, ebb4
ebb1(v4: i32, v5: i32, v6: i32):
brz v4, ebb3
fallthrough ebb2
ebb2:
v7 = iadd v5, v6
v8 = iadd_imm v4, -1
jump ebb3(v8, v7, v5)
jump ebb1(v8, v7, v5)
ebb4:
ebb3:
return v5
}
; check: function %divert
; check: regmove v5, %rcx -> %rbx
; check: regmove.i32 v5, %rcx -> %rbx
; check: [Op1popq#58,%rbx] v15 = x86_pop.i64
; Stack limit checking

View File

@@ -55,6 +55,9 @@ function u0:2691(i32 [%rdi], i32 [%rsi], i64 vmctx [%r14]) -> i64 uext [%rax] ba
@004c [Op1r_id#4081,%rcx] v37 = band_imm v35, 255
[Op1rcmp_ib#7083,%rflags] v97 = ifcmp_imm v37, 26
@0050 [Op1brib#70] brif sge v97, ebb6
@0050 [-] fallthrough ebb10
ebb10:
[Op1umr#89,%rcx] v101 = copy v18
@0054 [Op1jmpb#eb] jump ebb5(v18, v101)
@@ -82,6 +85,9 @@ function u0:2691(i32 [%rdi], i32 [%rsi], i64 vmctx [%r14]) -> i64 uext [%rax] ba
[Op1rcmp_ib#7083,%rflags] v98 = ifcmp_imm v63, 26
@0084 [RexOp1rmov#89] regmove v47, %rdi -> %rbx
@0084 [Op1brib#70] brif sge v98, ebb8
@0084 [-] fallthrough ebb11
ebb11:
[RexOp1umr#89,%rdx] v103 = copy.i32 v29
@0088 [Op1jmpb#eb] jump ebb7(v29, v10, v21, v103)
@@ -99,6 +105,9 @@ function u0:2691(i32 [%rdi], i32 [%rsi], i64 vmctx [%r14]) -> i64 uext [%rax] ba
@0098 [Op2urm_noflags_abcd#4b6,%rbx] v77 = bint.i32 v76
@0099 [RexOp1rr#21,%r10] v78 = band.i32 v50, v77
@009a [RexOp1tjccb#74] brz v78, ebb9
@009a [-] fallthrough ebb12
ebb12:
[RexOp1umr#89,%rcx] v99 = copy v81
[Op1umr#89,%rdx] v100 = copy v79
@00a4 [RexOp1rmov#89] regmove v100, %rdx -> %rdi

View File

@@ -8,6 +8,9 @@ ebb0(v0: i32 [%rdi]):
[Op2seti_abcd#490,%rax] v1 = trueif eq v3
[RexOp2urm_noflags#4b6,%rax] v2 = bint.i32 v1
[Op1brib#70] brif eq v3, ebb1
[-] fallthrough ebb2
ebb2:
[Op1ret#c3] return v2
ebb1: