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

Reply via email to