Add docs and tests for copy_special instruction. Fixes encoding issue that tests revealed.

This commit is contained in:
Tyler McMullen
2017-12-01 18:01:00 -08:00
committed by Jakob Stoklund Olesen
parent 4eb9a54096
commit 3b1b33e0ac
6 changed files with 41 additions and 4 deletions

View File

@@ -140,6 +140,13 @@ ebb0:
; asm: movl %ecx, %esi
[-,%rsi] v81 = copy v1 ; bin: 89 ce
; Copy Special
; asm: movl %esp, %ebp
copy_special %rsp -> %rbp ; bin: 89 e5
; asm: movl %ebp, %esp
copy_special %rbp -> %rsp ; bin: 89 ec
; Load/Store instructions.
; Register indirect addressing with no displacement.

View File

@@ -155,6 +155,17 @@ ebb0:
; asm: movq %rcx, %r10
[-,%r10] v112 = copy v1 ; bin: 49 89 ca
; Copy Special
; asm: movq %rsp, %rbp
copy_special %rsp -> %rbp ; bin: 48 89 e5
; asm: movq %r10, %r11
copy_special %r10 -> %r11 ; bin: 4d 89 d3
; asm: movq %rsp, %r11
copy_special %rsp -> %r11 ; bin: 49 89 e3
; asm: movq %r10, %rsp
copy_special %r10 -> %rsp ; bin: 4c 89 d4
; Load/Store instructions.
; Register indirect addressing with no displacement.

View File

@@ -1,6 +1,6 @@
test legalizer
test binemit
set is_64bit=1
set is_64bit
set is_compressed
isa intel haswell
function %foo(f64 [%xmm0], i64 fp [%rbp], i64 csr [%rbx], i64 csr [%r12]) -> i64 csr [%r12], i64 csr [%rbx], i64 fp [%rbp] {

View File

@@ -186,3 +186,17 @@ ebb0(v1: i32):
; nextln: regfill $v1, $ss0 -> %10
; nextln: return
; nextln: }
; Register copies.
function %copy_special() {
ebb0:
copy_special %10 -> %20
copy_special %20 -> %10
return
}
; sameln: function %copy_special() native {
; nextln: ebb0:
; nextln: copy_special %10 -> %20
; nextln: copy_special %20 -> %10
; nextln: return
; nextln: }