From f8c9de87bcca956887d68491515acdeeecf5a38d Mon Sep 17 00:00:00 2001 From: xli24 Date: Thu, 13 Nov 2008 08:02:26 +0000 Subject: Update DebugSupportDxe module to pass IPF GCC build. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6492 6f19259b-4bc3-4df7-8a09-765794883524 --- MdeModulePkg/Universal/DebugSupportDxe/Ipf/AsmFuncs.s | 7 ++++--- MdeModulePkg/Universal/DebugSupportDxe/Ipf/Ds64Macros.i | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) (limited to 'MdeModulePkg/Universal/DebugSupportDxe') diff --git a/MdeModulePkg/Universal/DebugSupportDxe/Ipf/AsmFuncs.s b/MdeModulePkg/Universal/DebugSupportDxe/Ipf/AsmFuncs.s index 54b620c6ae..03603eafa1 100644 --- a/MdeModulePkg/Universal/DebugSupportDxe/Ipf/AsmFuncs.s +++ b/MdeModulePkg/Universal/DebugSupportDxe/Ipf/AsmFuncs.s @@ -1,7 +1,7 @@ /// @file /// Low level IPF routines used by the debug support driver /// -/// Copyright (c) 2006, Intel Corporation +/// Copyright (c) 2006 - 2008, Intel Corporation /// All rights reserved. This program and the accompanying materials /// are licensed and made available under the terms and conditions of the BSD License /// which accompanies this distribution. The full text of the license may be found at @@ -182,7 +182,8 @@ ChainHandler: // Next, copy the patch code into the IVT movl out0=PatchCode // out0 = source buffer of patch code addl out1=PATCH_OFFSET, r2 // out1 = destination buffer - in IVT - mov out2=NUM_PATCH_BUNDLES;; // out2 = number of bundles to copy + mov out2=PATCH_CODE_SIZE;; + shr out2=out2, 4;; // out2 = number of bundles to copy br.call.sptk.few b0 = CopyBundles @@ -431,7 +432,7 @@ RelocateSlot: cmp.gt p14, p15 = loc5, loc6;; // check to see we're not out of range for an ip-relative branch (p14) br.sptk.few RelocateSlotError cmp.lt p15, p14 = 0, loc4;; // store sign in p14 again -(p14) dep in0=1,in0,36,1 // store sign bit in instruction +(p14) dep in0=-1,in0,36,1 // store sign bit in instruction (p15) dep in0=0,in0,36,1 shr loc4=loc4, 4;; // convert back to bundle offset dep in0=loc4,in0,13,16;; // put first 16 bits of new offset into instruction diff --git a/MdeModulePkg/Universal/DebugSupportDxe/Ipf/Ds64Macros.i b/MdeModulePkg/Universal/DebugSupportDxe/Ipf/Ds64Macros.i index 7316e199b5..5855545f01 100644 --- a/MdeModulePkg/Universal/DebugSupportDxe/Ipf/Ds64Macros.i +++ b/MdeModulePkg/Universal/DebugSupportDxe/Ipf/Ds64Macros.i @@ -1,7 +1,7 @@ /// @file /// This is set of macros used in calculating offsets in the IVT. /// -/// Copyright (c) 2006, Intel Corporation +/// Copyright (c) 2006 - 2008, Intel Corporation /// All rights reserved. This program and the accompanying materials /// are licensed and made available under the terms and conditions of the BSD License /// which accompanies this distribution. The full text of the license may be found at @@ -53,8 +53,8 @@ // unloaded. #define PATCH_ENTRY_OFFSET 0x03400 -// PATCH_BUNDLES is the number of bundles actually in the patch -#define NUM_PATCH_BUNDLES ((EndPatchCode - PatchCode) / 0x10) +// PATCH_CODE_SIZE is the size of patch code +#define PATCH_CODE_SIZE (EndPatchCode - PatchCode) // A hard coded branch back into the external interrupt IVT entry's second bundle // is put here, just in case the original bundle zero did not have a branch -- cgit v1.2.3