summaryrefslogtreecommitdiffstats
path: root/MdePkg
diff options
context:
space:
mode:
authorvprabhal <vprabhal@6f19259b-4bc3-4df7-8a09-765794883524>2007-09-18 23:18:04 +0000
committervprabhal <vprabhal@6f19259b-4bc3-4df7-8a09-765794883524>2007-09-18 23:18:04 +0000
commit700e6ffd3e351cbe2069de83d94cefc0743ab45f (patch)
treedd7e9e3faa865ea7364725129e00bfd752df85f6 /MdePkg
parent0bd93d716643c8c0801a53bd44124a3283593b70 (diff)
downloadedk2-700e6ffd3e351cbe2069de83d94cefc0743ab45f.tar.gz
edk2-700e6ffd3e351cbe2069de83d94cefc0743ab45f.tar.bz2
edk2-700e6ffd3e351cbe2069de83d94cefc0743ab45f.zip
fixed one asm routine
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3889 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg')
-rw-r--r--MdePkg/Library/BaseLib/Ipf/AccessGcr.s20
1 files changed, 15 insertions, 5 deletions
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
//---------------------------------------------------------------------------------