Hi, Thanks Amin for your answer. I'm my case, the m5op_arm.S file has already this fix!
Regards, -- Fernando A. Endo, PhD student and researcher Université de Grenoble, UJF France 2012/11/12 Amin Farmahini <[email protected]> > I had a similar problem with thumb instruction. The patch below (provided > by Ali) fixed my problem. I think this should work for you as well. > > diff -r 839eeb3fcdf8 util/m5/m5op_arm.S > --- a/util/m5/m5op_arm.S Mon Apr 30 10:23:46 2012 -0500 > > > +++ b/util/m5/m5op_arm.S Mon Apr 30 16:50:41 2012 -0500 > @@ -41,14 +41,26 @@ > * Ali Saidi > * Chander Sudanthi > */ > +.syntax unified > +#ifdef __thumb__ > +.thumb > > > +#endif > > #define m5_op 0xEE > > #include "m5ops.h" > > +#ifdef __thumb__ > +#define INST(op, ra, rb, func) \ > + .short (((op) << 8) | (func)); \ > > > + .short (((ra) << 12) | (0x1 << 8) | (0x1 << 4) | (rb)) > +/* m5ops m5func */ > +/* ra coproc 1 op=1 rb */ > +#else > > > #define INST(op, ra, rb, func) \ > .long (((op) << 24) | ((func) << 16) | ((ra) << 12) | (0x1 << 8) | > (0x1 << 4) | (rb)) > /* m5ops m5func ra coproc 1 > op=1 rb */ > > > +#endif > > #define LEAF(func) \ > .globl func; \ > > > Thanks, > Amin > > > > > On Mon, Nov 12, 2012 at 8:41 AM, Fernando Endo > <[email protected]>wrote: > >> Hello all, >> >> I'm trying to run an ARM code using the thumb instruction set. I'm using >> the stable version of gem5. >> The code is completly writen in C, and my target is "arm_detailed". I use >> the instructions m5_reset_stats and m5_dump_stats provided by gem5 to >> control the stats generation. >> >> When I compile, I get some warning messages (listing 1) >> I think they can be ignored, because both instruction I use aren't >> truncated >> >> Ok, then gem5 panics at an unknown instruction (listing 2). >> Saddly, when I comment the m5_*_stats commands, gem5 simutation is ok >> (listing 3). >> >> With or without -mcpu=cortex-a9, the result is the same. The code works >> without -mthumb and -D__thumb__. Any idea? >> >> listing 1: >> ----- >> arm-linux-gnueabi-gcc-4.4 -I"../gem5-stable" -D__thumb__ -O3 -static >> -mthumb -mcpu=cortex-a9 -o main_unroll.o -c main_unroll.c >> arm-linux-gnueabi-gcc-4.4 -I"../gem5-stable" -D__thumb__ -O3 -static >> -mthumb -mcpu=cortex-a9 -o utils.o -c utils.c >> arm-linux-gnueabi-gcc-4.4 -I"../gem5-stable" -D__thumb__ -O3 -static >> -mthumb -mcpu=cortex-a9 -o mmunroll1.o -c mmunroll1.c >> arm-linux-gnueabi-gcc-4.4 -I"../gem5-stable" -D__thumb__ -O3 -static >> -mthumb -mcpu=cortex-a9 -o mmunroll1.bin mmunroll1.o main_unroll.o utils.o >> ../gem5-stable/util/m5/m5op_arm.S >> ../gem5-stable/util/m5/m5op_arm.S: Assembler messages: >> ../gem5-stable/util/m5/m5op_arm.S:159: Warning: value 0x10110 truncated >> to 0x110 >> ../gem5-stable/util/m5/m5op_arm.S:160: Warning: value 0x11110 truncated >> to 0x1110 >> ----- >> >> listing 2: >> ----- >> gem5 Simulator System. http://gem5.org >> gem5 is copyrighted software; use the --copyright option for details. >> >> gem5 compiled Nov 6 2012 18:03:46 >> gem5 started Nov 12 2012 15:06:28 >> gem5 executing on GRE034537 >> command line: gem5-stable/build/ARM/gem5.opt -d Results/gem5out >> --stats-file=statsMMU1.txt gem5-stable/configs/example/se.py -c >> mmul_src/mmunroll1.bin -o 10 --caches --l2cache --cpu-type=arm_detailed >> Global frequency set at 1000000000000 ticks per second >> 0: system.remote_gdb.listener: listening for remote gdb #0 on port 7000 >> **** REAL SIMULATION **** >> info: Entering event queue @ 0. Starting simulation... >> warn: CP14 unimplemented crn[14], opc1[7], crm[15], opc2[7] >> matrix size : 10 x 10 elements >> matrix size : 0x190 bytes >> size of gdata : 0x100000 bytes >> panic: Attempted to execute unknown instruction (inst 0x2ee4146f7) >> @ cycle 21103000 >> [invoke:build/ARM/arch/arm/faults.cc, line 191] >> Memory Usage: 629556 KBytes >> Program aborted at cycle 21103000 >> ----- >> >> listing 3: >> ----- >> gem5 Simulator System. http://gem5.org >> gem5 is copyrighted software; use the --copyright option for details. >> >> gem5 compiled Nov 6 2012 18:03:46 >> gem5 started Nov 12 2012 15:13:12 >> gem5 executing on GRE034537 >> command line: gem5-stable/build/ARM/gem5.opt -d Results/gem5out >> --stats-file=statsMMU1.txt gem5-stable/configs/example/se.py -c >> mmul_src/mmunroll1.bin -o 10 --caches --l2cache --cpu-type=arm_detailed >> Global frequency set at 1000000000000 ticks per second >> 0: system.remote_gdb.listener: listening for remote gdb #0 on port 7000 >> **** REAL SIMULATION **** >> info: Entering event queue @ 0. Starting simulation... >> warn: CP14 unimplemented crn[14], opc1[7], crm[15], opc2[7] >> matrix size : 10 x 10 elements >> matrix size : 0x190 bytes >> size of gdata : 0x100000 bytes >> hack: be nice to actually delete the event here >> Exiting @ tick 27101000 because target called exit() >> ----- >> >> Regards, >> >> -- >> Fernando A. Endo, PhD student and researcher >> >> Université de Grenoble, UJF >> France >> >> >> _______________________________________________ >> gem5-users mailing list >> [email protected] >> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users >> > > > _______________________________________________ > gem5-users mailing list > [email protected] > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users >
_______________________________________________ gem5-users mailing list [email protected] http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
