Greetings,

     I am trying to run an SSE-enabled program through GEM5 in SE mode and
I get an error about "panic: Tried to read unmpapped address 0x130c1c0", I
disassembled my program and ran gem5 with instruction tracing. The
offending instruction does NOT appear in the disassembled code. The
interesting thing to note is I added an implementation of the PEXTRB
instruction and the offending instruction (which shouldn't) is directly
after the first PEXTRB instruction is executed (it only shows 1 being
executed, though in the source code they only appear in sequences of 8
PEXTRB instrucitons in a row). I am lead to believe this is an issue with
the front end decoder, can anyone tell me if my diagnosis seems correct and
what level of confidence should I expect in the front end decoder for an
instruction that was NOT implemented.

   I was able to successfully reproduce the error using a stand alone
micro-program (which I have attached) and the source code is listed below.
The program runs fine (doesn't do anything really) stand alone, but crashes
in gem5 with the same signature of a random ADD instruction appearing after
the PEXTRB instruction. Two things to note, in the committed version of
GEM5 PEXTRB is not implemented but it SHOULD still be decoded properly. The
program works fine if I change the PEXTRB instruction to reference a
register instead of memory, it appears the bug becomes an issue when the
destination is a memory operand. The instruction listed below is a copy of
what was in my original program. Furthermore, I tried running it the with
immediate byte != 0 and the program did NOT crash in GEM5. Any help would
be greatly appreciated!

Gabe replied last time, but I have not heard anything since, is anyone
looking into this or can give me pointers on resolving the issue?


// Compile me with: g++ -static -msse4 sse_test.cpp
#include "smmintrin.h"
int main()  {
asm(
"pushq %rax \n"
"pushq %rdx \n"
"movq $0x0, %rdx \n"
"movq %rsp, %rax \n"
"subq $0xc, %rax \n"
"pextrb $0x0,%xmm0, 0xc(%rdx,%rax,1) \n"
"pxor %xmm0, %xmm0 \n"
"popq %rdx \n"
"popq %rax \n"
);
return 0;
}


Thank you,
   Ahmed Khawaja
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to