summaryrefslogtreecommitdiff
path: root/EdkModulePkg/Universal/Ebc/Dxe
diff options
context:
space:
mode:
authorxli24 <xli24@6f19259b-4bc3-4df7-8a09-765794883524>2007-01-25 06:15:58 +0000
committerxli24 <xli24@6f19259b-4bc3-4df7-8a09-765794883524>2007-01-25 06:15:58 +0000
commit1cc8ee7861a59532700a6fd1255689576eda0f52 (patch)
tree7708d058115302ba08d7879965e8864467958e93 /EdkModulePkg/Universal/Ebc/Dxe
parent582510249f2fb1334e507b99421b9485f6b89159 (diff)
downloadedk2-1cc8ee7861a59532700a6fd1255689576eda0f52.zip
edk2-1cc8ee7861a59532700a6fd1255689576eda0f52.tar.gz
edk2-1cc8ee7861a59532700a6fd1255689576eda0f52.tar.bz2
Partially make EdkModulePkg pass intel IPF compiler with /W4 /WX switched on.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2313 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'EdkModulePkg/Universal/Ebc/Dxe')
-rw-r--r--EdkModulePkg/Universal/Ebc/Dxe/EbcExecute.c3
-rw-r--r--EdkModulePkg/Universal/Ebc/Dxe/Ipf/EbcSupport.c71
2 files changed, 38 insertions, 36 deletions
diff --git a/EdkModulePkg/Universal/Ebc/Dxe/EbcExecute.c b/EdkModulePkg/Universal/Ebc/Dxe/EbcExecute.c
index 70db157..ce9b3aa 100644
--- a/EdkModulePkg/Universal/Ebc/Dxe/EbcExecute.c
+++ b/EdkModulePkg/Universal/Ebc/Dxe/EbcExecute.c
@@ -1098,7 +1098,6 @@ Returns:
UINT8 Operands;
VOID *EbcEntryPoint;
VOID *Thunk;
- EFI_STATUS Status;
UINT64 U64EbcEntryPoint;
INT32 Offset;
@@ -1162,7 +1161,7 @@ Returns:
//
// Now create a new thunk
//
- Status = EbcCreateThunks (VmPtr->ImageHandle, EbcEntryPoint, &Thunk, 0);
+ EbcCreateThunks (VmPtr->ImageHandle, EbcEntryPoint, &Thunk, 0);
//
// Finally replace the EBC entry point memory with the thunk address
diff --git a/EdkModulePkg/Universal/Ebc/Dxe/Ipf/EbcSupport.c b/EdkModulePkg/Universal/Ebc/Dxe/Ipf/EbcSupport.c
index eceb591..283cdaa 100644
--- a/EdkModulePkg/Universal/Ebc/Dxe/Ipf/EbcSupport.c
+++ b/EdkModulePkg/Universal/Ebc/Dxe/Ipf/EbcSupport.c
@@ -76,6 +76,7 @@ PushU64 (
*(UINT64 *) VmPtr->R[0] = Arg;
}
+STATIC
UINT64
EbcInterpret (
UINT64 Arg1,
@@ -468,14 +469,14 @@ Returns:
//
// Next is jumbled data, including opcode and rest of address
//
- Code[2] = LShiftU64 (Imm7b, 13)
- | LShiftU64 (0x00, 20) // vc
- | LShiftU64 (Ic, 21)
- | LShiftU64 (Imm5c, 22)
- | LShiftU64 (Imm9d, 27)
- | LShiftU64 (I, 36)
- | LShiftU64 ((UINT64)MOVL_OPCODE, 37)
- | LShiftU64 ((RegNum & 0x7F), 6);
+ Code[2] = LShiftU64 (Imm7b, 13);
+ Code[2] = Code[2] | LShiftU64 (0x00, 20); // vc
+ Code[2] = Code[2] | LShiftU64 (Ic, 21);
+ Code[2] = Code[2] | LShiftU64 (Imm5c, 22);
+ Code[2] = Code[2] | LShiftU64 (Imm9d, 27);
+ Code[2] = Code[2] | LShiftU64 (I, 36);
+ Code[2] = Code[2] | LShiftU64 ((UINT64)MOVL_OPCODE, 37);
+ Code[2] = Code[2] | LShiftU64 ((RegNum & 0x7F), 6);
WriteBundle ((VOID *) Ptr, 0x05, Code[0], Code[1], Code[2]);
@@ -533,14 +534,14 @@ Returns:
//
// Next is jumbled data, including opcode and rest of address
//
- Code[2] = LShiftU64 (Imm7b, 13)
- | LShiftU64 (0x00, 20) // vc
- | LShiftU64 (Ic, 21)
- | LShiftU64 (Imm5c, 22)
- | LShiftU64 (Imm9d, 27)
- | LShiftU64 (I, 36)
- | LShiftU64 ((UINT64)MOVL_OPCODE, 37)
- | LShiftU64 ((RegNum & 0x7F), 6);
+ Code[2] = LShiftU64 (Imm7b, 13);
+ Code[2] = Code[2] | LShiftU64 (0x00, 20); // vc
+ Code[2] = Code[2] | LShiftU64 (Ic, 21);
+ Code[2] = Code[2] | LShiftU64 (Imm5c, 22);
+ Code[2] = Code[2] | LShiftU64 (Imm9d, 27);
+ Code[2] = Code[2] | LShiftU64 (I, 36);
+ Code[2] = Code[2] | LShiftU64 ((UINT64)MOVL_OPCODE, 37);
+ Code[2] = Code[2] | LShiftU64 ((RegNum & 0x7F), 6);
WriteBundle ((VOID *) Ptr, 0x05, Code[0], Code[1], Code[2]);
@@ -604,14 +605,14 @@ Returns:
//
// Next is jumbled data, including opcode and rest of address
//
- Code[2] = LShiftU64(Imm7b, 13)
- | LShiftU64 (0x00, 20) // vc
- | LShiftU64 (Ic, 21)
- | LShiftU64 (Imm5c, 22)
- | LShiftU64 (Imm9d, 27)
- | LShiftU64 (I, 36)
- | LShiftU64 ((UINT64)MOVL_OPCODE, 37)
- | LShiftU64 ((RegNum & 0x7F), 6);
+ Code[2] = LShiftU64(Imm7b, 13);
+ Code[2] = Code[2] | LShiftU64 (0x00, 20); // vc
+ Code[2] = Code[2] | LShiftU64 (Ic, 21);
+ Code[2] = Code[2] | LShiftU64 (Imm5c, 22);
+ Code[2] = Code[2] | LShiftU64 (Imm9d, 27);
+ Code[2] = Code[2] | LShiftU64 (I, 36);
+ Code[2] = Code[2] | LShiftU64 ((UINT64)MOVL_OPCODE, 37);
+ Code[2] = Code[2] | LShiftU64 ((RegNum & 0x7F), 6);
WriteBundle ((VOID *) Ptr, 0x05, Code[0], Code[1], Code[2]);
@@ -722,8 +723,11 @@ Returns:
return EFI_INVALID_PARAMETER;
}
- Low64 = LShiftU64 (Slot1, 46) | LShiftU64 (Slot0, 5) | Template;
- High64 = RShiftU64 (Slot1, 18) | LShiftU64 (Slot2, 23);
+ Low64 = LShiftU64 (Slot1, 46);
+ Low64 = Low64 | LShiftU64 (Slot0, 5) | Template;
+
+ High64 = RShiftU64 (Slot1, 18);
+ High64 = High64 | LShiftU64 (Slot2, 23);
//
// Now write it all out
@@ -816,14 +820,13 @@ Returns:
CodeTwo5c = RShiftU64 (*((UINT64 *)CalleeAddr + 3), 45) & 0x1F;
CodeTwo9d = RShiftU64 (*((UINT64 *)CalleeAddr + 3), 50) & 0x1FF;
- TargetEbcAddr = CodeTwo7b
- | LShiftU64 (CodeTwo9d, 7)
- | LShiftU64 (CodeTwo5c, 16)
- | LShiftU64 (CodeTwoIc, 21)
- | LShiftU64 (CodeOne18, 22)
- | LShiftU64 (CodeOne23, 40)
- | LShiftU64 (CodeTwoI, 63)
- ;
+ TargetEbcAddr = CodeTwo7b;
+ TargetEbcAddr = TargetEbcAddr | LShiftU64 (CodeTwo9d, 7);
+ TargetEbcAddr = TargetEbcAddr | LShiftU64 (CodeTwo5c, 16);
+ TargetEbcAddr = TargetEbcAddr | LShiftU64 (CodeTwoIc, 21);
+ TargetEbcAddr = TargetEbcAddr | LShiftU64 (CodeOne18, 22);
+ TargetEbcAddr = TargetEbcAddr | LShiftU64 (CodeOne23, 40);
+ TargetEbcAddr = TargetEbcAddr | LShiftU64 (CodeTwoI, 63);
Action:
if (IsThunk == 1){