]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Library/BaseMemoryLibOptDxe/Arm/CompareGuid.S
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / MdePkg / Library / BaseMemoryLibOptDxe / Arm / CompareGuid.S
1 //
2 // Copyright (c) 2016, Linaro Limited
3 // All rights reserved.
4 // SPDX-License-Identifier: BSD-2-Clause-Patent
5 //
6
7 .text
8 .thumb
9 .syntax unified
10 .align 5
11 .type ASM_PFX(InternalMemCompareGuid), %function
12 ASM_GLOBAL ASM_PFX(InternalMemCompareGuid)
13 ASM_PFX(InternalMemCompareGuid):
14 push {r4, lr}
15 ldr r2, [r0]
16 ldr r3, [r0, #4]
17 ldr r4, [r0, #8]
18 ldr r0, [r0, #12]
19 cbz r1, 1f
20 ldr ip, [r1]
21 ldr lr, [r1, #4]
22 cmp r2, ip
23 it eq
24 cmpeq.n r3, lr
25 beq 0f
26 movs r0, #0
27 pop {r4, pc}
28
29 0: ldr r2, [r1, #8]
30 ldr r3, [r1, #12]
31 cmp r4, r2
32 it eq
33 cmpeq.n r0, r3
34 bne 2f
35 movs r0, #1
36 pop {r4, pc}
37
38 1: orrs r2, r2, r3
39 orrs r4, r4, r0
40 movs r0, #1
41 orrs r2, r2, r4
42 2: it ne
43 movne.n r0, #0
44 pop {r4, pc}