misc.isa (7202:b99579129992) misc.isa (7209:1721e83dc2b6)
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

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

112
113 msrSpsrImmCode = "Spsr = spsrWriteByInstr(Spsr, imm, byteMask, false);"
114 msrSpsrImmIop = InstObjParams("msr", "MsrSpsrImm", "MsrImmOp",
115 { "code": msrSpsrImmCode,
116 "predicate_test": predicateTest }, [])
117 header_output += MsrImmDeclare.subst(msrSpsrImmIop)
118 decoder_output += MsrImmConstructor.subst(msrSpsrImmIop)
119 exec_output += PredOpExecute.subst(msrSpsrImmIop)
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

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

112
113 msrSpsrImmCode = "Spsr = spsrWriteByInstr(Spsr, imm, byteMask, false);"
114 msrSpsrImmIop = InstObjParams("msr", "MsrSpsrImm", "MsrImmOp",
115 { "code": msrSpsrImmCode,
116 "predicate_test": predicateTest }, [])
117 header_output += MsrImmDeclare.subst(msrSpsrImmIop)
118 decoder_output += MsrImmConstructor.subst(msrSpsrImmIop)
119 exec_output += PredOpExecute.subst(msrSpsrImmIop)
120
121 revCode = '''
122 uint32_t val = Op1;
123 Dest = swap_byte(val);
124 '''
125 revIop = InstObjParams("rev", "Rev", "RevOp",
126 { "code": revCode,
127 "predicate_test": predicateTest }, [])
128 header_output += RevOpDeclare.subst(revIop)
129 decoder_output += RevOpConstructor.subst(revIop)
130 exec_output += PredOpExecute.subst(revIop)
131
132 rev16Code = '''
133 uint32_t val = Op1;
134 Dest = (bits(val, 15, 8) << 0) |
135 (bits(val, 7, 0) << 8) |
136 (bits(val, 31, 24) << 16) |
137 (bits(val, 23, 16) << 24);
138 '''
139 rev16Iop = InstObjParams("rev16", "Rev16", "RevOp",
140 { "code": rev16Code,
141 "predicate_test": predicateTest }, [])
142 header_output += RevOpDeclare.subst(rev16Iop)
143 decoder_output += RevOpConstructor.subst(rev16Iop)
144 exec_output += PredOpExecute.subst(rev16Iop)
145
146 revshCode = '''
147 uint16_t val = Op1;
148 Dest = sext<16>(swap_byte(val));
149 '''
150 revshIop = InstObjParams("revsh", "Revsh", "RevOp",
151 { "code": revshCode,
152 "predicate_test": predicateTest }, [])
153 header_output += RevOpDeclare.subst(revshIop)
154 decoder_output += RevOpConstructor.subst(revshIop)
155 exec_output += PredOpExecute.subst(revshIop)
120}};
156}};