diff options
Diffstat (limited to 'arch/mips/mm/uasm.c')
-rw-r--r-- | arch/mips/mm/uasm.c | 40 |
1 files changed, 16 insertions, 24 deletions
diff --git a/arch/mips/mm/uasm.c b/arch/mips/mm/uasm.c index 357916de0fab..5fa185151fc8 100644 --- a/arch/mips/mm/uasm.c +++ b/arch/mips/mm/uasm.c | |||
@@ -156,91 +156,83 @@ static struct insn insn_table[] __uasminitdata = { | |||
156 | 156 | ||
157 | static inline __uasminit u32 build_rs(u32 arg) | 157 | static inline __uasminit u32 build_rs(u32 arg) |
158 | { | 158 | { |
159 | if (arg & ~RS_MASK) | 159 | WARN(arg & ~RS_MASK, KERN_WARNING "Micro-assembler field overflow\n"); |
160 | printk(KERN_WARNING "Micro-assembler field overflow\n"); | ||
161 | 160 | ||
162 | return (arg & RS_MASK) << RS_SH; | 161 | return (arg & RS_MASK) << RS_SH; |
163 | } | 162 | } |
164 | 163 | ||
165 | static inline __uasminit u32 build_rt(u32 arg) | 164 | static inline __uasminit u32 build_rt(u32 arg) |
166 | { | 165 | { |
167 | if (arg & ~RT_MASK) | 166 | WARN(arg & ~RT_MASK, KERN_WARNING "Micro-assembler field overflow\n"); |
168 | printk(KERN_WARNING "Micro-assembler field overflow\n"); | ||
169 | 167 | ||
170 | return (arg & RT_MASK) << RT_SH; | 168 | return (arg & RT_MASK) << RT_SH; |
171 | } | 169 | } |
172 | 170 | ||
173 | static inline __uasminit u32 build_rd(u32 arg) | 171 | static inline __uasminit u32 build_rd(u32 arg) |
174 | { | 172 | { |
175 | if (arg & ~RD_MASK) | 173 | WARN(arg & ~RD_MASK, KERN_WARNING "Micro-assembler field overflow\n"); |
176 | printk(KERN_WARNING "Micro-assembler field overflow\n"); | ||
177 | 174 | ||
178 | return (arg & RD_MASK) << RD_SH; | 175 | return (arg & RD_MASK) << RD_SH; |
179 | } | 176 | } |
180 | 177 | ||
181 | static inline __uasminit u32 build_re(u32 arg) | 178 | static inline __uasminit u32 build_re(u32 arg) |
182 | { | 179 | { |
183 | if (arg & ~RE_MASK) | 180 | WARN(arg & ~RE_MASK, KERN_WARNING "Micro-assembler field overflow\n"); |
184 | printk(KERN_WARNING "Micro-assembler field overflow\n"); | ||
185 | 181 | ||
186 | return (arg & RE_MASK) << RE_SH; | 182 | return (arg & RE_MASK) << RE_SH; |
187 | } | 183 | } |
188 | 184 | ||
189 | static inline __uasminit u32 build_simm(s32 arg) | 185 | static inline __uasminit u32 build_simm(s32 arg) |
190 | { | 186 | { |
191 | if (arg > 0x7fff || arg < -0x8000) | 187 | WARN(arg > 0x7fff || arg < -0x8000, |
192 | printk(KERN_WARNING "Micro-assembler field overflow\n"); | 188 | KERN_WARNING "Micro-assembler field overflow\n"); |
193 | 189 | ||
194 | return arg & 0xffff; | 190 | return arg & 0xffff; |
195 | } | 191 | } |
196 | 192 | ||
197 | static inline __uasminit u32 build_uimm(u32 arg) | 193 | static inline __uasminit u32 build_uimm(u32 arg) |
198 | { | 194 | { |
199 | if (arg & ~IMM_MASK) | 195 | WARN(arg & ~IMM_MASK, KERN_WARNING "Micro-assembler field overflow\n"); |
200 | printk(KERN_WARNING "Micro-assembler field overflow\n"); | ||
201 | 196 | ||
202 | return arg & IMM_MASK; | 197 | return arg & IMM_MASK; |
203 | } | 198 | } |
204 | 199 | ||
205 | static inline __uasminit u32 build_bimm(s32 arg) | 200 | static inline __uasminit u32 build_bimm(s32 arg) |
206 | { | 201 | { |
207 | if (arg > 0x1ffff || arg < -0x20000) | 202 | WARN(arg > 0x1ffff || arg < -0x20000, |
208 | printk(KERN_WARNING "Micro-assembler field overflow\n"); | 203 | KERN_WARNING "Micro-assembler field overflow\n"); |
209 | 204 | ||
210 | if (arg & 0x3) | 205 | WARN(arg & 0x3, KERN_WARNING "Invalid micro-assembler branch target\n"); |
211 | printk(KERN_WARNING "Invalid micro-assembler branch target\n"); | ||
212 | 206 | ||
213 | return ((arg < 0) ? (1 << 15) : 0) | ((arg >> 2) & 0x7fff); | 207 | return ((arg < 0) ? (1 << 15) : 0) | ((arg >> 2) & 0x7fff); |
214 | } | 208 | } |
215 | 209 | ||
216 | static inline __uasminit u32 build_jimm(u32 arg) | 210 | static inline __uasminit u32 build_jimm(u32 arg) |
217 | { | 211 | { |
218 | if (arg & ~((JIMM_MASK) << 2)) | 212 | WARN(arg & ~(JIMM_MASK << 2), |
219 | printk(KERN_WARNING "Micro-assembler field overflow\n"); | 213 | KERN_WARNING "Micro-assembler field overflow\n"); |
220 | 214 | ||
221 | return (arg >> 2) & JIMM_MASK; | 215 | return (arg >> 2) & JIMM_MASK; |
222 | } | 216 | } |
223 | 217 | ||
224 | static inline __uasminit u32 build_scimm(u32 arg) | 218 | static inline __uasminit u32 build_scimm(u32 arg) |
225 | { | 219 | { |
226 | if (arg & ~SCIMM_MASK) | 220 | WARN(arg & ~SCIMM_MASK, |
227 | printk(KERN_WARNING "Micro-assembler field overflow\n"); | 221 | KERN_WARNING "Micro-assembler field overflow\n"); |
228 | 222 | ||
229 | return (arg & SCIMM_MASK) << SCIMM_SH; | 223 | return (arg & SCIMM_MASK) << SCIMM_SH; |
230 | } | 224 | } |
231 | 225 | ||
232 | static inline __uasminit u32 build_func(u32 arg) | 226 | static inline __uasminit u32 build_func(u32 arg) |
233 | { | 227 | { |
234 | if (arg & ~FUNC_MASK) | 228 | WARN(arg & ~FUNC_MASK, KERN_WARNING "Micro-assembler field overflow\n"); |
235 | printk(KERN_WARNING "Micro-assembler field overflow\n"); | ||
236 | 229 | ||
237 | return arg & FUNC_MASK; | 230 | return arg & FUNC_MASK; |
238 | } | 231 | } |
239 | 232 | ||
240 | static inline __uasminit u32 build_set(u32 arg) | 233 | static inline __uasminit u32 build_set(u32 arg) |
241 | { | 234 | { |
242 | if (arg & ~SET_MASK) | 235 | WARN(arg & ~SET_MASK, KERN_WARNING "Micro-assembler field overflow\n"); |
243 | printk(KERN_WARNING "Micro-assembler field overflow\n"); | ||
244 | 236 | ||
245 | return arg & SET_MASK; | 237 | return arg & SET_MASK; |
246 | } | 238 | } |