Lines Matching defs:val

426 static inline void emit_mov_i_no8m(const u8 rd, u32 val, struct jit_ctx *ctx)
429 emit(ARM_LDR_I(rd, ARM_PC, imm_offset(val, ctx)), ctx);
431 emit(ARM_MOVW(rd, val & 0xffff), ctx);
432 if (val > 0xffff)
433 emit(ARM_MOVT(rd, val >> 16), ctx);
437 static inline void emit_mov_i(const u8 rd, u32 val, struct jit_ctx *ctx)
439 int imm12 = imm8m(val);
444 emit_mov_i_no8m(rd, val, ctx);
605 static inline void emit_a32_mov_i(const s8 dst, const u32 val,
611 emit_mov_i(tmp[1], val, ctx);
614 emit_mov_i(dst, val, ctx);
618 static void emit_a32_mov_i64(const s8 dst[], u64 val, struct jit_ctx *ctx)
623 emit_mov_i(rd[1], (u32)val, ctx);
624 emit_mov_i(rd[0], val >> 32, ctx);
631 const u32 val, struct jit_ctx *ctx) {
632 u64 val64 = val;
634 if (is64 && (val & (1<<31)))
786 static inline void emit_a32_alu_i(const s8 dst, const u32 val,
796 emit(ARM_LSL_I(rd, rd, val), ctx);
799 emit(ARM_LSR_I(rd, rd, val), ctx);
802 emit(ARM_ASR_I(rd, rd, val), ctx);
805 emit(ARM_RSB_I(rd, rd, val), ctx);
901 /* dst = dst << val */
903 const u32 val, struct jit_ctx *ctx){
912 if (val < 32) {
913 emit(ARM_MOV_SI(tmp2[0], rd[0], SRTYPE_ASL, val), ctx);
914 emit(ARM_ORR_SI(rd[0], tmp2[0], rd[1], SRTYPE_LSR, 32 - val), ctx);
915 emit(ARM_MOV_SI(rd[1], rd[1], SRTYPE_ASL, val), ctx);
917 if (val == 32)
920 emit(ARM_MOV_SI(rd[0], rd[1], SRTYPE_ASL, val - 32), ctx);
927 /* dst = dst >> val */
929 const u32 val, struct jit_ctx *ctx) {
938 if (val == 0) {
942 } else if (val < 32) {
943 emit(ARM_MOV_SI(tmp2[1], rd[1], SRTYPE_LSR, val), ctx);
944 emit(ARM_ORR_SI(rd[1], tmp2[1], rd[0], SRTYPE_ASL, 32 - val), ctx);
945 emit(ARM_MOV_SI(rd[0], rd[0], SRTYPE_LSR, val), ctx);
946 } else if (val == 32) {
950 emit(ARM_MOV_SI(rd[1], rd[0], SRTYPE_LSR, val - 32), ctx);
957 /* dst = dst >> val (signed) */
959 const u32 val, struct jit_ctx *ctx){
968 if (val == 0) {
972 } else if (val < 32) {
973 emit(ARM_MOV_SI(tmp2[1], rd[1], SRTYPE_LSR, val), ctx);
974 emit(ARM_ORR_SI(rd[1], tmp2[1], rd[0], SRTYPE_ASL, 32 - val), ctx);
975 emit(ARM_MOV_SI(rd[0], rd[0], SRTYPE_ASR, val), ctx);
976 } else if (val == 32) {
980 emit(ARM_MOV_SI(rd[1], rd[0], SRTYPE_ASR, val - 32), ctx);
1595 u64 val = (u32)imm | (u64)insn[1].imm << 32;
1597 emit_a32_mov_i64(dst, val, ctx);