X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=MdePkg%2FLibrary%2FBaseLib%2FIpf%2FCpuFlushTlb.s;h=520c51f6ba7063d1bb6d07bc8c9f3df3ab34b910;hb=8e38ef0a9c97889807e40e2298728cfe0d6db3af;hp=608830496c99674aa801f4735eddb91327e52066;hpb=18c319ae39f741101ccf0b076bb749e05344d443;p=mirror_edk2.git diff --git a/MdePkg/Library/BaseLib/Ipf/CpuFlushTlb.s b/MdePkg/Library/BaseLib/Ipf/CpuFlushTlb.s index 608830496c..520c51f6ba 100644 --- a/MdePkg/Library/BaseLib/Ipf/CpuFlushTlb.s +++ b/MdePkg/Library/BaseLib/Ipf/CpuFlushTlb.s @@ -17,26 +17,27 @@ .auto .text -.global PalCallStatic +.globl PalCallStatic .type PalCallStatic, @function .proc CpuFlushTlb .type CpuFlushTlb, @function CpuFlushTlb:: - alloc loc0 = ar.pfs, 0, 2, 5, 0 + alloc loc0 = ar.pfs, 0, 3, 5, 0 mov out0 = 0 mov out1 = 6 mov out2 = 0 mov out3 = 0 - mov out4 = 0 mov loc1 = b0 - br.call.sptk b0 = PalCallStatic - rsm 1 << 14 // Disable interrupts + mov out4 = 0 + brl.call.sptk b0 = PalCallStatic + mov loc2 = psr // save PSR mov ar.pfs = loc0 extr.u r14 = r10, 32, 32 // r14 <- count1 + rsm 1 << 14 // Disable interrupts extr.u r15 = r11, 32, 32 // r15 <- stride1 extr.u r10 = r10, 0, 32 // r10 <- count2 - mov loc0 = psr + add r10 = -1, r10 extr.u r11 = r11, 0, 32 // r11 <- stride2 br.cond.sptk LoopPredicate LoopOuter: @@ -48,10 +49,10 @@ Loop: br.ctop.sptk Loop add r9 = r15, r9 // r9 += stride1 LoopPredicate: - cmp.ne p6, p7 = r0, r14 // count1 == 0? + cmp.ne p6 = r0, r14 // count1 == 0? add r14 = -1, r14 (p6) br.cond.sptk LoopOuter - mov psr.l = loc0 + mov psr.l = loc2 mov b0 = loc1 br.ret.sptk.many b0 .endp