arm.isa (7199:3e96b80d1b55) arm.isa (7203:39753c33e7aa)
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

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

66 }
67 }
68 0xb, 0xd, 0xf: AddrMode3::addrMode3();
69 }
70 0: decode IS_MISC {
71 0: ArmDataProcReg::armDataProcReg();
72 1: decode OPCODE_7 {
73 0x0: decode MISC_OPCODE {
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

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

66 }
67 }
68 0xb, 0xd, 0xf: AddrMode3::addrMode3();
69 }
70 0: decode IS_MISC {
71 0: ArmDataProcReg::armDataProcReg();
72 1: decode OPCODE_7 {
73 0x0: decode MISC_OPCODE {
74 0x0: decode OPCODE {
75 0x8: PredOp::mrs_cpsr({{
76 Rd = (Cpsr | CondCodes) & 0xF8FF03DF;
77 }});
78 0x9: decode USEIMM {
79 // The mask field is the same as the RN index.
80 0: PredOp::msr_cpsr_reg({{
81 uint32_t newCpsr =
82 cpsrWriteByInstr(Cpsr | CondCodes,
83 Rm, RN, false);
84 Cpsr = ~CondCodesMask & newCpsr;
85 CondCodes = CondCodesMask & newCpsr;
86 }});
87 1: PredImmOp::msr_cpsr_imm({{
88 uint32_t newCpsr =
89 cpsrWriteByInstr(Cpsr | CondCodes,
90 rotated_imm, RN, false);
91 Cpsr = ~CondCodesMask & newCpsr;
92 CondCodes = CondCodesMask & newCpsr;
93 }});
94 }
95 0xa: PredOp::mrs_spsr({{ Rd = Spsr; }});
96 0xb: decode USEIMM {
97 // The mask field is the same as the RN index.
98 0: PredOp::msr_spsr_reg({{
99 Spsr = spsrWriteByInstr(Spsr, Rm, RN, false);
100 }});
101 1: PredImmOp::msr_spsr_imm({{
102 Spsr = spsrWriteByInstr(Spsr, rotated_imm,
103 RN, false);
104 }});
105 }
106 }
74 0x0: ArmMsrMrs::armMsrMrs();
107 0x1: decode OPCODE {
108 0x9: ArmBx::armBx();
109 0xb: PredOp::clz({{
110 Rd = ((Rm == 0) ? 32 : (31 - findMsbSet(Rm)));
111 }});
112 }
113 0x2: decode OPCODE {
114 0x9: WarnUnimpl::bxj();

--- 181 unchanged lines hidden ---
75 0x1: decode OPCODE {
76 0x9: ArmBx::armBx();
77 0xb: PredOp::clz({{
78 Rd = ((Rm == 0) ? 32 : (31 - findMsbSet(Rm)));
79 }});
80 }
81 0x2: decode OPCODE {
82 0x9: WarnUnimpl::bxj();

--- 181 unchanged lines hidden ---