Move ARMv5 (ARM9) barrier instructions into assembler files

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10064 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
andrewfish 2010-02-24 23:20:00 +00:00
parent 026c3d34ee
commit 4b9fa12943
4 changed files with 37 additions and 51 deletions

View File

@ -118,32 +118,5 @@ ArmConfigureMmu (
}
VOID
EFIAPI
ArmDataMemoryBarrier (
VOID
)
{
// Should move to assembly with the
}
VOID
EFIAPI
ArmDataSyncronizationBarrier (
VOID
)
{
// MOV R0, #0
// MCR P15, #0, R0, C7, C10, #4}
}
VOID
EFIAPI
ArmInstructionSynchronizationBarrier (
VOID
)
{
}

View File

@ -118,28 +118,4 @@ ArmConfigureMmu (
}
VOID
EFIAPI
ArmDataMemoryBarrier (
VOID
)
{
}
VOID
EFIAPI
ArmDataSyncronizationBarrier (
VOID
)
{
}
VOID
EFIAPI
ArmInstructionSynchronizationBarrier (
VOID
)
{
}

View File

@ -30,6 +30,10 @@
.globl ASM_PFX(ArmDisableInstructionCache)
.globl ASM_PFX(ArmEnableBranchPrediction)
.globl ASM_PFX(ArmDisableBranchPrediction)
.globl ASM_PFX(ArmDataMemoryBarrier)
.globl ASM_PFX(ArmDataSyncronizationBarrier)
.globl ASM_PFX(ArmInstructionSynchronizationBarrier)
.set DC_ON, (1<<2)
.set IC_ON, (1<<12)
@ -130,5 +134,20 @@ ASM_PFX(ArmEnableBranchPrediction):
ASM_PFX(ArmDisableBranchPrediction):
bx LR @Branch prediction is not supported.
ASM_PFX(ArmDataMemoryBarrier):
mov R0, #0
mcr P15, #0, R0, C7, C10, #5 @ check if this is OK?
bx LR
ASM_PFX(ArmDataSyncronizationBarrier):
mov R0, #0
mcr P15, #0, R0, C7, C10, #4 @ check if this is OK?
bx LR
ASM_PFX(ArmInstructionSynchronizationBarrier):
mov R0, #0
mcr P15, #0, R0, C7, C5, #4 @ check if this is OK?
bx LR
ASM_FUNCTION_REMOVE_IF_UNREFERENCED

View File

@ -28,6 +28,9 @@
EXPORT ArmDisableInstructionCache
EXPORT ArmEnableBranchPrediction
EXPORT ArmDisableBranchPrediction
EXPORT ArmDataMemoryBarrier
EXPORT ArmDataSyncronizationBarrier
EXPORT ArmInstructionSynchronizationBarrier
DC_ON EQU ( 0x1:SHL:2 )
@ -132,4 +135,19 @@ ArmEnableBranchPrediction
ArmDisableBranchPrediction
bx LR ;Branch prediction is not supported.
ASM_PFX(ArmDataMemoryBarrier):
mov R0, #0
mcr P15, #0, R0, C7, C10, #5 ; Check to see if this is correct
bx LR
ASM_PFX(ArmDataSyncronizationBarrier):
mov R0, #0
mcr P15, #0, R0, C7, C10, #4 ; Check to see if this is correct
bx LR
ASM_PFX(ArmInstructionSynchronizationBarrier):
MOV R0, #0
MCR P15, #0, R0, C7, C5, #4 ; Check to see if this is correct
bx LR
END