]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPlatformPkg/Library/ArmSmcLib/ArmSmc.asm
ArmPkg/DebugPeCoffExtraActionLib: Checked the ImageContext->PdbPointer is not null
[mirror_edk2.git] / ArmPlatformPkg / Library / ArmSmcLib / ArmSmc.asm
CommitLineData
eac42a51 1//\r
2// Copyright (c) 2012, ARM Limited. All rights reserved.\r
3//\r
4// This program and the accompanying materials\r
5// are licensed and made available under the terms and conditions of the BSD License\r
6// which accompanies this distribution. The full text of the license may be found at\r
7// http://opensource.org/licenses/bsd-license.php\r
8//\r
9// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11//\r
12//\r
13\r
14 EXPORT ArmCallSmc\r
15 EXPORT ArmCallSmcArg1\r
16 EXPORT ArmCallSmcArg2\r
17 EXPORT ArmCallSmcArg3\r
18\r
19 AREA ArmSmc, CODE, READONLY\r
20\r
21ArmCallSmc\r
22 push {r1}\r
23 mov r1, r0\r
24 ldr r0,[r1]\r
25 smc #0\r
26 str r0,[r1]\r
27 pop {r1}\r
28 blx lr\r
29\r
30// Arg1 in R1\r
31ArmCallSmcArg1\r
32 push {r2-r3}\r
33 mov r2, r0\r
34 mov r3, r1\r
35 ldr r0,[r2]\r
36 ldr r1,[r3]\r
37 smc #0\r
38 str r0,[r2]\r
39 str r1,[r3]\r
40 pop {r2-r3}\r
41 blx lr\r
42\r
43ArmCallSmcArg2\r
44 push {r3-r5}\r
45 mov r3, r0\r
46 mov r4, r1\r
47 mov r5, r2\r
48 ldr r0,[r3]\r
49 ldr r1,[r4]\r
50 ldr r2,[r5]\r
51 smc #0\r
52 str r0,[r3]\r
53 str r1,[r4]\r
54 str r2,[r5]\r
55 pop {r3-r5}\r
56 blx lr\r
57\r
58ArmCallSmcArg3\r
59 push {r4-r7}\r
60 mov r4, r0\r
61 mov r5, r1\r
62 mov r6, r2\r
63 mov r7, r3\r
64 ldr r0,[r4]\r
65 ldr r1,[r5]\r
66 ldr r2,[r6]\r
67 ldr r3,[r7]\r
68 smc #0\r
69 str r0,[r4]\r
70 str r1,[r5]\r
71 str r2,[r6]\r
72 str r3,[r7]\r
73 pop {r4-r7}\r
74 blx lr\r
75\r
76 END\r