GCC_ASM_EXPORT() not only exports a symbol as a function, it also emits a .type <xxx>, %function directive, which is used by the ARM linker to decide whether to emit interworking branches. So replace the explicit .global with GCC_ASM_EXPORT(), or the code will not be callable from Thumb-2 code. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Acked-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19329 6f19259b-4bc3-4df7-8a09-765794883524
27 lines
748 B
ArmAsm
27 lines
748 B
ArmAsm
/** @file
|
|
ARM (AArch32) implementation of XenHypercall2
|
|
|
|
Copyright (C) 2014, Linaro Ltd.
|
|
|
|
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.
|
|
|
|
**/
|
|
|
|
#include <IndustryStandard/Xen/arch-arm/xen.h>
|
|
|
|
.text
|
|
GCC_ASM_EXPORT(XenHypercall2)
|
|
|
|
ASM_PFX(XenHypercall2):
|
|
mov r12, r0
|
|
mov r0, r1
|
|
mov r1, r2
|
|
hvc #XEN_HYPERCALL_TAG
|
|
bx lr
|