The format calls a function that is defined by (not in) the insts code. The templates are just that boilerplate code that gets string substitutions to turn it into the what ends up in build/ARM/arch/arm/generated/*. Pretty much insts instantiates string substituted templates from templates that are decoded by formats.
Ali On Jun 26, 2013, at 9:10 AM, Jianghao <guojh...@gmail.com> wrote: > Thanks Ali. You are always helpful. > > Inside buildMultInst(), there is call to templates defined in > src/arch/arm/isa/templates/multi.isa, but I cannot find connection between > src/arch/arm/isa/format/mult.isa and src/arch/arm/isa/insts/mult.isa. > > So what's the link among those files under /format, /templates and /insts > directories? > > > On 6/25/2013 11:32 PM, Ali Saidi wrote: >> That code ends up in src/arch/arm/isa/insts/mult.isa which ultimately calls >> buildMultInst() and that function emits two versions of Mul one that sets >> the condition codes and one that does not. The prior has Cc appended to the >> name. >> >> Ali >> >> On Jun 24, 2013, at 4:13 PM, Jianghao <guojh...@gmail.com> wrote: >> >>> I have a questions about ARM ISA implementation. >>> From the document, instruction "format" is basically a Python function to >>> generate up to four pieces of C++ code. >>> If it's nested format structure like following code, which one will be >>> used, DataOp, ArmMultAndMultAcc or both for the multiply instruction? >>> >>> decode COND_CODE { >>> 0xF: ArmUnconditional::armUnconditional(); >>> default: decode ENCODING { >>> format DataOp { >>> 0x0: decode SEVEN_AND_FOUR { >>> 1: decode MISC_OPCODE { >>> 0x9: decode PREPOST { >>> 0: ArmMultAndMultAcc::armMultAndMultAcc(); >>> 1: ArmSyncMem::armSyncMem(); >>> } >>> 0xb, 0xd, 0xf: AddrMode3::addrMode3(); >>> } >>> >>> When I take a look of ArmMultAndMultAcc format code, there are return >>> statements like following >>> "return new MulCc(machInst, rd, rm, rn);" >>> What's the meaning of this? I even cannot grep any definition of MulCc in >>> src directory. >>> >>> Thanks >>> _______________________________________________ >>> gem5-users mailing list >>> gem5-users@gem5.org >>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users >> >> >> >> _______________________________________________ >> gem5-users mailing list >> gem5-users@gem5.org >> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users > > _______________________________________________ > gem5-users mailing list > gem5-users@gem5.org > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
_______________________________________________ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users