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 --- 76 unchanged lines hidden (view full) --- 85 ''', 86 'predicate_test': predicateTest}, 87 ['IsMicroop']) 88 89 microRetUopCode = ''' 90 CPSR cpsr = Cpsr; 91 SCTLR sctlr = Sctlr; 92 uint32_t newCpsr = |
93 cpsrWriteByInstr(cpsr | CondCodesF | CondCodesQ | CondCodesGE, 94 Spsr, 0xF, true, sctlr.nmfi); |
95 Cpsr = ~CondCodesMask & newCpsr; |
96 CondCodesF = CondCodesMaskF & newCpsr; 97 CondCodesQ = CondCodesMaskQ & newCpsr; 98 CondCodesGE = CondCodesMaskGE & newCpsr; |
99 IWNPC = cSwap(%s, cpsr.e) | ((Spsr & 0x20) ? 1 : 0); 100 NextItState = ((((CPSR)Spsr).it2 << 2) & 0xFC) 101 | (((CPSR)Spsr).it1 & 0x3); 102 SevMailbox = 1; 103 ''' 104 105 microLdrRetUopIop = InstObjParams('ldr_ret_uop', 'MicroLdrRetUop', 106 'MicroMemOp', --- 476 unchanged lines hidden (view full) --- 583 'predicate_test': predicateTest}, 584 ['IsMicroop']) 585 586 microAddUopIop = InstObjParams('add_uop', 'MicroAddUop', 587 'MicroIntRegOp', 588 {'code': 589 '''URa = URb + shift_rm_imm(URc, shiftAmt, 590 shiftType, |
591 CondCodesF<29:>); |
592 ''', 593 'predicate_test': predicateTest}, 594 ['IsMicroop']) 595 596 microSubiUopIop = InstObjParams('subi_uop', 'MicroSubiUop', 597 'MicroIntImmOp', 598 {'code': 'URa = URb - imm;', 599 'predicate_test': predicateTest}, 600 ['IsMicroop']) 601 602 microSubUopIop = InstObjParams('sub_uop', 'MicroSubUop', 603 'MicroIntRegOp', 604 {'code': 605 '''URa = URb - shift_rm_imm(URc, shiftAmt, 606 shiftType, |
607 CondCodesF<29:>); |
608 ''', 609 'predicate_test': predicateTest}, 610 ['IsMicroop']) 611 612 microUopRegMovIop = InstObjParams('uopReg_uop', 'MicroUopRegMov', 613 'MicroIntMov', 614 {'code': 'IWRa = URb;', 615 'predicate_test': predicateTest}, --- 13 unchanged lines hidden (view full) --- 629 uint32_t newCpsr = 630 cpsrWriteByInstr(cpsrOrCondCodes, URb, 631 0xF, true, sctlr.nmfi); 632 Cpsr = ~CondCodesMask & newCpsr; 633 NextThumb = ((CPSR)newCpsr).t; 634 NextJazelle = ((CPSR)newCpsr).j; 635 NextItState = ((((CPSR)URb).it2 << 2) & 0xFC) 636 | (((CPSR)URb).it1 & 0x3); |
637 CondCodesF = CondCodesMaskF & newCpsr; 638 CondCodesQ = CondCodesMaskQ & newCpsr; 639 CondCodesGE = CondCodesMaskGE & newCpsr; |
640 ''' 641 642 microUopSetPCCPSRIop = InstObjParams('uopSet_uop', 'MicroUopSetPCCPSR', 643 'MicroSetPCCPSR', 644 {'code': setPCCPSRDecl, 645 'predicate_test': predicateTest}, 646 ['IsMicroop']) 647 --- 51 unchanged lines hidden --- |