macromem.isa (8139:2b2efc67f6df) macromem.isa (8140:7449084b1612)
1// -*- mode:c++ -*-
2
3// Copyright (c) 2010 ARM Limited
4// All rights reserved
5//
6// The license below extends only to copyright in the software and shall
7// not be construed as granting a license to any other intellectual
8// property including but not limited to intellectual property relating

--- 594 unchanged lines hidden (view full) ---

603 ['IsMicroop'])
604
605 microUopRegMovIop = InstObjParams('uopReg_uop', 'MicroUopRegMov',
606 'MicroIntMov',
607 {'code': 'IWRa = URb;',
608 'predicate_test': predicateTest},
609 ['IsMicroop'])
610
1// -*- mode:c++ -*-
2
3// Copyright (c) 2010 ARM Limited
4// All rights reserved
5//
6// The license below extends only to copyright in the software and shall
7// not be construed as granting a license to any other intellectual
8// property including but not limited to intellectual property relating

--- 594 unchanged lines hidden (view full) ---

603 ['IsMicroop'])
604
605 microUopRegMovIop = InstObjParams('uopReg_uop', 'MicroUopRegMov',
606 'MicroIntMov',
607 {'code': 'IWRa = URb;',
608 'predicate_test': predicateTest},
609 ['IsMicroop'])
610
611 setPCCPSRDecl = '''
612 CPSR cpsrOrCondCodes = URc;
613 SCTLR sctlr = Sctlr;
614 pNPC = URa;
615 uint32_t newCpsr =
616 cpsrWriteByInstr(cpsrOrCondCodes, URb,
617 0xF, true, sctlr.nmfi);
618 Cpsr = ~CondCodesMask & newCpsr;
619 NextThumb = ((CPSR)newCpsr).t;
620 NextJazelle = ((CPSR)newCpsr).j;
621 ForcedItState = ((((CPSR)URb).it2 << 2) & 0xFC)
622 | (((CPSR)URb).it1 & 0x3);
623 CondCodes = CondCodesMask & newCpsr;
624 '''
625
626 microUopSetPCCPSRIop = InstObjParams('uopSet_uop', 'MicroUopSetPCCPSR',
627 'MicroSetPCCPSR',
628 {'code': setPCCPSRDecl,
629 'predicate_test': predicateTest},
630 ['IsMicroop'])
631
611 header_output = MicroIntImmDeclare.subst(microAddiUopIop) + \
612 MicroIntImmDeclare.subst(microSubiUopIop) + \
613 MicroIntRegDeclare.subst(microAddUopIop) + \
614 MicroIntRegDeclare.subst(microSubUopIop) + \
632 header_output = MicroIntImmDeclare.subst(microAddiUopIop) + \
633 MicroIntImmDeclare.subst(microSubiUopIop) + \
634 MicroIntRegDeclare.subst(microAddUopIop) + \
635 MicroIntRegDeclare.subst(microSubUopIop) + \
615 MicroIntMovDeclare.subst(microUopRegMovIop)
636 MicroIntMovDeclare.subst(microUopRegMovIop) + \
637 MicroSetPCCPSRDeclare.subst(microUopSetPCCPSRIop)
616
617 decoder_output = MicroIntImmConstructor.subst(microAddiUopIop) + \
618 MicroIntImmConstructor.subst(microSubiUopIop) + \
619 MicroIntRegConstructor.subst(microAddUopIop) + \
620 MicroIntRegConstructor.subst(microSubUopIop) + \
638
639 decoder_output = MicroIntImmConstructor.subst(microAddiUopIop) + \
640 MicroIntImmConstructor.subst(microSubiUopIop) + \
641 MicroIntRegConstructor.subst(microAddUopIop) + \
642 MicroIntRegConstructor.subst(microSubUopIop) + \
621 MicroIntMovConstructor.subst(microUopRegMovIop)
643 MicroIntMovConstructor.subst(microUopRegMovIop) + \
644 MicroSetPCCPSRConstructor.subst(microUopSetPCCPSRIop)
622
623 exec_output = PredOpExecute.subst(microAddiUopIop) + \
624 PredOpExecute.subst(microSubiUopIop) + \
625 PredOpExecute.subst(microAddUopIop) + \
626 PredOpExecute.subst(microSubUopIop) + \
645
646 exec_output = PredOpExecute.subst(microAddiUopIop) + \
647 PredOpExecute.subst(microSubiUopIop) + \
648 PredOpExecute.subst(microAddUopIop) + \
649 PredOpExecute.subst(microSubUopIop) + \
627 PredOpExecute.subst(microUopRegMovIop)
650 PredOpExecute.subst(microUopRegMovIop) + \
651 PredOpExecute.subst(microUopSetPCCPSRIop)
652
628}};
629
630let {{
631 iop = InstObjParams("ldmstm", "LdmStm", 'MacroMemOp', "", [])
632 header_output = MacroMemDeclare.subst(iop)
633 decoder_output = MacroMemConstructor.subst(iop)
634
635 iop = InstObjParams("vldmult", "VldMult", 'VldMultOp', "", [])

--- 19 unchanged lines hidden ---
653}};
654
655let {{
656 iop = InstObjParams("ldmstm", "LdmStm", 'MacroMemOp', "", [])
657 header_output = MacroMemDeclare.subst(iop)
658 decoder_output = MacroMemConstructor.subst(iop)
659
660 iop = InstObjParams("vldmult", "VldMult", 'VldMultOp', "", [])

--- 19 unchanged lines hidden ---