diff options
Diffstat (limited to 'ArmPkg/Library/SemihostLib/Arm/GccSemihost.S')
-rwxr-xr-x | ArmPkg/Library/SemihostLib/Arm/GccSemihost.S | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/ArmPkg/Library/SemihostLib/Arm/GccSemihost.S b/ArmPkg/Library/SemihostLib/Arm/GccSemihost.S new file mode 100755 index 0000000000..aa8b16ad51 --- /dev/null +++ b/ArmPkg/Library/SemihostLib/Arm/GccSemihost.S @@ -0,0 +1,35 @@ +#------------------------------------------------------------------------------ +# +# Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR> +# +# This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +#------------------------------------------------------------------------------ + +.text +.align 2 + +.globl ASM_PFX(GccSemihostCall) +INTERWORK_FUNC(GccSemihostCall) + +/* + Semihosting operation request mechanism + + SVC 0x123456 in ARM state (for all architectures) + SVC 0xAB in Thumb state (excluding ARMv7-M) + BKPT 0xAB for ARMv7-M (Thumb-2 only) + + R0 - operation type + R1 - block containing all other parametes + */ +ASM_PFX(GccSemihostCall): + svc #0x123456 + bx lr + + |