x64: Migrate trapif and trapff to ISLE (#4545)
https://github.com/bytecodealliance/wasmtime/pull/4545
This commit is contained in:
@@ -208,37 +208,41 @@ block0(v0: i128, v1: i128):
|
||||
; setnz %r8b
|
||||
; movq %r8, rsp(0 + virtual offset)
|
||||
; cmpq %rcx, %rsi
|
||||
; setl %r8b
|
||||
; setz %r10b
|
||||
; setl %r10b
|
||||
; setz %r11b
|
||||
; cmpq %rdx, %rdi
|
||||
; setb %r11b
|
||||
; andq %r10, %r11, %r10
|
||||
; orq %r8, %r10, %r8
|
||||
; andq %r8, $1, %r8
|
||||
; setb %r9b
|
||||
; andq %r11, %r9, %r11
|
||||
; orq %r10, %r11, %r10
|
||||
; testq $1, %r10
|
||||
; setnz %r9b
|
||||
; cmpq %rcx, %rsi
|
||||
; setl %r10b
|
||||
; setz %r11b
|
||||
; cmpq %rdx, %rdi
|
||||
; setbe %r13b
|
||||
; andq %r11, %r13, %r11
|
||||
; setbe %r14b
|
||||
; andq %r11, %r14, %r11
|
||||
; orq %r10, %r11, %r10
|
||||
; andq %r10, $1, %r10
|
||||
; testq $1, %r10
|
||||
; setnz %r10b
|
||||
; cmpq %rcx, %rsi
|
||||
; setnle %r11b
|
||||
; setz %r14b
|
||||
; cmpq %rdx, %rdi
|
||||
; setnbe %r15b
|
||||
; andq %r14, %r15, %r14
|
||||
; orq %r11, %r14, %r11
|
||||
; andq %r11, $1, %r11
|
||||
; cmpq %rcx, %rsi
|
||||
; setnle %r12b
|
||||
; setz %bl
|
||||
; cmpq %rdx, %rdi
|
||||
; setnb %r13b
|
||||
; andq %rbx, %r13, %rbx
|
||||
; orq %r12, %rbx, %r12
|
||||
; andq %r12, $1, %r12
|
||||
; setnbe %r12b
|
||||
; andq %rbx, %r12, %rbx
|
||||
; orq %r11, %rbx, %r11
|
||||
; testq $1, %r11
|
||||
; setnz %r11b
|
||||
; cmpq %rcx, %rsi
|
||||
; setnle %r14b
|
||||
; setz %r15b
|
||||
; cmpq %rdx, %rdi
|
||||
; setnb %bl
|
||||
; andq %r15, %rbx, %r15
|
||||
; orq %r14, %r15, %r14
|
||||
; testq $1, %r14
|
||||
; setnz %r12b
|
||||
; cmpq %rcx, %rsi
|
||||
; setb %r13b
|
||||
; setz %r14b
|
||||
@@ -246,41 +250,45 @@ block0(v0: i128, v1: i128):
|
||||
; setb %r15b
|
||||
; andq %r14, %r15, %r14
|
||||
; orq %r13, %r14, %r13
|
||||
; andq %r13, $1, %r13
|
||||
; testq $1, %r13
|
||||
; setnz %r13b
|
||||
; cmpq %rcx, %rsi
|
||||
; setb %bl
|
||||
; setz %r15b
|
||||
; setb %r15b
|
||||
; setz %bl
|
||||
; cmpq %rdx, %rdi
|
||||
; setbe %r14b
|
||||
; andq %r15, %r14, %r15
|
||||
; orq %rbx, %r15, %rbx
|
||||
; andq %rbx, $1, %rbx
|
||||
; andq %rbx, %r14, %rbx
|
||||
; orq %r15, %rbx, %r15
|
||||
; testq $1, %r15
|
||||
; setnz %r14b
|
||||
; cmpq %rcx, %rsi
|
||||
; setnbe %r14b
|
||||
; setz %r15b
|
||||
; setnbe %r15b
|
||||
; setz %bl
|
||||
; cmpq %rdx, %rdi
|
||||
; setnbe %r9b
|
||||
; andq %r15, %r9, %r15
|
||||
; orq %r14, %r15, %r14
|
||||
; andq %r14, $1, %r14
|
||||
; setnbe %r8b
|
||||
; andq %rbx, %r8, %rbx
|
||||
; orq %r15, %rbx, %r15
|
||||
; testq $1, %r15
|
||||
; setnz %r15b
|
||||
; cmpq %rcx, %rsi
|
||||
; setnbe %sil
|
||||
; setz %cl
|
||||
; setnbe %cl
|
||||
; setz %sil
|
||||
; cmpq %rdx, %rdi
|
||||
; setnb %dl
|
||||
; andq %rcx, %rdx, %rcx
|
||||
; orq %rsi, %rcx, %rsi
|
||||
; andq %rsi, $1, %rsi
|
||||
; movq rsp(0 + virtual offset), %r9
|
||||
; andl %eax, %r9d, %eax
|
||||
; andl %r8d, %r10d, %r8d
|
||||
; andq %rsi, %rdx, %rsi
|
||||
; orq %rcx, %rsi, %rcx
|
||||
; testq $1, %rcx
|
||||
; setnz %sil
|
||||
; movq rsp(0 + virtual offset), %rdx
|
||||
; andl %eax, %edx, %eax
|
||||
; andl %r9d, %r10d, %r9d
|
||||
; andl %r11d, %r12d, %r11d
|
||||
; andl %r13d, %ebx, %r13d
|
||||
; andl %r14d, %esi, %r14d
|
||||
; andl %eax, %r8d, %eax
|
||||
; andl %r13d, %r14d, %r13d
|
||||
; andl %r15d, %esi, %r15d
|
||||
; andl %eax, %r9d, %eax
|
||||
; andl %r11d, %r13d, %r11d
|
||||
; andl %eax, %r11d, %eax
|
||||
; andl %eax, %r14d, %eax
|
||||
; andl %eax, %r15d, %eax
|
||||
; movq 16(%rsp), %rbx
|
||||
; movq 24(%rsp), %r12
|
||||
; movq 32(%rsp), %r13
|
||||
|
||||
30
cranelift/filetests/filetests/isa/x64/traps.clif
Normal file
30
cranelift/filetests/filetests/isa/x64/traps.clif
Normal file
@@ -0,0 +1,30 @@
|
||||
test compile precise-output
|
||||
target x86_64
|
||||
|
||||
function %trap() {
|
||||
block0:
|
||||
trap user0
|
||||
}
|
||||
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; ud2 user0
|
||||
|
||||
|
||||
function %trap_iadd_ifcout(i64, i64) {
|
||||
block0(v0: i64, v1: i64):
|
||||
v2, v3 = iadd_ifcout v0, v1
|
||||
trapif of v3, user0
|
||||
return
|
||||
}
|
||||
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; addq %rdi, %rsi, %rdi
|
||||
; jno ; ud2 user0 ;
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
; ret
|
||||
|
||||
Reference in New Issue
Block a user