There is a fix here: http://reviews.gem5.org/r/2505/ http://reviews.gem5.org/r/2506/
It's been waiting for review, but should hopefully go in in the next day or so. Gabe On Mon, Nov 24, 2014 at 5:02 PM, Ahmed Khawaja via gem5-dev < [email protected]> wrote: > 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 > _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
