staging: rtl8192u: remove redundant assignment to pointer crypt
[linux/fpc-iii.git] / arch / arm64 / kernel / efi-rt-wrapper.S
blob3fc71106cb2b45eb0dd7091c7da824856bae4ea9
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Copyright (C) 2018 Linaro Ltd <ard.biesheuvel@linaro.org>
4  */
6 #include <linux/linkage.h>
8 ENTRY(__efi_rt_asm_wrapper)
9         stp     x29, x30, [sp, #-32]!
10         mov     x29, sp
12         /*
13          * Register x18 is designated as the 'platform' register by the AAPCS,
14          * which means firmware running at the same exception level as the OS
15          * (such as UEFI) should never touch it.
16          */
17         stp     x1, x18, [sp, #16]
19         /*
20          * We are lucky enough that no EFI runtime services take more than
21          * 5 arguments, so all are passed in registers rather than via the
22          * stack.
23          */
24         mov     x8, x0
25         mov     x0, x2
26         mov     x1, x3
27         mov     x2, x4
28         mov     x3, x5
29         mov     x4, x6
30         blr     x8
32         ldp     x1, x2, [sp, #16]
33         cmp     x2, x18
34         ldp     x29, x30, [sp], #32
35         b.ne    0f
36         ret
37 0:      b       efi_handle_corrupted_x18        // tail call
38 ENDPROC(__efi_rt_asm_wrapper)