Looking at the code for the ALPHA ISA, I've run across something that's
either an outdated comment or something I don't quite understand.
In particular I'm looking at the code for LoadStoreBase in
src/arch/alpha/isa/mem.isa:
468 # Some CPU models execute the memory operation as an atomic unit,
469 # while others want to separate them into an effective address
470 # computation and a memory access operation. As a result, we need
471 # to generate three StaticInst objects. Note that the latter two
472 # are nested inside the larger "atomic" one.
473
474 # *Generate InstObjParams for each of the three objects.* Note that
475 # they differ only in the set of code objects contained (which in
476 # turn affects the object's overall operand list).
477 iop = InstObjParams(name, Name, base_class,
478 { 'ea_code':ea_code, 'memacc_code':memacc_code,
'postacc_code':postacc_code },
479 inst_flags)
480 memacc_iop = InstObjParams(name, Name, base_class,
481 { 'memacc_code':memacc_code,
'postacc_code':postacc_code },
482 inst_flags)
The first part that has me scratching my head is that the comment says that
it will generate 3 instances of InstObjParams, but it looks like only 2 are
created down below.
The second part that has me confused is that it doesn't seem that
memacc_iopis actually used anywhere down below. Doesn't an
InstObjParam only have an
effect if it is passed through the subst() method of some template? Or am I
missing something?
Thanks!
Paul
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users