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

Reply via email to