[U-Boot] [PATCH 2/2] Leave x86emu op code tables in default section
Ed Swarthout
Ed.Swarthout at freescale.com
Thu Oct 9 08:27:18 CEST 2008
Forcing the tables into got2 caused extra relocation when using -mrelocatable.
This patch requires any board defining CONFIG_BIOSEMU to use -mrelocatable.
Signed-off-by: Ed Swarthout <Ed.Swarthout at freescale.com>
---
The only boards which define CONFIG_BIOSEMU are:
MPC8536DS, MPC8572DS, MPC8544DS, HPC8641HPCN, and sequoia.
I've tested this patch on the 8572 and 8544 boards.
drivers/bios_emulator/x86emu/ops.c | 17 +++++++----------
drivers/bios_emulator/x86emu/ops2.c | 5 +----
2 files changed, 8 insertions(+), 14 deletions(-)
diff --git a/drivers/bios_emulator/x86emu/ops.c b/drivers/bios_emulator/x86emu/ops.c
index 10f2757..b0ad1fa 100644
--- a/drivers/bios_emulator/x86emu/ops.c
+++ b/drivers/bios_emulator/x86emu/ops.c
@@ -70,9 +70,6 @@
* calls is especially important; otherwise mistakes in coding an
* "add" would represent a nightmare in maintenance.
*
-* Jason ported this file to u-boot. place all the function pointer in
-* the got2 sector. Removed some opcode.
-*
****************************************************************************/
#include <common.h>
@@ -91,7 +88,7 @@ static char *x86emu_GenOpName[8] = {
#endif
/* used by several opcodes */
-static u8 (*genop_byte_operation[])(u8 d, u8 s) __attribute__ ((section(GOT2_TYPE))) =
+static u8 (*genop_byte_operation[])(u8 d, u8 s) =
{
add_byte, /* 00 */
or_byte, /* 01 */
@@ -103,7 +100,7 @@ static u8 (*genop_byte_operation[])(u8 d, u8 s) __attribute__ ((section(GOT2_TYP
cmp_byte, /* 07 */
};
-static u16 (*genop_word_operation[])(u16 d, u16 s) __attribute__ ((section(GOT2_TYPE))) =
+static u16 (*genop_word_operation[])(u16 d, u16 s) =
{
add_word, /*00 */
or_word, /*01 */
@@ -115,7 +112,7 @@ static u16 (*genop_word_operation[])(u16 d, u16 s) __attribute__ ((section(GOT2_
cmp_word, /*07 */
};
-static u32 (*genop_long_operation[])(u32 d, u32 s) __attribute__ ((section(GOT2_TYPE))) =
+static u32 (*genop_long_operation[])(u32 d, u32 s) =
{
add_long, /*00 */
or_long, /*01 */
@@ -128,7 +125,7 @@ static u32 (*genop_long_operation[])(u32 d, u32 s) __attribute__ ((section(GOT2_
};
/* used by opcodes 80, c0, d0, and d2. */
-static u8(*opcD0_byte_operation[])(u8 d, u8 s) __attribute__ ((section(GOT2_TYPE))) =
+static u8(*opcD0_byte_operation[])(u8 d, u8 s) =
{
rol_byte,
ror_byte,
@@ -141,7 +138,7 @@ static u8(*opcD0_byte_operation[])(u8 d, u8 s) __attribute__ ((section(GOT2_TYPE
};
/* used by opcodes c1, d1, and d3. */
-static u16(*opcD1_word_operation[])(u16 s, u8 d) __attribute__ ((section(GOT2_TYPE))) =
+static u16(*opcD1_word_operation[])(u16 s, u8 d) =
{
rol_word,
ror_word,
@@ -154,7 +151,7 @@ static u16(*opcD1_word_operation[])(u16 s, u8 d) __attribute__ ((section(GOT2_TY
};
/* used by opcodes c1, d1, and d3. */
-static u32 (*opcD1_long_operation[])(u32 s, u8 d) __attribute__ ((section(GOT2_TYPE))) =
+static u32 (*opcD1_long_operation[])(u32 s, u8 d) =
{
rol_long,
ror_long,
@@ -5147,7 +5144,7 @@ void x86emuOp_opcFF_word_RM(u8 X86EMU_UNUSED(op1))
/***************************************************************************
* Single byte operation code table:
**************************************************************************/
-void (*x86emu_optab[256])(u8) __attribute__ ((section(GOT2_TYPE))) =
+void (*x86emu_optab[256])(u8) =
{
/* 0x00 */ x86emuOp_genop_byte_RM_R,
/* 0x01 */ x86emuOp_genop_word_RM_R,
diff --git a/drivers/bios_emulator/x86emu/ops2.c b/drivers/bios_emulator/x86emu/ops2.c
index d90d366..99d1eae 100644
--- a/drivers/bios_emulator/x86emu/ops2.c
+++ b/drivers/bios_emulator/x86emu/ops2.c
@@ -39,9 +39,6 @@
* and emulation of all the x86 extended two-byte processor
* instructions.
*
-* Jason port this file to u-boot. Put the function pointer into
-* got2 sector.
-*
****************************************************************************/
#include <common.h>
@@ -1498,7 +1495,7 @@ void x86emuOp2_movsx_word_R_RM(u8 X86EMU_UNUSED(op2))
/***************************************************************************
* Double byte operation code table:
**************************************************************************/
-void (*x86emu_optab2[256])(u8) __attribute__((section(GOT2_TYPE))) =
+void (*x86emu_optab2[256])(u8) =
{
/* 0x00 */ x86emuOp2_illegal_op, /* Group F (ring 0 PM) */
/* 0x01 */ x86emuOp2_illegal_op, /* Group G (ring 0 PM) */
--
1.5.6.5
More information about the U-Boot
mailing list