-/*++\r
-\r
-Copyright (c) 2006, Intel Corporation \r
-All rights reserved. This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution. The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php \r
- \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
-Module Name:\r
-\r
- PeHotRelocateEx.h\r
-\r
-Abstract:\r
-\r
- Fixes Intel Itanium(TM) specific relocation types\r
-\r
-\r
-Revision History\r
-\r
---*/\r
-\r
-#ifndef _PEHOTRELOCATE_EX_H_\r
-#define _PEHOTRELOCATE_EX_H_\r
-\r
-#define EXT_IMM64(Value, Address, Size, InstPos, ValPos) \\r
- Value |= (((UINT64) ((*(Address) >> InstPos) & (((UINT64) 1 << Size) - 1))) << ValPos)\r
-\r
-#define INS_IMM64(Value, Address, Size, InstPos, ValPos) \\r
- * (UINT32 *) Address = \\r
- (*(UINT32 *) Address &~(((1 << Size) - 1) << InstPos)) | \\r
- ((UINT32) ((((UINT64) Value >> ValPos) & (((UINT64) 1 << Size) - 1))) << InstPos)\r
-\r
-#define IMM64_IMM7B_INST_WORD_X 3\r
-#define IMM64_IMM7B_SIZE_X 7\r
-#define IMM64_IMM7B_INST_WORD_POS_X 4\r
-#define IMM64_IMM7B_VAL_POS_X 0\r
-\r
-#define IMM64_IMM9D_INST_WORD_X 3\r
-#define IMM64_IMM9D_SIZE_X 9\r
-#define IMM64_IMM9D_INST_WORD_POS_X 18\r
-#define IMM64_IMM9D_VAL_POS_X 7\r
-\r
-#define IMM64_IMM5C_INST_WORD_X 3\r
-#define IMM64_IMM5C_SIZE_X 5\r
-#define IMM64_IMM5C_INST_WORD_POS_X 13\r
-#define IMM64_IMM5C_VAL_POS_X 16\r
-\r
-#define IMM64_IC_INST_WORD_X 3\r
-#define IMM64_IC_SIZE_X 1\r
-#define IMM64_IC_INST_WORD_POS_X 12\r
-#define IMM64_IC_VAL_POS_X 21\r
-\r
-#define IMM64_IMM41a_INST_WORD_X 1\r
-#define IMM64_IMM41a_SIZE_X 10\r
-#define IMM64_IMM41a_INST_WORD_POS_X 14\r
-#define IMM64_IMM41a_VAL_POS_X 22\r
-\r
-#define IMM64_IMM41b_INST_WORD_X 1\r
-#define IMM64_IMM41b_SIZE_X 8\r
-#define IMM64_IMM41b_INST_WORD_POS_X 24\r
-#define IMM64_IMM41b_VAL_POS_X 32\r
-\r
-#define IMM64_IMM41c_INST_WORD_X 2\r
-#define IMM64_IMM41c_SIZE_X 23\r
-#define IMM64_IMM41c_INST_WORD_POS_X 0\r
-#define IMM64_IMM41c_VAL_POS_X 40\r
-\r
-#define IMM64_SIGN_INST_WORD_X 3\r
-#define IMM64_SIGN_SIZE_X 1\r
-#define IMM64_SIGN_INST_WORD_POS_X 27\r
-#define IMM64_SIGN_VAL_POS_X 63\r
-\r
-#endif\r