Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/amd64/efirt_support.S
| Show First 20 Lines • Show All 73 Lines • ▼ Show 20 Lines | ENTRY(efi_rt_arch_call) | ||||
| movq EC_ARG4(%rdi), %r9 | movq EC_ARG4(%rdi), %r9 | ||||
| decl %ebx | decl %ebx | ||||
| jz 1f | jz 1f | ||||
| movq EC_ARG5(%rdi), %rax | movq EC_ARG5(%rdi), %rax | ||||
| movq %rax, 4*8(%rsp) | movq %rax, 4*8(%rsp) | ||||
| decl %ebx | decl %ebx | ||||
| jz 1f | jz 1f | ||||
| movq $efi_rt_panic_str, %rdi | movq $efi_rt_panic_str, %rdi | ||||
| call panic | call efi_panic | ||||
| 1: movq EC_FPTR(%rdi), %rax | 1: movq EC_FPTR(%rdi), %rax | ||||
| movq $efi_rt_fault, PCB_ONFAULT(%rsi) | movq $efi_rt_fault, PCB_ONFAULT(%rsi) | ||||
| callq *%rax | callq *%rax | ||||
| movq PCPU(CURTHREAD), %rbx | movq PCPU(CURTHREAD), %rbx | ||||
| movq TD_MD+MD_EFIRT_TMP(%rbx), %rdi | movq TD_MD+MD_EFIRT_TMP(%rbx), %rdi | ||||
| movq %rax, EC_EFI_STATUS(%rdi) | movq %rax, EC_EFI_STATUS(%rdi) | ||||
| movq PCPU(CURPCB), %rsi | movq PCPU(CURPCB), %rsi | ||||
| Show All 29 Lines | |||||