diff options
Diffstat (limited to 'arch/mips/mm/uasm.c')
-rw-r--r-- | arch/mips/mm/uasm.c | 106 |
1 files changed, 50 insertions, 56 deletions
diff --git a/arch/mips/mm/uasm.c b/arch/mips/mm/uasm.c index 7eb5e4355d25..b9d14b6c7f58 100644 --- a/arch/mips/mm/uasm.c +++ b/arch/mips/mm/uasm.c | |||
@@ -63,35 +63,35 @@ struct insn { | |||
63 | enum fields fields; | 63 | enum fields fields; |
64 | }; | 64 | }; |
65 | 65 | ||
66 | static inline __uasminit u32 build_rs(u32 arg) | 66 | static inline u32 build_rs(u32 arg) |
67 | { | 67 | { |
68 | WARN(arg & ~RS_MASK, KERN_WARNING "Micro-assembler field overflow\n"); | 68 | WARN(arg & ~RS_MASK, KERN_WARNING "Micro-assembler field overflow\n"); |
69 | 69 | ||
70 | return (arg & RS_MASK) << RS_SH; | 70 | return (arg & RS_MASK) << RS_SH; |
71 | } | 71 | } |
72 | 72 | ||
73 | static inline __uasminit u32 build_rt(u32 arg) | 73 | static inline u32 build_rt(u32 arg) |
74 | { | 74 | { |
75 | WARN(arg & ~RT_MASK, KERN_WARNING "Micro-assembler field overflow\n"); | 75 | WARN(arg & ~RT_MASK, KERN_WARNING "Micro-assembler field overflow\n"); |
76 | 76 | ||
77 | return (arg & RT_MASK) << RT_SH; | 77 | return (arg & RT_MASK) << RT_SH; |
78 | } | 78 | } |
79 | 79 | ||
80 | static inline __uasminit u32 build_rd(u32 arg) | 80 | static inline u32 build_rd(u32 arg) |
81 | { | 81 | { |
82 | WARN(arg & ~RD_MASK, KERN_WARNING "Micro-assembler field overflow\n"); | 82 | WARN(arg & ~RD_MASK, KERN_WARNING "Micro-assembler field overflow\n"); |
83 | 83 | ||
84 | return (arg & RD_MASK) << RD_SH; | 84 | return (arg & RD_MASK) << RD_SH; |
85 | } | 85 | } |
86 | 86 | ||
87 | static inline __uasminit u32 build_re(u32 arg) | 87 | static inline u32 build_re(u32 arg) |
88 | { | 88 | { |
89 | WARN(arg & ~RE_MASK, KERN_WARNING "Micro-assembler field overflow\n"); | 89 | WARN(arg & ~RE_MASK, KERN_WARNING "Micro-assembler field overflow\n"); |
90 | 90 | ||
91 | return (arg & RE_MASK) << RE_SH; | 91 | return (arg & RE_MASK) << RE_SH; |
92 | } | 92 | } |
93 | 93 | ||
94 | static inline __uasminit u32 build_simm(s32 arg) | 94 | static inline u32 build_simm(s32 arg) |
95 | { | 95 | { |
96 | WARN(arg > 0x7fff || arg < -0x8000, | 96 | WARN(arg > 0x7fff || arg < -0x8000, |
97 | KERN_WARNING "Micro-assembler field overflow\n"); | 97 | KERN_WARNING "Micro-assembler field overflow\n"); |
@@ -99,14 +99,14 @@ static inline __uasminit u32 build_simm(s32 arg) | |||
99 | return arg & 0xffff; | 99 | return arg & 0xffff; |
100 | } | 100 | } |
101 | 101 | ||
102 | static inline __uasminit u32 build_uimm(u32 arg) | 102 | static inline u32 build_uimm(u32 arg) |
103 | { | 103 | { |
104 | WARN(arg & ~IMM_MASK, KERN_WARNING "Micro-assembler field overflow\n"); | 104 | WARN(arg & ~IMM_MASK, KERN_WARNING "Micro-assembler field overflow\n"); |
105 | 105 | ||
106 | return arg & IMM_MASK; | 106 | return arg & IMM_MASK; |
107 | } | 107 | } |
108 | 108 | ||
109 | static inline __uasminit u32 build_scimm(u32 arg) | 109 | static inline u32 build_scimm(u32 arg) |
110 | { | 110 | { |
111 | WARN(arg & ~SCIMM_MASK, | 111 | WARN(arg & ~SCIMM_MASK, |
112 | KERN_WARNING "Micro-assembler field overflow\n"); | 112 | KERN_WARNING "Micro-assembler field overflow\n"); |
@@ -114,21 +114,21 @@ static inline __uasminit u32 build_scimm(u32 arg) | |||
114 | return (arg & SCIMM_MASK) << SCIMM_SH; | 114 | return (arg & SCIMM_MASK) << SCIMM_SH; |
115 | } | 115 | } |
116 | 116 | ||
117 | static inline __uasminit u32 build_func(u32 arg) | 117 | static inline u32 build_func(u32 arg) |
118 | { | 118 | { |
119 | WARN(arg & ~FUNC_MASK, KERN_WARNING "Micro-assembler field overflow\n"); | 119 | WARN(arg & ~FUNC_MASK, KERN_WARNING "Micro-assembler field overflow\n"); |
120 | 120 | ||
121 | return arg & FUNC_MASK; | 121 | return arg & FUNC_MASK; |
122 | } | 122 | } |
123 | 123 | ||
124 | static inline __uasminit u32 build_set(u32 arg) | 124 | static inline u32 build_set(u32 arg) |
125 | { | 125 | { |
126 | WARN(arg & ~SET_MASK, KERN_WARNING "Micro-assembler field overflow\n"); | 126 | WARN(arg & ~SET_MASK, KERN_WARNING "Micro-assembler field overflow\n"); |
127 | 127 | ||
128 | return arg & SET_MASK; | 128 | return arg & SET_MASK; |
129 | } | 129 | } |
130 | 130 | ||
131 | static void __uasminit build_insn(u32 **buf, enum opcode opc, ...); | 131 | static void build_insn(u32 **buf, enum opcode opc, ...); |
132 | 132 | ||
133 | #define I_u1u2u3(op) \ | 133 | #define I_u1u2u3(op) \ |
134 | Ip_u1u2u3(op) \ | 134 | Ip_u1u2u3(op) \ |
@@ -286,7 +286,7 @@ I_u3u1u2(_ldx) | |||
286 | 286 | ||
287 | #ifdef CONFIG_CPU_CAVIUM_OCTEON | 287 | #ifdef CONFIG_CPU_CAVIUM_OCTEON |
288 | #include <asm/octeon/octeon.h> | 288 | #include <asm/octeon/octeon.h> |
289 | void __uasminit ISAFUNC(uasm_i_pref)(u32 **buf, unsigned int a, signed int b, | 289 | void ISAFUNC(uasm_i_pref)(u32 **buf, unsigned int a, signed int b, |
290 | unsigned int c) | 290 | unsigned int c) |
291 | { | 291 | { |
292 | if (OCTEON_IS_MODEL(OCTEON_CN63XX_PASS1_X) && a <= 24 && a != 5) | 292 | if (OCTEON_IS_MODEL(OCTEON_CN63XX_PASS1_X) && a <= 24 && a != 5) |
@@ -304,7 +304,7 @@ I_u2s3u1(_pref) | |||
304 | #endif | 304 | #endif |
305 | 305 | ||
306 | /* Handle labels. */ | 306 | /* Handle labels. */ |
307 | void __uasminit ISAFUNC(uasm_build_label)(struct uasm_label **lab, u32 *addr, int lid) | 307 | void ISAFUNC(uasm_build_label)(struct uasm_label **lab, u32 *addr, int lid) |
308 | { | 308 | { |
309 | (*lab)->addr = addr; | 309 | (*lab)->addr = addr; |
310 | (*lab)->lab = lid; | 310 | (*lab)->lab = lid; |
@@ -312,7 +312,7 @@ void __uasminit ISAFUNC(uasm_build_label)(struct uasm_label **lab, u32 *addr, in | |||
312 | } | 312 | } |
313 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_build_label)); | 313 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_build_label)); |
314 | 314 | ||
315 | int __uasminit ISAFUNC(uasm_in_compat_space_p)(long addr) | 315 | int ISAFUNC(uasm_in_compat_space_p)(long addr) |
316 | { | 316 | { |
317 | /* Is this address in 32bit compat space? */ | 317 | /* Is this address in 32bit compat space? */ |
318 | #ifdef CONFIG_64BIT | 318 | #ifdef CONFIG_64BIT |
@@ -323,7 +323,7 @@ int __uasminit ISAFUNC(uasm_in_compat_space_p)(long addr) | |||
323 | } | 323 | } |
324 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_in_compat_space_p)); | 324 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_in_compat_space_p)); |
325 | 325 | ||
326 | static int __uasminit uasm_rel_highest(long val) | 326 | static int uasm_rel_highest(long val) |
327 | { | 327 | { |
328 | #ifdef CONFIG_64BIT | 328 | #ifdef CONFIG_64BIT |
329 | return ((((val + 0x800080008000L) >> 48) & 0xffff) ^ 0x8000) - 0x8000; | 329 | return ((((val + 0x800080008000L) >> 48) & 0xffff) ^ 0x8000) - 0x8000; |
@@ -332,7 +332,7 @@ static int __uasminit uasm_rel_highest(long val) | |||
332 | #endif | 332 | #endif |
333 | } | 333 | } |
334 | 334 | ||
335 | static int __uasminit uasm_rel_higher(long val) | 335 | static int uasm_rel_higher(long val) |
336 | { | 336 | { |
337 | #ifdef CONFIG_64BIT | 337 | #ifdef CONFIG_64BIT |
338 | return ((((val + 0x80008000L) >> 32) & 0xffff) ^ 0x8000) - 0x8000; | 338 | return ((((val + 0x80008000L) >> 32) & 0xffff) ^ 0x8000) - 0x8000; |
@@ -341,19 +341,19 @@ static int __uasminit uasm_rel_higher(long val) | |||
341 | #endif | 341 | #endif |
342 | } | 342 | } |
343 | 343 | ||
344 | int __uasminit ISAFUNC(uasm_rel_hi)(long val) | 344 | int ISAFUNC(uasm_rel_hi)(long val) |
345 | { | 345 | { |
346 | return ((((val + 0x8000L) >> 16) & 0xffff) ^ 0x8000) - 0x8000; | 346 | return ((((val + 0x8000L) >> 16) & 0xffff) ^ 0x8000) - 0x8000; |
347 | } | 347 | } |
348 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_rel_hi)); | 348 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_rel_hi)); |
349 | 349 | ||
350 | int __uasminit ISAFUNC(uasm_rel_lo)(long val) | 350 | int ISAFUNC(uasm_rel_lo)(long val) |
351 | { | 351 | { |
352 | return ((val & 0xffff) ^ 0x8000) - 0x8000; | 352 | return ((val & 0xffff) ^ 0x8000) - 0x8000; |
353 | } | 353 | } |
354 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_rel_lo)); | 354 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_rel_lo)); |
355 | 355 | ||
356 | void __uasminit ISAFUNC(UASM_i_LA_mostly)(u32 **buf, unsigned int rs, long addr) | 356 | void ISAFUNC(UASM_i_LA_mostly)(u32 **buf, unsigned int rs, long addr) |
357 | { | 357 | { |
358 | if (!ISAFUNC(uasm_in_compat_space_p)(addr)) { | 358 | if (!ISAFUNC(uasm_in_compat_space_p)(addr)) { |
359 | ISAFUNC(uasm_i_lui)(buf, rs, uasm_rel_highest(addr)); | 359 | ISAFUNC(uasm_i_lui)(buf, rs, uasm_rel_highest(addr)); |
@@ -371,7 +371,7 @@ void __uasminit ISAFUNC(UASM_i_LA_mostly)(u32 **buf, unsigned int rs, long addr) | |||
371 | } | 371 | } |
372 | UASM_EXPORT_SYMBOL(ISAFUNC(UASM_i_LA_mostly)); | 372 | UASM_EXPORT_SYMBOL(ISAFUNC(UASM_i_LA_mostly)); |
373 | 373 | ||
374 | void __uasminit ISAFUNC(UASM_i_LA)(u32 **buf, unsigned int rs, long addr) | 374 | void ISAFUNC(UASM_i_LA)(u32 **buf, unsigned int rs, long addr) |
375 | { | 375 | { |
376 | ISAFUNC(UASM_i_LA_mostly)(buf, rs, addr); | 376 | ISAFUNC(UASM_i_LA_mostly)(buf, rs, addr); |
377 | if (ISAFUNC(uasm_rel_lo(addr))) { | 377 | if (ISAFUNC(uasm_rel_lo(addr))) { |
@@ -386,8 +386,7 @@ void __uasminit ISAFUNC(UASM_i_LA)(u32 **buf, unsigned int rs, long addr) | |||
386 | UASM_EXPORT_SYMBOL(ISAFUNC(UASM_i_LA)); | 386 | UASM_EXPORT_SYMBOL(ISAFUNC(UASM_i_LA)); |
387 | 387 | ||
388 | /* Handle relocations. */ | 388 | /* Handle relocations. */ |
389 | void __uasminit | 389 | void ISAFUNC(uasm_r_mips_pc16)(struct uasm_reloc **rel, u32 *addr, int lid) |
390 | ISAFUNC(uasm_r_mips_pc16)(struct uasm_reloc **rel, u32 *addr, int lid) | ||
391 | { | 390 | { |
392 | (*rel)->addr = addr; | 391 | (*rel)->addr = addr; |
393 | (*rel)->type = R_MIPS_PC16; | 392 | (*rel)->type = R_MIPS_PC16; |
@@ -396,11 +395,11 @@ ISAFUNC(uasm_r_mips_pc16)(struct uasm_reloc **rel, u32 *addr, int lid) | |||
396 | } | 395 | } |
397 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_r_mips_pc16)); | 396 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_r_mips_pc16)); |
398 | 397 | ||
399 | static inline void __uasminit | 398 | static inline void __resolve_relocs(struct uasm_reloc *rel, |
400 | __resolve_relocs(struct uasm_reloc *rel, struct uasm_label *lab); | 399 | struct uasm_label *lab); |
401 | 400 | ||
402 | void __uasminit | 401 | void ISAFUNC(uasm_resolve_relocs)(struct uasm_reloc *rel, |
403 | ISAFUNC(uasm_resolve_relocs)(struct uasm_reloc *rel, struct uasm_label *lab) | 402 | struct uasm_label *lab) |
404 | { | 403 | { |
405 | struct uasm_label *l; | 404 | struct uasm_label *l; |
406 | 405 | ||
@@ -411,8 +410,8 @@ ISAFUNC(uasm_resolve_relocs)(struct uasm_reloc *rel, struct uasm_label *lab) | |||
411 | } | 410 | } |
412 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_resolve_relocs)); | 411 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_resolve_relocs)); |
413 | 412 | ||
414 | void __uasminit | 413 | void ISAFUNC(uasm_move_relocs)(struct uasm_reloc *rel, u32 *first, u32 *end, |
415 | ISAFUNC(uasm_move_relocs)(struct uasm_reloc *rel, u32 *first, u32 *end, long off) | 414 | long off) |
416 | { | 415 | { |
417 | for (; rel->lab != UASM_LABEL_INVALID; rel++) | 416 | for (; rel->lab != UASM_LABEL_INVALID; rel++) |
418 | if (rel->addr >= first && rel->addr < end) | 417 | if (rel->addr >= first && rel->addr < end) |
@@ -420,8 +419,8 @@ ISAFUNC(uasm_move_relocs)(struct uasm_reloc *rel, u32 *first, u32 *end, long off | |||
420 | } | 419 | } |
421 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_move_relocs)); | 420 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_move_relocs)); |
422 | 421 | ||
423 | void __uasminit | 422 | void ISAFUNC(uasm_move_labels)(struct uasm_label *lab, u32 *first, u32 *end, |
424 | ISAFUNC(uasm_move_labels)(struct uasm_label *lab, u32 *first, u32 *end, long off) | 423 | long off) |
425 | { | 424 | { |
426 | for (; lab->lab != UASM_LABEL_INVALID; lab++) | 425 | for (; lab->lab != UASM_LABEL_INVALID; lab++) |
427 | if (lab->addr >= first && lab->addr < end) | 426 | if (lab->addr >= first && lab->addr < end) |
@@ -429,9 +428,8 @@ ISAFUNC(uasm_move_labels)(struct uasm_label *lab, u32 *first, u32 *end, long off | |||
429 | } | 428 | } |
430 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_move_labels)); | 429 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_move_labels)); |
431 | 430 | ||
432 | void __uasminit | 431 | void ISAFUNC(uasm_copy_handler)(struct uasm_reloc *rel, struct uasm_label *lab, |
433 | ISAFUNC(uasm_copy_handler)(struct uasm_reloc *rel, struct uasm_label *lab, u32 *first, | 432 | u32 *first, u32 *end, u32 *target) |
434 | u32 *end, u32 *target) | ||
435 | { | 433 | { |
436 | long off = (long)(target - first); | 434 | long off = (long)(target - first); |
437 | 435 | ||
@@ -442,7 +440,7 @@ ISAFUNC(uasm_copy_handler)(struct uasm_reloc *rel, struct uasm_label *lab, u32 * | |||
442 | } | 440 | } |
443 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_copy_handler)); | 441 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_copy_handler)); |
444 | 442 | ||
445 | int __uasminit ISAFUNC(uasm_insn_has_bdelay)(struct uasm_reloc *rel, u32 *addr) | 443 | int ISAFUNC(uasm_insn_has_bdelay)(struct uasm_reloc *rel, u32 *addr) |
446 | { | 444 | { |
447 | for (; rel->lab != UASM_LABEL_INVALID; rel++) { | 445 | for (; rel->lab != UASM_LABEL_INVALID; rel++) { |
448 | if (rel->addr == addr | 446 | if (rel->addr == addr |
@@ -456,83 +454,79 @@ int __uasminit ISAFUNC(uasm_insn_has_bdelay)(struct uasm_reloc *rel, u32 *addr) | |||
456 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_insn_has_bdelay)); | 454 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_insn_has_bdelay)); |
457 | 455 | ||
458 | /* Convenience functions for labeled branches. */ | 456 | /* Convenience functions for labeled branches. */ |
459 | void __uasminit | 457 | void ISAFUNC(uasm_il_bltz)(u32 **p, struct uasm_reloc **r, unsigned int reg, |
460 | ISAFUNC(uasm_il_bltz)(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid) | 458 | int lid) |
461 | { | 459 | { |
462 | uasm_r_mips_pc16(r, *p, lid); | 460 | uasm_r_mips_pc16(r, *p, lid); |
463 | ISAFUNC(uasm_i_bltz)(p, reg, 0); | 461 | ISAFUNC(uasm_i_bltz)(p, reg, 0); |
464 | } | 462 | } |
465 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_il_bltz)); | 463 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_il_bltz)); |
466 | 464 | ||
467 | void __uasminit | 465 | void ISAFUNC(uasm_il_b)(u32 **p, struct uasm_reloc **r, int lid) |
468 | ISAFUNC(uasm_il_b)(u32 **p, struct uasm_reloc **r, int lid) | ||
469 | { | 466 | { |
470 | uasm_r_mips_pc16(r, *p, lid); | 467 | uasm_r_mips_pc16(r, *p, lid); |
471 | ISAFUNC(uasm_i_b)(p, 0); | 468 | ISAFUNC(uasm_i_b)(p, 0); |
472 | } | 469 | } |
473 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_il_b)); | 470 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_il_b)); |
474 | 471 | ||
475 | void __uasminit | 472 | void ISAFUNC(uasm_il_beqz)(u32 **p, struct uasm_reloc **r, unsigned int reg, |
476 | ISAFUNC(uasm_il_beqz)(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid) | 473 | int lid) |
477 | { | 474 | { |
478 | uasm_r_mips_pc16(r, *p, lid); | 475 | uasm_r_mips_pc16(r, *p, lid); |
479 | ISAFUNC(uasm_i_beqz)(p, reg, 0); | 476 | ISAFUNC(uasm_i_beqz)(p, reg, 0); |
480 | } | 477 | } |
481 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_il_beqz)); | 478 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_il_beqz)); |
482 | 479 | ||
483 | void __uasminit | 480 | void ISAFUNC(uasm_il_beqzl)(u32 **p, struct uasm_reloc **r, unsigned int reg, |
484 | ISAFUNC(uasm_il_beqzl)(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid) | 481 | int lid) |
485 | { | 482 | { |
486 | uasm_r_mips_pc16(r, *p, lid); | 483 | uasm_r_mips_pc16(r, *p, lid); |
487 | ISAFUNC(uasm_i_beqzl)(p, reg, 0); | 484 | ISAFUNC(uasm_i_beqzl)(p, reg, 0); |
488 | } | 485 | } |
489 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_il_beqzl)); | 486 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_il_beqzl)); |
490 | 487 | ||
491 | void __uasminit | 488 | void ISAFUNC(uasm_il_bne)(u32 **p, struct uasm_reloc **r, unsigned int reg1, |
492 | ISAFUNC(uasm_il_bne)(u32 **p, struct uasm_reloc **r, unsigned int reg1, | 489 | unsigned int reg2, int lid) |
493 | unsigned int reg2, int lid) | ||
494 | { | 490 | { |
495 | uasm_r_mips_pc16(r, *p, lid); | 491 | uasm_r_mips_pc16(r, *p, lid); |
496 | ISAFUNC(uasm_i_bne)(p, reg1, reg2, 0); | 492 | ISAFUNC(uasm_i_bne)(p, reg1, reg2, 0); |
497 | } | 493 | } |
498 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_il_bne)); | 494 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_il_bne)); |
499 | 495 | ||
500 | void __uasminit | 496 | void ISAFUNC(uasm_il_bnez)(u32 **p, struct uasm_reloc **r, unsigned int reg, |
501 | ISAFUNC(uasm_il_bnez)(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid) | 497 | int lid) |
502 | { | 498 | { |
503 | uasm_r_mips_pc16(r, *p, lid); | 499 | uasm_r_mips_pc16(r, *p, lid); |
504 | ISAFUNC(uasm_i_bnez)(p, reg, 0); | 500 | ISAFUNC(uasm_i_bnez)(p, reg, 0); |
505 | } | 501 | } |
506 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_il_bnez)); | 502 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_il_bnez)); |
507 | 503 | ||
508 | void __uasminit | 504 | void ISAFUNC(uasm_il_bgezl)(u32 **p, struct uasm_reloc **r, unsigned int reg, |
509 | ISAFUNC(uasm_il_bgezl)(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid) | 505 | int lid) |
510 | { | 506 | { |
511 | uasm_r_mips_pc16(r, *p, lid); | 507 | uasm_r_mips_pc16(r, *p, lid); |
512 | ISAFUNC(uasm_i_bgezl)(p, reg, 0); | 508 | ISAFUNC(uasm_i_bgezl)(p, reg, 0); |
513 | } | 509 | } |
514 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_il_bgezl)); | 510 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_il_bgezl)); |
515 | 511 | ||
516 | void __uasminit | 512 | void ISAFUNC(uasm_il_bgez)(u32 **p, struct uasm_reloc **r, unsigned int reg, |
517 | ISAFUNC(uasm_il_bgez)(u32 **p, struct uasm_reloc **r, unsigned int reg, int lid) | 513 | int lid) |
518 | { | 514 | { |
519 | uasm_r_mips_pc16(r, *p, lid); | 515 | uasm_r_mips_pc16(r, *p, lid); |
520 | ISAFUNC(uasm_i_bgez)(p, reg, 0); | 516 | ISAFUNC(uasm_i_bgez)(p, reg, 0); |
521 | } | 517 | } |
522 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_il_bgez)); | 518 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_il_bgez)); |
523 | 519 | ||
524 | void __uasminit | 520 | void ISAFUNC(uasm_il_bbit0)(u32 **p, struct uasm_reloc **r, unsigned int reg, |
525 | ISAFUNC(uasm_il_bbit0)(u32 **p, struct uasm_reloc **r, unsigned int reg, | 521 | unsigned int bit, int lid) |
526 | unsigned int bit, int lid) | ||
527 | { | 522 | { |
528 | uasm_r_mips_pc16(r, *p, lid); | 523 | uasm_r_mips_pc16(r, *p, lid); |
529 | ISAFUNC(uasm_i_bbit0)(p, reg, bit, 0); | 524 | ISAFUNC(uasm_i_bbit0)(p, reg, bit, 0); |
530 | } | 525 | } |
531 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_il_bbit0)); | 526 | UASM_EXPORT_SYMBOL(ISAFUNC(uasm_il_bbit0)); |
532 | 527 | ||
533 | void __uasminit | 528 | void ISAFUNC(uasm_il_bbit1)(u32 **p, struct uasm_reloc **r, unsigned int reg, |
534 | ISAFUNC(uasm_il_bbit1)(u32 **p, struct uasm_reloc **r, unsigned int reg, | 529 | unsigned int bit, int lid) |
535 | unsigned int bit, int lid) | ||
536 | { | 530 | { |
537 | uasm_r_mips_pc16(r, *p, lid); | 531 | uasm_r_mips_pc16(r, *p, lid); |
538 | ISAFUNC(uasm_i_bbit1)(p, reg, bit, 0); | 532 | ISAFUNC(uasm_i_bbit1)(p, reg, bit, 0); |