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

Reply via email to