This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Wednesday 18 August 2004 12:36 pm, Sven Heithecker wrote: > Hi, > > we are using a crossgcc-build gcc to compile programms to us with the > PowerPC 750 simulator/emulator from www.microlib.org. Unfortunately, only > very small programs run, serious programs crash with the following message: > > Attempted to execute a bogus opcode at 0x1001c180 (OPCD = 31, XO_10 = 246, > XO_9 = 246, XO_5 = 22) > 0x1001c180 : 0x7c0831ec ???? > 0x1001c184 : 0x9086fffc stw r4, -4(r6) > 0x1001c188 : 0x9086fff8 stw r4, -8(r6) > 0x1001c18c : 0x9086fff4 stw r4, -12(r6) > 0x1001c190 : 0x9086fff0 stw r4, -16(r6) > 0x1001c194 : 0x60000000 ori r0, r0, 0 > 0x1001c198 : 0x9086ffec stw r4, -20(r6) > 0x1001c19c : 0x9086ffe8 stw r4, -24(r6) > 0x1001c1a0 : 0x60000000 ori r0, r0, 0 > 0x1001c1a4 : 0x9086ffe4 stw r4, -28(r6) > > Does someone have a clue what to do about this ? Unfortunately, I dont get > any answer from emails to microlib.org. > > Regards, Sven Sven, Are you sure the program starts from the _start label like it should? I had problems with mine since _start was not the first instruction in the text section. This patch fixes that, along with a couple of other bug fixes. I got no response from the author when I sent in the patch. - Jay
diff -uNr orig/ppc750sim-1.0.4/powerpc/src/BTIC.cpp ppc750sim-1.0.4/powerpc/src/BTIC.cpp --- orig/ppc750sim-1.0.4/powerpc/src/BTIC.cpp Fri Nov 15 05:19:07 2002 +++ ppc750sim-1.0.4/powerpc/src/BTIC.cpp Tue Nov 18 10:00:23 2003 @@ -79,16 +79,16 @@ case 1: plrubits[index] |= B0; - plrubits[index] &= B1; + plrubits[index] &= ~B1; break; case 2: plrubits[index] |= B2; - plrubits[index] &= B0; + plrubits[index] &= ~B0; break; case 3: - plrubits[index] &= B0 + B2; + plrubits[index] &= ~(B0 + B2); break; } break; diff -uNr orig/ppc750sim-1.0.4/powerpc/src/Cache.cpp ppc750sim-1.0.4/powerpc/src/Cache.cpp --- orig/ppc750sim-1.0.4/powerpc/src/Cache.cpp Fri Nov 15 05:19:07 2002 +++ ppc750sim-1.0.4/powerpc/src/Cache.cpp Tue Nov 18 10:01:30 2003 @@ -94,16 +94,16 @@ case 1: plrubits[index] |= B0; - plrubits[index] &= B1; + plrubits[index] &= ~B1; break; case 2: plrubits[index] |= B2; - plrubits[index] &= B0; + plrubits[index] &= ~B0; break; case 3: - plrubits[index] &= B0 + B2; + plrubits[index] &= ~(B0 + B2); break; } break; diff -uNr orig/ppc750sim-1.0.4/powerpc/src/Makefile ppc750sim-1.0.4/powerpc/src/Makefile --- orig/ppc750sim-1.0.4/powerpc/src/Makefile Fri Nov 15 05:33:43 2002 +++ ppc750sim-1.0.4/powerpc/src/Makefile Wed Nov 12 14:56:27 2003 @@ -7,7 +7,7 @@ ###################################################### #SYSTEMC_DIR=/usr/local/systemc-1.0.2 -SYSTEMC_DIR=/usr/local/systemc-2.0.1 +SYSTEMC_DIR=/opt/systemc ###################################################### # # @@ -53,7 +53,7 @@ ###################################################### ################## For SystemC 2.x ################### -CXXFLAGS=-DSC2 -O3 -fomit-frame-pointer -fexpensive-optimizations -fstrength-reduce -fschedule-insns2 -funroll-loops +CXXFLAGS=-DSC2 -O3 -g -fomit-frame-pointer -fexpensive-optimizations -fstrength-reduce -fschedule-insns2 -funroll-loops LIBS=-L$(SYSTEMC_DIR)/lib-$(ARCH) -L$(PPCEMUL_DIR)/lib -lsystemc -lppcemul -lstdc++ ###################################################### diff -uNr orig/ppc750sim-1.0.4/powerpc/src/PowerPC.cpp ppc750sim-1.0.4/powerpc/src/PowerPC.cpp --- orig/ppc750sim-1.0.4/powerpc/src/PowerPC.cpp Fri Nov 15 05:45:56 2002 +++ ppc750sim-1.0.4/powerpc/src/PowerPC.cpp Fri Nov 14 10:45:08 2003 @@ -1136,7 +1136,7 @@ { busInterfaceUnit->MemoryWrite(new_section_addr, (UInt8 *) new_section, new_section_size); busInterfaceUnit->ZeroMemory(new_section_addr + new_section_size, 128); - fetchUnit->programCounter = new_section_addr; + fetchUnit->programCounter = hdr->e_entry; } else { diff -uNr orig/ppc750sim-1.0.4/ppcemul/src/Makefile ppc750sim-1.0.4/ppcemul/src/Makefile --- orig/ppc750sim-1.0.4/ppcemul/src/Makefile Wed Jul 31 04:41:37 2002 +++ ppc750sim-1.0.4/ppcemul/src/Makefile Fri Nov 7 16:44:11 2003 @@ -9,7 +9,7 @@ # # ################################################################################################## -CFLAGS=-O3 -fomit-frame-pointer -fexpensive-optimizations -fstrength-reduce -fschedule-insns2 -funroll-loops +CFLAGS=-O3 -g -fomit-frame-pointer -fexpensive-optimizations -fstrength-reduce -fschedule-insns2 -funroll-loops LIBS=-lm INCLUDES=-I../include diff -uNr orig/ppc750sim-1.0.4/ppcemul/src/loader.c ppc750sim-1.0.4/ppcemul/src/loader.c --- orig/ppc750sim-1.0.4/ppcemul/src/loader.c Wed Jul 31 05:37:00 2002 +++ ppc750sim-1.0.4/ppcemul/src/loader.c Fri Nov 7 16:18:37 2003 @@ -227,7 +227,7 @@ { MEM_WRITE(new_section_addr, new_section, new_section_size); MEM_SET(new_section_addr + new_section_size, 0, 128); - PC = new_section_addr; + PC = hdr->e_entry; } else {
------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |