]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - ArmPkg/Library/CompilerIntrinsicsLib/Arm/switch32.S
ArmPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / ArmPkg / Library / CompilerIntrinsicsLib / Arm / switch32.S
... / ...
CommitLineData
1#/** @file\r
2# Compiler intrinsic for ARM compiler\r
3#\r
4# Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
5# SPDX-License-Identifier: BSD-2-Clause-Patent\r
6#\r
7#**/\r
8#\r
9\r
10#include <AsmMacroIoLib.h>\r
11\r
12.syntax unified\r
13\r
14ASM_FUNC(__switch32)\r
15 ldr ip, [lr, #-1]\r
16 cmp r0, ip\r
17 add r0, lr, r0, lsl #2\r
18 ldrcc r0, [r0, #3]\r
19 add ip, lr, ip, lsl #2\r
20 ldrcs r0, [ip, #3]\r
21 add ip, lr, r0\r
22 bx ip\r
23\r