diff options
author | bxing <bxing@6f19259b-4bc3-4df7-8a09-765794883524> | 2006-07-06 07:46:22 +0000 |
---|---|---|
committer | bxing <bxing@6f19259b-4bc3-4df7-8a09-765794883524> | 2006-07-06 07:46:22 +0000 |
commit | a69c49fc119ae22e62acd00da011fb9e2bfa433f (patch) | |
tree | 1d499e6a13a10472d235f18be136024ad442f5a4 /MdePkg/Library/BaseTimerLibLocalApic | |
parent | e0f8d087ae422c613267650487686581b1081fc8 (diff) | |
download | edk2-platforms-a69c49fc119ae22e62acd00da011fb9e2bfa433f.tar.xz |
1. Simplified PalCallStatic.s's by removing unnecessary condition testings.
2. Fixed a logical error in Synchronization.c which caused InterlockedIncrement() and InterlockedDecrement() to hang.
3. Replaced the pseudo-implementation of GetInterruptState() with a real version.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@793 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg/Library/BaseTimerLibLocalApic')
-rw-r--r-- | MdePkg/Library/BaseTimerLibLocalApic/Ipf/PalCallStatic.s | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/MdePkg/Library/BaseTimerLibLocalApic/Ipf/PalCallStatic.s b/MdePkg/Library/BaseTimerLibLocalApic/Ipf/PalCallStatic.s index 686383793d..c21d7427f9 100644 --- a/MdePkg/Library/BaseTimerLibLocalApic/Ipf/PalCallStatic.s +++ b/MdePkg/Library/BaseTimerLibLocalApic/Ipf/PalCallStatic.s @@ -22,27 +22,27 @@ .type PalCallStatic, @function
.regstk 5, 0, 0, 0
PalCallStatic::
- cmp.eq p6 = r0, in0
+ cmp.eq p15 = in0, r0
mov r31 = in4
mov r8 = ip
-(p6) mov in0 = ar.k5
- add r8 = (PalProcReturn - PalCallStatic), r8
- mov in4 = b0
+
+(p15) mov in0 = ar.k5
+ add r8 = (_PalProcReturn - PalCallStatic), r8
mov r30 = in3
- mov r29 = in2
+
+ mov in4 = psr
+ mov in3 = b0
mov b7 = in0
- mov in3 = psr
+
rsm 1 << 14 // Disable interrupts
+ mov r29 = in2
mov r28 = in1
- mov in0 = 256
+
mov b0 = r8
- br.cond.sptk b7
-PalProcReturn:
- mov psr.l = in3
- cmp.eq p6 = in0, in1 // in1 == PAL_COPY_PAL?
-(p6) cmp.eq p6 = r0, r8 // Status == Success?
-(p6) add in2 = r9, in2
-(p6) mov ar.k5 = in2
- mov b0 = in4
+ br.cond.sptk.many b7
+
+_PalProcReturn:
+ mov psr.l = in4
+ mov b0 = in3
br.ret.sptk.many b0
.endp PalCallStatic
|