Hi gem5 users,


I am studying the behavior of store-conditional instruction (stxr) in
o3-pipeline by o3-visualizer (O3PipeView).

However, O3PipeView does not print the stxr instruction in trace file. It
seems that O3PipeView gets printed when destructor of dynamic instructions
is called (file: dyn_inst_impl.hh, ~BaseO3DynInst()).

Trace file prints ldxr instruction (as below) but no stxr. It seems stxr in
handled differently in somewhere in the pipeline unlike ldxr. Please shed
some light on this.

However, with O3CPUAll flag, I can see the stxr in the trace file executing
successfully.


Am I missing something? Any hint would be of much help.



*Program*

.comm i,8

.text

.globl _start

_start:

 adr     x3, i

 ldxr    x4, [x3]

 stxr    w5, x4, [x3]

 add     x17, x18, x19

 mov     x8, 93          /* exit is syscall #93 */

 svc     0               /* invoke syscall */



*Tracefile*


*O3PipeView:fetch:82917:0x004000b0:0:1:  adr   x3, #65560*

*O3PipeView:decode:83250*

*O3PipeView:rename:83583*

*O3PipeView:dispatch:84249*

*O3PipeView:issue:84249*

*O3PipeView:complete:84582*

*O3PipeView:retire:85248:store:0*

*O3PipeView:fetch:82917:0x004000b4:0:2:  ldxr   x4, xzr, [x3]*

*O3PipeView:decode:83250*

*O3PipeView:rename:83583*

*O3PipeView:dispatch:84249*

*O3PipeView:issue:84582*

*O3PipeView:complete:85914*

*O3PipeView:retire:150183:store:0*

*O3PipeView:fetch:82917:0x004000bc:0:4:  add   x17, x18, x19*

*O3PipeView:decode:83250*

*O3PipeView:rename:83583*

*O3PipeView:dispatch:152181*

*O3PipeView:issue:152181*

*O3PipeView:complete:152514*

*O3PipeView:retire:153180:store:0*

Thanks in advance for your time.

-- 
with regards,
Virendra Kumar Pathak
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to