From f8a2dddb573faef41ad43ee111d91d4c5259ad59 Mon Sep 17 00:00:00 2001 From: Eric Biederman Date: Sat, 30 Oct 2004 08:05:41 +0000 Subject: - To reduce confuse rename the parts of linuxbios bios that run from ram linuxbios_ram instead of linuxbios_c and linuxbios_payload... - Reordered the linker sections so the LinuxBIOS fallback image can take more the 64KiB on x86 - ROM_IMAGE_SIZE now will work when it is specified as larger than 64KiB. - Tweaked the reset16.inc and reset16.lds to move the sanity check to see if everything will work. - Start using romcc's built in preprocessor (This will simplify header compiler checks) - Add helper functions for examining all of the resources - Remove debug strings from chip.h - Add llshell to src/arch/i386/llshell (Sometime later I can try it...) - Add the ability to catch exceptions on x86 - Add gdb_stub support to x86 - Removed old cpu options - Added an option so we can detect movnti support - Remove some duplicate definitions from pci_ids.h - Remove the 64bit resource code in amdk8/northbridge.c in preparation for making it generic - Minor romcc bug fixes git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1727 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- util/romcc/romcc.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'util/romcc/romcc.c') diff --git a/util/romcc/romcc.c b/util/romcc/romcc.c index f9719e8208..e03bb6b41b 100644 --- a/util/romcc/romcc.c +++ b/util/romcc/romcc.c @@ -3557,7 +3557,7 @@ static void define_macro( if (macro != 0) { /* Explicitly allow identical redefinitions of the same macro */ if ((macro->buf_len == value_len) && - (memcmp(macro->buf, value, value_len))) { + (memcmp(macro->buf, value, value_len) == 0)) { return; } error(state, 0, "macro %s already defined\n", ident->name); @@ -4804,7 +4804,7 @@ static long_t mprimary_expr(struct compile_state *state, int index) if ((lval > LONG_T_MAX) || (lval < LONG_T_MIN) || (((lval == LONG_MIN) || (lval == LONG_MAX)) && (errno == ERANGE))) { - error(state, 0, "Integer constant to large"); + error(state, 0, "Integer constant `%s' to large", state->token[index].val.str); } val = lval; break; @@ -24196,6 +24196,16 @@ static void print_op_move(struct compile_state *state, } } #endif /* X86_4_8BIT_GPRS */ + /* Move from %eax:%edx to %eax:%edx */ + else if ((src_regcm & REGCM_DIVIDEND64) && + (dst_regcm & REGCM_DIVIDEND64) && + (src_reg == dst_reg)) { + if (!omit_copy) { + fprintf(fp, "\t/*mov %s, %s*/\n", + arch_reg_str(src_reg), + arch_reg_str(dst_reg)); + } + } else { if ((src_regcm & ~REGCM_FLAGS) == 0) { internal_error(state, ins, "attempt to copy from %%eflags!"); -- cgit v1.2.3