Hi Gabe, 

I think your code has not yet made into stable/master branch. I see that in 
develop branch INTREG_IMPLICIT is no longer there and is replaced by 
INTREG_PRODHI and INTREG_PRODLO

However, I see that even in develop branch there are two classes that are 
generated - Mul1s and Mul1sFlags. In Mul1s INTREG_PRODLO and INTREG_PRODHI are 
not added as source and are only added as destination. But in Mul1sFlags class 
they are added both as source and destination. 

class Mul1s : public X86ISA::RegOpT<X86ISA::FoldedSrc1Op, X86ISA::FoldedSrc2Op>
    {
      ...
        setSrcRegIdx(_numSrcRegs++, RegId(IntRegClass, src1));
        setSrcRegIdx(_numSrcRegs++, RegId(IntRegClass, src2));
        setDestRegIdx(_numDestRegs++, RegId(IntRegClass, 
X86ISA::INTREG_PRODLOW));
        _numIntDestRegs++;
        setDestRegIdx(_numDestRegs++, RegId(IntRegClass, 
X86ISA::INTREG_PRODHI));
        _numIntDestRegs++;
        ...
}

class Mul1sFlags : public X86ISA::RegOpT<X86ISA::FoldedSrc1Op, 
X86ISA::FoldedSrc2Op>
    {
        .....
        setSrcRegIdx(_numSrcRegs++, RegId(IntRegClass, src1));
        setSrcRegIdx(_numSrcRegs++, RegId(IntRegClass, src2));
        setSrcRegIdx(_numSrcRegs++, RegId(IntRegClass, X86ISA::INTREG_PRODLOW));
        setDestRegIdx(_numDestRegs++, RegId(IntRegClass, 
X86ISA::INTREG_PRODLOW));
        _numIntDestRegs++;
        setSrcRegIdx(_numSrcRegs++, RegId(IntRegClass, X86ISA::INTREG_PRODHI));
        setDestRegIdx(_numDestRegs++, RegId(IntRegClass, 
X86ISA::INTREG_PRODHI));

}

Any idea why that would be? Does it have anything to do with how Mul1s is 
defined in src/arch/x86/isa/microops/regop.isa. I see that flags_code in that 
definition does read ProdHi and ProdLow but it is being produced by the same 
instruction. Does isa_parser naively treat it as source because it is RHS in 
flags code? My understanding of isa_parser is very primitive so any help there 
will be appreciated. 

Thanks!
_______________________________________________
gem5-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to