misc.isa (7783:9b880b40ac10) | misc.isa (7797:998b217dcae7) |
---|---|
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 --- 69 unchanged lines hidden (view full) --- 78 decoder_output += MrsConstructor.subst(mrsSpsrIop) 79 exec_output += PredOpExecute.subst(mrsSpsrIop) 80 81 msrCpsrRegCode = ''' 82 SCTLR sctlr = Sctlr; 83 uint32_t newCpsr = 84 cpsrWriteByInstr(Cpsr | CondCodes, Op1, byteMask, false, sctlr.nmfi); 85 Cpsr = ~CondCodesMask & newCpsr; | 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 --- 69 unchanged lines hidden (view full) --- 78 decoder_output += MrsConstructor.subst(mrsSpsrIop) 79 exec_output += PredOpExecute.subst(mrsSpsrIop) 80 81 msrCpsrRegCode = ''' 82 SCTLR sctlr = Sctlr; 83 uint32_t newCpsr = 84 cpsrWriteByInstr(Cpsr | CondCodes, Op1, byteMask, false, sctlr.nmfi); 85 Cpsr = ~CondCodesMask & newCpsr; |
86 ArmISA::PCState pc = PCS; 87 pc.nextThumb(((CPSR)newCpsr).t); 88 pc.nextJazelle(((CPSR)newCpsr).j); 89 PCS = pc; | 86 NextThumb = ((CPSR)newCpsr).t; 87 NextJazelle = ((CPSR)newCpsr).j; |
90 CondCodes = CondCodesMask & newCpsr; 91 ''' 92 msrCpsrRegIop = InstObjParams("msr", "MsrCpsrReg", "MsrRegOp", 93 { "code": msrCpsrRegCode, 94 "predicate_test": condPredicateTest }, 95 ["IsSerializeAfter","IsNonSpeculative"]) 96 header_output += MsrRegDeclare.subst(msrCpsrRegIop) 97 decoder_output += MsrRegConstructor.subst(msrCpsrRegIop) --- 8 unchanged lines hidden (view full) --- 106 decoder_output += MsrRegConstructor.subst(msrSpsrRegIop) 107 exec_output += PredOpExecute.subst(msrSpsrRegIop) 108 109 msrCpsrImmCode = ''' 110 SCTLR sctlr = Sctlr; 111 uint32_t newCpsr = 112 cpsrWriteByInstr(Cpsr | CondCodes, imm, byteMask, false, sctlr.nmfi); 113 Cpsr = ~CondCodesMask & newCpsr; | 88 CondCodes = CondCodesMask & newCpsr; 89 ''' 90 msrCpsrRegIop = InstObjParams("msr", "MsrCpsrReg", "MsrRegOp", 91 { "code": msrCpsrRegCode, 92 "predicate_test": condPredicateTest }, 93 ["IsSerializeAfter","IsNonSpeculative"]) 94 header_output += MsrRegDeclare.subst(msrCpsrRegIop) 95 decoder_output += MsrRegConstructor.subst(msrCpsrRegIop) --- 8 unchanged lines hidden (view full) --- 104 decoder_output += MsrRegConstructor.subst(msrSpsrRegIop) 105 exec_output += PredOpExecute.subst(msrSpsrRegIop) 106 107 msrCpsrImmCode = ''' 108 SCTLR sctlr = Sctlr; 109 uint32_t newCpsr = 110 cpsrWriteByInstr(Cpsr | CondCodes, imm, byteMask, false, sctlr.nmfi); 111 Cpsr = ~CondCodesMask & newCpsr; |
114 ArmISA::PCState pc = PCS; 115 pc.nextThumb(((CPSR)newCpsr).t); 116 pc.nextJazelle(((CPSR)newCpsr).j); 117 PCS = pc; | 112 NextThumb = ((CPSR)newCpsr).t; 113 NextJazelle = ((CPSR)newCpsr).j; |
118 CondCodes = CondCodesMask & newCpsr; 119 ''' 120 msrCpsrImmIop = InstObjParams("msr", "MsrCpsrImm", "MsrImmOp", 121 { "code": msrCpsrImmCode, 122 "predicate_test": condPredicateTest }, 123 ["IsSerializeAfter","IsNonSpeculative"]) 124 header_output += MsrImmDeclare.subst(msrCpsrImmIop) 125 decoder_output += MsrImmConstructor.subst(msrCpsrImmIop) --- 339 unchanged lines hidden (view full) --- 465 ''' 466 usada8Iop = InstObjParams("usada8", "Usada8", "RegRegRegRegOp", 467 { "code": usada8Code, 468 "predicate_test": predicateTest }, []) 469 header_output += RegRegRegRegOpDeclare.subst(usada8Iop) 470 decoder_output += RegRegRegRegOpConstructor.subst(usada8Iop) 471 exec_output += PredOpExecute.subst(usada8Iop) 472 | 114 CondCodes = CondCodesMask & newCpsr; 115 ''' 116 msrCpsrImmIop = InstObjParams("msr", "MsrCpsrImm", "MsrImmOp", 117 { "code": msrCpsrImmCode, 118 "predicate_test": condPredicateTest }, 119 ["IsSerializeAfter","IsNonSpeculative"]) 120 header_output += MsrImmDeclare.subst(msrCpsrImmIop) 121 decoder_output += MsrImmConstructor.subst(msrCpsrImmIop) --- 339 unchanged lines hidden (view full) --- 461 ''' 462 usada8Iop = InstObjParams("usada8", "Usada8", "RegRegRegRegOp", 463 { "code": usada8Code, 464 "predicate_test": predicateTest }, []) 465 header_output += RegRegRegRegOpDeclare.subst(usada8Iop) 466 decoder_output += RegRegRegRegOpConstructor.subst(usada8Iop) 467 exec_output += PredOpExecute.subst(usada8Iop) 468 |
473 bkptCode = ''' 474 ArmISA::PCState pc = PCS; 475 return new PrefetchAbort(pc.pc(), ArmFault::DebugEvent); 476 ''' | 469 bkptCode = 'return new PrefetchAbort(PC, ArmFault::DebugEvent);\n' |
477 bkptIop = InstObjParams("bkpt", "BkptInst", "ArmStaticInst", 478 bkptCode) 479 header_output += BasicDeclare.subst(bkptIop) 480 decoder_output += BasicConstructor.subst(bkptIop) 481 exec_output += BasicExecute.subst(bkptIop) 482 483 nopIop = InstObjParams("nop", "NopInst", "PredOp", \ 484 { "code" : "", "predicate_test" : predicateTest }) --- 160 unchanged lines hidden (view full) --- 645 { "code": "MiscDest = Op1", 646 "predicate_test": predicateTest }, 647 ["IsSerializeAfter","IsNonSpeculative"]) 648 header_output += RegRegOpDeclare.subst(mcr15UserIop) 649 decoder_output += RegRegOpConstructor.subst(mcr15UserIop) 650 exec_output += PredOpExecute.subst(mcr15UserIop) 651 652 enterxCode = ''' | 470 bkptIop = InstObjParams("bkpt", "BkptInst", "ArmStaticInst", 471 bkptCode) 472 header_output += BasicDeclare.subst(bkptIop) 473 decoder_output += BasicConstructor.subst(bkptIop) 474 exec_output += BasicExecute.subst(bkptIop) 475 476 nopIop = InstObjParams("nop", "NopInst", "PredOp", \ 477 { "code" : "", "predicate_test" : predicateTest }) --- 160 unchanged lines hidden (view full) --- 638 { "code": "MiscDest = Op1", 639 "predicate_test": predicateTest }, 640 ["IsSerializeAfter","IsNonSpeculative"]) 641 header_output += RegRegOpDeclare.subst(mcr15UserIop) 642 decoder_output += RegRegOpConstructor.subst(mcr15UserIop) 643 exec_output += PredOpExecute.subst(mcr15UserIop) 644 645 enterxCode = ''' |
653 ArmISA::PCState pc = PCS; 654 pc.nextThumb(true); 655 pc.nextJazelle(true); 656 PCS = pc; | 646 NextThumb = true; 647 NextJazelle = true; |
657 ''' 658 enterxIop = InstObjParams("enterx", "Enterx", "PredOp", 659 { "code": enterxCode, 660 "predicate_test": predicateTest }, []) 661 header_output += BasicDeclare.subst(enterxIop) 662 decoder_output += BasicConstructor.subst(enterxIop) 663 exec_output += PredOpExecute.subst(enterxIop) 664 665 leavexCode = ''' | 648 ''' 649 enterxIop = InstObjParams("enterx", "Enterx", "PredOp", 650 { "code": enterxCode, 651 "predicate_test": predicateTest }, []) 652 header_output += BasicDeclare.subst(enterxIop) 653 decoder_output += BasicConstructor.subst(enterxIop) 654 exec_output += PredOpExecute.subst(enterxIop) 655 656 leavexCode = ''' |
666 ArmISA::PCState pc = PCS; 667 pc.nextThumb(true); 668 pc.nextJazelle(false); 669 PCS = pc; | 657 NextThumb = true; 658 NextJazelle = false; |
670 ''' 671 leavexIop = InstObjParams("leavex", "Leavex", "PredOp", 672 { "code": leavexCode, 673 "predicate_test": predicateTest }, []) 674 header_output += BasicDeclare.subst(leavexIop) 675 decoder_output += BasicConstructor.subst(leavexIop) 676 exec_output += PredOpExecute.subst(leavexIop) 677 --- 96 unchanged lines hidden --- | 659 ''' 660 leavexIop = InstObjParams("leavex", "Leavex", "PredOp", 661 { "code": leavexCode, 662 "predicate_test": predicateTest }, []) 663 header_output += BasicDeclare.subst(leavexIop) 664 decoder_output += BasicConstructor.subst(leavexIop) 665 exec_output += PredOpExecute.subst(leavexIop) 666 --- 96 unchanged lines hidden --- |