.globl ASM_PFX(ExceptionHandlersStart)
+INTERWORK_FUNC(ExceptionHandlersStart)
.globl ASM_PFX(ExceptionHandlersEnd)
+INTERWORK_FUNC(ExceptionHandlersEnd)
.globl ASM_PFX(CommonExceptionEntry)
+INTERWORK_FUNC(CommonExceptionEntry)
.globl ASM_PFX(AsmCommonExceptionEntry)
+INTERWORK_FUNC(AsmCommonExceptionEntry)
.globl ASM_PFX(CommonCExceptionHandler)
+INTERWORK_FUNC(CommonCExceptionHandler)
.text
#if !defined(__APPLE__)
.text
.align 2
.globl ASM_PFX(ArmCleanInvalidateDataCache)
+INTERWORK_FUNC(ArmCleanInvalidateDataCache)
.globl ASM_PFX(ArmCleanDataCache)
+INTERWORK_FUNC(ArmCleanDataCache)
.globl ASM_PFX(ArmInvalidateDataCache)
+INTERWORK_FUNC(ArmInvalidateDataCache)
.globl ASM_PFX(ArmInvalidateInstructionCache)
+INTERWORK_FUNC(ArmInvalidateInstructionCache)
.globl ASM_PFX(ArmInvalidateDataCacheEntryByMVA)
+INTERWORK_FUNC(ArmInvalidateDataCacheEntryByMVA)
.globl ASM_PFX(ArmCleanDataCacheEntryByMVA)
+INTERWORK_FUNC(ArmCleanDataCacheEntryByMVA)
.globl ASM_PFX(ArmCleanInvalidateDataCacheEntryByMVA)
+INTERWORK_FUNC(ArmCleanInvalidateDataCacheEntryByMVA)
.globl ASM_PFX(ArmEnableMmu)
+INTERWORK_FUNC(ArmEnableMmu)
.globl ASM_PFX(ArmDisableMmu)
+INTERWORK_FUNC(ArmDisableMmu)
.globl ASM_PFX(ArmMmuEnabled)
+INTERWORK_FUNC(ArmMmuEnabled)
.globl ASM_PFX(ArmEnableDataCache)
+INTERWORK_FUNC(ArmEnableDataCache)
.globl ASM_PFX(ArmDisableDataCache)
+INTERWORK_FUNC(ArmDisableDataCache)
.globl ASM_PFX(ArmEnableInstructionCache)
+INTERWORK_FUNC(ArmEnableInstructionCache)
.globl ASM_PFX(ArmDisableInstructionCache)
+INTERWORK_FUNC(ArmDisableInstructionCache)
.globl ASM_PFX(ArmEnableBranchPrediction)
+INTERWORK_FUNC(ArmEnableBranchPrediction)
.globl ASM_PFX(ArmDisableBranchPrediction)
+INTERWORK_FUNC(ArmDisableBranchPrediction)
.globl ASM_PFX(ArmDataMemoryBarrier)
+INTERWORK_FUNC(ArmDataMemoryBarrier)
.globl ASM_PFX(ArmDataSyncronizationBarrier)
+INTERWORK_FUNC(ArmDataSyncronizationBarrier)
.globl ASM_PFX(ArmInstructionSynchronizationBarrier)
+INTERWORK_FUNC(ArmInstructionSynchronizationBarrier)
.set DC_ON, (0x1<<2)
.text
.align 2
.globl ASM_PFX(ArmCleanInvalidateDataCache)
+INTERWORK_FUNC(ArmCleanInvalidateDataCache)
.globl ASM_PFX(ArmCleanDataCache)
+INTERWORK_FUNC(ArmCleanDataCache)
.globl ASM_PFX(ArmInvalidateDataCache)
+INTERWORK_FUNC(ArmInvalidateDataCache)
.globl ASM_PFX(ArmInvalidateInstructionCache)
+INTERWORK_FUNC(ArmInvalidateInstructionCache)
.globl ASM_PFX(ArmInvalidateDataCacheEntryByMVA)
+INTERWORK_FUNC(ArmInvalidateDataCacheEntryByMVA)
.globl ASM_PFX(ArmCleanDataCacheEntryByMVA)
+INTERWORK_FUNC(ArmCleanDataCacheEntryByMVA)
.globl ASM_PFX(ArmCleanInvalidateDataCacheEntryByMVA)
+INTERWORK_FUNC(ArmCleanInvalidateDataCacheEntryByMVA)
.globl ASM_PFX(ArmEnableMmu)
+INTERWORK_FUNC(ArmEnableMmu)
.globl ASM_PFX(ArmDisableMmu)
+INTERWORK_FUNC(ArmDisableMmu)
.globl ASM_PFX(ArmMmuEnabled)
+INTERWORK_FUNC(ArmMmuEnabled)
.globl ASM_PFX(ArmEnableDataCache)
+INTERWORK_FUNC(ArmEnableDataCache)
.globl ASM_PFX(ArmDisableDataCache)
+INTERWORK_FUNC(ArmDisableDataCache)
.globl ASM_PFX(ArmEnableInstructionCache)
+INTERWORK_FUNC(ArmEnableInstructionCache)
.globl ASM_PFX(ArmDisableInstructionCache)
+INTERWORK_FUNC(ArmDisableInstructionCache)
.globl ASM_PFX(ArmEnableBranchPrediction)
+INTERWORK_FUNC(ArmEnableBranchPrediction)
.globl ASM_PFX(ArmDisableBranchPrediction)
+INTERWORK_FUNC(ArmDisableBranchPrediction)
.globl ASM_PFX(ArmDataMemoryBarrier)
+INTERWORK_FUNC(ArmDataMemoryBarrier)
.globl ASM_PFX(ArmDataSyncronizationBarrier)
+INTERWORK_FUNC(ArmDataSyncronizationBarrier)
.globl ASM_PFX(ArmInstructionSynchronizationBarrier)
+INTERWORK_FUNC(ArmInstructionSynchronizationBarrier)
.set DC_ON, (1<<2)
#------------------------------------------------------------------------------
.globl ASM_PFX(Cp15IdCode)
+INTERWORK_FUNC(Cp15IdCode)
.globl ASM_PFX(Cp15CacheInfo)
+INTERWORK_FUNC(Cp15CacheInfo)
.globl ASM_PFX(ArmEnableInterrupts)
+INTERWORK_FUNC(ArmEnableInterrupts)
.globl ASM_PFX(ArmDisableInterrupts)
+INTERWORK_FUNC(ArmDisableInterrupts)
.globl ASM_PFX(ArmGetInterruptState)
+INTERWORK_FUNC(ArmGetInterruptState)
.globl ASM_PFX(ArmEnableFiq)
+INTERWORK_FUNC(ArmEnableFiq)
.globl ASM_PFX(ArmDisableFiq)
+INTERWORK_FUNC(ArmDisableFiq)
.globl ASM_PFX(ArmGetFiqState)
+INTERWORK_FUNC(ArmGetFiqState)
.globl ASM_PFX(ArmInvalidateTlb)
+INTERWORK_FUNC(ArmInvalidateTlb)
.globl ASM_PFX(ArmSetTranslationTableBaseAddress)
+INTERWORK_FUNC(ArmSetTranslationTableBaseAddress)
.globl ASM_PFX(ArmGetTranslationTableBaseAddress)
+INTERWORK_FUNC(ArmGetTranslationTableBaseAddress)
.globl ASM_PFX(ArmSetDomainAccessControl)
+INTERWORK_FUNC(ArmSetDomainAccessControl)
.globl ASM_PFX(ArmUpdateTranslationTableEntry)
+INTERWORK_FUNC(ArmUpdateTranslationTableEntry)
.globl ASM_PFX(CPSRMaskInsert)
+INTERWORK_FUNC(CPSRMaskInsert)
.globl ASM_PFX(CPSRRead)
+INTERWORK_FUNC(CPSRRead)
.globl ASM_PFX(ReadCCSIDR)
+INTERWORK_FUNC(ReadCCSIDR)
.globl ASM_PFX(ReadCLIDR)
+INTERWORK_FUNC(ReadCLIDR)
.text
.align 2
#------------------------------------------------------------------------------
.globl ASM_PFX(ArmInvalidateInstructionCache)
+INTERWORK_FUNC(ArmInvalidateInstructionCache)
.globl ASM_PFX(ArmInvalidateDataCacheEntryByMVA)
+INTERWORK_FUNC(ArmInvalidateDataCacheEntryByMVA)
.globl ASM_PFX(ArmCleanDataCacheEntryByMVA)
+INTERWORK_FUNC(ArmCleanDataCacheEntryByMVA)
.globl ASM_PFX(ArmCleanInvalidateDataCacheEntryByMVA)
+INTERWORK_FUNC(ArmCleanInvalidateDataCacheEntryByMVA)
.globl ASM_PFX(ArmInvalidateDataCacheEntryBySetWay)
+INTERWORK_FUNC(ArmInvalidateDataCacheEntryBySetWay)
.globl ASM_PFX(ArmCleanDataCacheEntryBySetWay)
+INTERWORK_FUNC(ArmCleanDataCacheEntryBySetWay)
.globl ASM_PFX(ArmCleanInvalidateDataCacheEntryBySetWay)
+INTERWORK_FUNC(ArmCleanInvalidateDataCacheEntryBySetWay)
.globl ASM_PFX(ArmDrainWriteBuffer)
+INTERWORK_FUNC(ArmDrainWriteBuffer)
.globl ASM_PFX(ArmEnableMmu)
+INTERWORK_FUNC(ArmEnableMmu)
.globl ASM_PFX(ArmDisableMmu)
+INTERWORK_FUNC(ArmDisableMmu)
.globl ASM_PFX(ArmMmuEnabled)
+INTERWORK_FUNC(ArmMmuEnabled)
.globl ASM_PFX(ArmEnableDataCache)
+INTERWORK_FUNC(ArmEnableDataCache)
.globl ASM_PFX(ArmDisableDataCache)
+INTERWORK_FUNC(ArmDisableDataCache)
.globl ASM_PFX(ArmEnableInstructionCache)
+INTERWORK_FUNC(ArmEnableInstructionCache)
.globl ASM_PFX(ArmDisableInstructionCache)
+INTERWORK_FUNC(ArmDisableInstructionCache)
.globl ASM_PFX(ArmEnableBranchPrediction)
+INTERWORK_FUNC(ArmEnableBranchPrediction)
.globl ASM_PFX(ArmDisableBranchPrediction)
+INTERWORK_FUNC(ArmDisableBranchPrediction)
.globl ASM_PFX(ArmV7AllDataCachesOperation)
+INTERWORK_FUNC(ArmV7AllDataCachesOperation)
.globl ASM_PFX(ArmDataMemoryBarrier)
+INTERWORK_FUNC(ArmDataMemoryBarrier)
.globl ASM_PFX(ArmDataSyncronizationBarrier)
+INTERWORK_FUNC(ArmDataSyncronizationBarrier)
.globl ASM_PFX(ArmInstructionSynchronizationBarrier)
+INTERWORK_FUNC(ArmInstructionSynchronizationBarrier)
.text
.align 2
.text
.align 2
.globl ASM_PFX(Cp15IdCode)
+INTERWORK_FUNC(Cp15IdCode)
.globl ASM_PFX(Cp15CacheInfo)
+INTERWORK_FUNC(Cp15CacheInfo)
.globl ASM_PFX(ArmEnableInterrupts)
+INTERWORK_FUNC(ArmEnableInterrupts)
.globl ASM_PFX(ArmDisableInterrupts)
+INTERWORK_FUNC(ArmDisableInterrupts)
.globl ASM_PFX(ArmGetInterruptState)
+INTERWORK_FUNC(ArmGetInterruptState)
.globl ASM_PFX(ArmEnableFiq)
+INTERWORK_FUNC(ArmEnableFiq)
.globl ASM_PFX(ArmDisableFiq)
+INTERWORK_FUNC(ArmDisableFiq)
.globl ASM_PFX(ArmGetFiqState)
+INTERWORK_FUNC(ArmGetFiqState)
.globl ASM_PFX(ArmInvalidateTlb)
+INTERWORK_FUNC(ArmInvalidateTlb)
.globl ASM_PFX(ArmSetTranslationTableBaseAddress)
+INTERWORK_FUNC(ArmSetTranslationTableBaseAddress)
.globl ASM_PFX(ArmGetTranslationTableBaseAddress)
+INTERWORK_FUNC(ArmGetTranslationTableBaseAddress)
.globl ASM_PFX(ArmSetDomainAccessControl)
+INTERWORK_FUNC(ArmSetDomainAccessControl)
.globl ASM_PFX(CPSRMaskInsert)
+INTERWORK_FUNC(CPSRMaskInsert)
.globl ASM_PFX(CPSRRead)
+INTERWORK_FUNC(CPSRRead)
+
#------------------------------------------------------------------------------
.text\r
.align 2\r
.globl ASM_PFX(InternalMemCopyMem)\r
+INTERWORK_FUNC(InternalMemCopyMem)\r
\r
ASM_PFX(InternalMemCopyMem):\r
stmfd sp!, {r4-r11, lr}\r
.text\r
.align 2\r
.globl ASM_PFX(InternalMemSetMem)\r
+INTERWORK_FUNC(InternalMemSetMem)\r
\r
ASM_PFX(InternalMemSetMem):\r
stmfd sp!, {r4-r11, lr}\r
.text\r
.align 2\r
.globl ASM_PFX(InternalMemCopyMem)\r
+INTERWORK_FUNC(InternalMemCopyMem)\r
\r
ASM_PFX(InternalMemCopyMem):\r
stmfd sp!, {r4, r9, lr}\r
.text\r
.align 2\r
.globl ASM_PFX(InternalMemSetMem)\r
+INTERWORK_FUNC(InternalMemSetMem)\r
\r
ASM_PFX(InternalMemSetMem):\r
stmfd sp!, {r4-r7, lr}\r
.text
.align 2
.globl ASM_PFX(__ashldi3)
+ INTERWORK_FUNC(__ashldi3)\r
ASM_PFX(__ashldi3):
cmp r2, #31
.text
.align 2
.globl ASM_PFX(__ashrdi3)
+ INTERWORK_FUNC(__ashrdi3)\r
ASM_PFX(__ashrdi3):
cmp r2, #31
.text
.align 2
.globl ASM_PFX(__clzsi2)
+ INTERWORK_FUNC(__clzsi2)\r
ASM_PFX(__clzsi2):
@ frame_needed = 1, uses_anonymous_args = 0
.text
.align 2
.globl ASM_PFX(__ctzsi2)
+ INTERWORK_FUNC(__ctzsi2)\r
ASM_PFX(__ctzsi2):
uxth r3, r0
.text
.align 2
.globl ASM_PFX(__divdi3)
+ INTERWORK_FUNC(__divdi3)\r
ASM_PFX(__divdi3):
@ args = 0, pretend = 0, frame = 0
.text
.align 2
.globl ASM_PFX(__divsi3)
+ INTERWORK_FUNC(__divsi3)\r
ASM_PFX(__divsi3):
eor r3, r0, r0, asr #31
.text
.align 2
.globl ASM_PFX(__aeabi_ldivmod)
+ INTERWORK_FUNC(__aeabi_ldivmod)\r
//
// A pair of (unsigned) long longs is returned in {{r0, r1}, {r2, r3}},
.text
.align 2
.globl ASM_PFX(__lshrdi3)
+ INTERWORK_FUNC(__lshrdi3)\r
ASM_PFX(__lshrdi3):
cmp r2, #31
.text
.align 2
.globl ASM_PFX(memcpy)
+ INTERWORK_FUNC(memcpy)\r
ASM_PFX(memcpy):
stmfd sp!, {r7, lr}
.text
.align 2
- .globl _memset
-_memset:
+ .globl ASM_PFX(memset)
+ INTERWORK_FUNC(memset)\r
+\r
+ASM_PFX(memset):\r
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, uses_anonymous_args = 0
stmfd sp!, {r7, lr}
.text
.align 2
.globl ASM_PFX(__moddi3)
+ INTERWORK_FUNC(__moddi3)\r
ASM_PFX(__moddi3):
stmfd sp!, {r4, r5, r7, lr}
.text
.align 2
.globl ASM_PFX(__modsi3)
+ INTERWORK_FUNC(__modsi3)\r
ASM_PFX(__modsi3):
stmfd sp!, {r4, r5, r7, lr}
.text
.align 2
.globl ASM_PFX(__muldi3)
-
+ INTERWORK_FUNC(__muldi3)\r
+
ASM_PFX(__muldi3):
stmfd sp!, {r4, r5, r6, r7, lr}
add r7, sp, #12
.text\r
.align 2\r
.globl ASM_PFX(__aeabi_ulcmp)\r
+ INTERWORK_FUNC(__aeabi_ulcmp)\r
+\r
ASM_PFX(__aeabi_ulcmp):\r
stmfd sp!, {r4, r5, r8}\r
cmp r3, r1\r
.p2align 2
.globl ASM_PFX(__switch16)
-
+INTERWORK_FUNC(__switch16)\r
ASM_PFX(__switch16):
ldrh ip, [lr, #-1]
.p2align 2
.globl ASM_PFX(__switch32)
-
+INTERWORK_FUNC(__switch32)
ASM_PFX(__switch32):
ldr ip, [lr, #-1]
.p2align 2
.globl ASM_PFX(__switch8)
+INTERWORK_FUNC(__switch8)
ASM_PFX(__switch8):
.p2align 2
.globl ASM_PFX(__switchu8)
+INTERWORK_FUNC(__switchu8)
ASM_PFX(__switchu8):
.text
.align 2
.globl ASM_PFX(__ucmpdi2)
+ INTERWORK_FUNC(__ucmpdi2)
ASM_PFX(__ucmpdi2):
stmfd sp!, {r4, r5, r8, lr}
.text
.align 2
.globl ASM_PFX(__udivdi3)
+ INTERWORK_FUNC(__udivdi3)
ASM_PFX(__udivdi3):
stmfd sp!, {r7, lr}
.text
.align 2
.globl ASM_PFX(__udivmoddi4)
-
+ INTERWORK_FUNC(__udivmoddi4)
+
ASM_PFX(__udivmoddi4):
stmfd sp!, {r4, r5, r6, r7, lr}
add r7, sp, #12
.text
.align 2
.globl ASM_PFX(__udivsi3)
+ INTERWORK_FUNC(__udivsi3)
ASM_PFX(__udivsi3):
cmp r1, #0
.text
.align 2
.globl ASM_PFX(__aeabi_uldivmod)
+ INTERWORK_FUNC(__aeabi_uldivmod)
//
//UINT64
.text
.align 2
.globl ASM_PFX(__umoddi3)
+ INTERWORK_FUNC(__umoddi3)
ASM_PFX(__umoddi3):
stmfd sp!, {r7, lr}
.text
.align 2
.globl ASM_PFX(__umodsi3)
+ INTERWORK_FUNC(__umodsi3)
ASM_PFX(__umodsi3):
stmfd sp!, {r4, r5, r7, lr}
MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf
EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
- EmbeddedPkg/SimpleTextInOutSerial/SimpleTextInOutSerial.inf
+
+ EmbeddedPkg/SimpleTextInOutSerial/SimpleTextInOutSerial.inf
+#
+# This version uses semi-hosting console
+# EmbeddedPkg/SimpleTextInOutSerial/SimpleTextInOutSerial.inf {
+# <LibraryClasses>
+# SerialPortLib|ArmPkg/Library/SemiHostingSerialPortLib/SemiHostingSerialPortLib.inf
+# }
EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
\r
.globl ASM_PFX(CEntryPoint)\r
.globl ASM_PFX(_ModuleEntryPoint)\r
+INTERWORK_FUNC(_ModuleEntryPoint)
\r
ASM_PFX(_ModuleEntryPoint):\r
\r
.globl ASM_PFX(ExceptionHandlersStart)
+INTERWORK_FUNC(ExceptionHandlersStart)
.globl ASM_PFX(ExceptionHandlersEnd)
+INTERWORK_FUNC(ExceptionHandlersEnd)
.globl ASM_PFX(CommonExceptionEntry)
+INTERWORK_FUNC(CommonExceptionEntry)
.globl ASM_PFX(AsmCommonExceptionEntry)
+INTERWORK_FUNC(AsmCommonExceptionEntry)
.globl ASM_PFX(GdbExceptionHandler)
+INTERWORK_FUNC(GdbExceptionHandler)
.text
.align 3