Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
test/CodeGen/X86/x86-no_caller_saved_registers-preserve.ll
Show All 17 Lines | |||||
; CHECK-NEXT: .cfi_offset %rdx, -16 | ; CHECK-NEXT: .cfi_offset %rdx, -16 | ||||
; CHECK-NEXT: .Lcfi2: | ; CHECK-NEXT: .Lcfi2: | ||||
; CHECK-NEXT: .cfi_offset %xmm1, -32 | ; CHECK-NEXT: .cfi_offset %xmm1, -32 | ||||
; CHECK-NEXT: #APP | ; CHECK-NEXT: #APP | ||||
; CHECK-NEXT: #NO_APP | ; CHECK-NEXT: #NO_APP | ||||
; CHECK-NEXT: movl $4, %eax | ; CHECK-NEXT: movl $4, %eax | ||||
; CHECK-NEXT: movaps -{{[0-9]+}}(%rsp), %xmm1 # 16-byte Reload | ; CHECK-NEXT: movaps -{{[0-9]+}}(%rsp), %xmm1 # 16-byte Reload | ||||
; CHECK-NEXT: popq %rdx | ; CHECK-NEXT: popq %rdx | ||||
; CHECK-NEXT: .Lcfi3: | |||||
; CHECK-NEXT: .cfi_def_cfa_offset 8 | |||||
; CHECK-NEXT: retq | ; CHECK-NEXT: retq | ||||
call void asm sideeffect "", "~{rax},~{rdx},~{xmm1},~{rdi},~{rsi},~{xmm0}"() | call void asm sideeffect "", "~{rax},~{rdx},~{xmm1},~{rdi},~{rsi},~{xmm0}"() | ||||
ret i32 4 | ret i32 4 | ||||
} | } | ||||
;; Because "bar" has 'no_caller_saved_registers' attribute, function "foo" | ;; Because "bar" has 'no_caller_saved_registers' attribute, function "foo" | ||||
;; doesn't need to preserve registers except for the arguments passed | ;; doesn't need to preserve registers except for the arguments passed | ||||
;; to "bar" (%ESI, %EDI and %XMM0). | ;; to "bar" (%ESI, %EDI and %XMM0). | ||||
Show All 21 Lines |