mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-24 14:25:56 +00:00
Leave x86emu op code tables in default section
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@freescale.com> Acked-by: Jin Zhengxiong <Jason.Jin@freescale.com>
This commit is contained in:
parent
cd77dd109c
commit
285870f753
2 changed files with 8 additions and 14 deletions
|
@ -70,9 +70,6 @@
|
||||||
* calls is especially important; otherwise mistakes in coding an
|
* calls is especially important; otherwise mistakes in coding an
|
||||||
* "add" would represent a nightmare in maintenance.
|
* "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>
|
#include <common.h>
|
||||||
|
@ -88,7 +85,7 @@ static char *x86emu_GenOpName[8] = {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* used by several opcodes */
|
/* 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 */
|
add_byte, /* 00 */
|
||||||
or_byte, /* 01 */
|
or_byte, /* 01 */
|
||||||
|
@ -100,7 +97,7 @@ static u8 (*genop_byte_operation[])(u8 d, u8 s) __attribute__ ((section(GOT2_TYP
|
||||||
cmp_byte, /* 07 */
|
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 */
|
add_word, /*00 */
|
||||||
or_word, /*01 */
|
or_word, /*01 */
|
||||||
|
@ -112,7 +109,7 @@ static u16 (*genop_word_operation[])(u16 d, u16 s) __attribute__ ((section(GOT2_
|
||||||
cmp_word, /*07 */
|
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 */
|
add_long, /*00 */
|
||||||
or_long, /*01 */
|
or_long, /*01 */
|
||||||
|
@ -125,7 +122,7 @@ static u32 (*genop_long_operation[])(u32 d, u32 s) __attribute__ ((section(GOT2_
|
||||||
};
|
};
|
||||||
|
|
||||||
/* used by opcodes 80, c0, d0, and d2. */
|
/* 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,
|
rol_byte,
|
||||||
ror_byte,
|
ror_byte,
|
||||||
|
@ -138,7 +135,7 @@ static u8(*opcD0_byte_operation[])(u8 d, u8 s) __attribute__ ((section(GOT2_TYPE
|
||||||
};
|
};
|
||||||
|
|
||||||
/* used by opcodes c1, d1, and d3. */
|
/* 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,
|
rol_word,
|
||||||
ror_word,
|
ror_word,
|
||||||
|
@ -151,7 +148,7 @@ static u16(*opcD1_word_operation[])(u16 s, u8 d) __attribute__ ((section(GOT2_TY
|
||||||
};
|
};
|
||||||
|
|
||||||
/* used by opcodes c1, d1, and d3. */
|
/* 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,
|
rol_long,
|
||||||
ror_long,
|
ror_long,
|
||||||
|
@ -5144,7 +5141,7 @@ void x86emuOp_opcFF_word_RM(u8 X86EMU_UNUSED(op1))
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
* Single byte operation code table:
|
* 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,
|
/* 0x00 */ x86emuOp_genop_byte_RM_R,
|
||||||
/* 0x01 */ x86emuOp_genop_word_RM_R,
|
/* 0x01 */ x86emuOp_genop_word_RM_R,
|
||||||
|
|
|
@ -39,9 +39,6 @@
|
||||||
* and emulation of all the x86 extended two-byte processor
|
* and emulation of all the x86 extended two-byte processor
|
||||||
* instructions.
|
* instructions.
|
||||||
*
|
*
|
||||||
* Jason port this file to u-boot. Put the function pointer into
|
|
||||||
* got2 sector.
|
|
||||||
*
|
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
|
@ -1495,7 +1492,7 @@ void x86emuOp2_movsx_word_R_RM(u8 X86EMU_UNUSED(op2))
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
* Double byte operation code table:
|
* 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) */
|
/* 0x00 */ x86emuOp2_illegal_op, /* Group F (ring 0 PM) */
|
||||||
/* 0x01 */ x86emuOp2_illegal_op, /* Group G (ring 0 PM) */
|
/* 0x01 */ x86emuOp2_illegal_op, /* Group G (ring 0 PM) */
|
||||||
|
|
Loading…
Add table
Reference in a new issue