From 700e6ffd3e351cbe2069de83d94cefc0743ab45f Mon Sep 17 00:00:00 2001 From: vprabhal Date: Tue, 18 Sep 2007 23:18:04 +0000 Subject: fixed one asm routine git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3889 6f19259b-4bc3-4df7-8a09-765794883524 --- MdePkg/Library/BaseLib/Ipf/AccessGcr.s | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'MdePkg/Library') diff --git a/MdePkg/Library/BaseLib/Ipf/AccessGcr.s b/MdePkg/Library/BaseLib/Ipf/AccessGcr.s index 54b3a30a6d..dc038ff338 100644 --- a/MdePkg/Library/BaseLib/Ipf/AccessGcr.s +++ b/MdePkg/Library/BaseLib/Ipf/AccessGcr.s @@ -204,13 +204,23 @@ AsmReadIva:: .text .type AsmWriteIva, @function .proc AsmWriteIva -.regstk 1, 0, 0, 0 +.regstk 1, 3, 0, 0 + + alloc loc1=ar.pfs,1,4,0,0 ;; + + mov loc2 = psr + rsm 0x6000 // Make sure interrupts are masked AsmWriteIva:: - mov cr.iva = in0 - mov r8 = in0;; - br.ret.dpnt b0;; -.endp AsmWriteIva + mov cr.iva = in0 + srlz.i;; + mov psr.l = loc2;; + srlz.i;; + srlz.d;; + mov ar.pfs=loc1 ;; + mov r8 = in0;; + br.ret.dpnt b0;; +.endp AsmWriteIva //--------------------------------------------------------------------------------- -- cgit v1.2.3