Lines Matching refs:rd

85 static inline void move_addr(struct jit_ctx *ctx, enum loongarch_gpr rd, u64 addr)
89 /* lu12iw rd, imm_31_12 */
91 emit_insn(ctx, lu12iw, rd, imm_31_12);
93 /* ori rd, rd, imm_11_0 */
95 emit_insn(ctx, ori, rd, rd, imm_11_0);
97 /* lu32id rd, imm_51_32 */
99 emit_insn(ctx, lu32id, rd, imm_51_32);
101 /* lu52id rd, rd, imm_63_52 */
103 emit_insn(ctx, lu52id, rd, rd, imm_63_52);
106 static inline void move_imm(struct jit_ctx *ctx, enum loongarch_gpr rd, long imm, bool is32)
110 /* or rd, $zero, $zero */
112 emit_insn(ctx, or, rd, LOONGARCH_GPR_ZERO, LOONGARCH_GPR_ZERO);
116 /* addiw rd, $zero, imm_11_0 */
118 emit_insn(ctx, addiw, rd, LOONGARCH_GPR_ZERO, imm);
122 /* ori rd, $zero, imm_11_0 */
124 emit_insn(ctx, ori, rd, LOONGARCH_GPR_ZERO, imm);
128 /* lu52id rd, $zero, imm_63_52 */
132 emit_insn(ctx, lu52id, rd, LOONGARCH_GPR_ZERO, imm_63_52);
136 /* lu12iw rd, imm_31_12 */
138 emit_insn(ctx, lu12iw, rd, imm_31_12);
140 /* ori rd, rd, imm_11_0 */
143 emit_insn(ctx, ori, rd, rd, imm_11_0);
154 /* lu32id rd, imm_51_32 */
156 emit_insn(ctx, lu32id, rd, imm_51_32);
160 /* lu52id rd, rd, imm_63_52 */
162 emit_insn(ctx, lu52id, rd, rd, imm_63_52);
166 emit_zext_32(ctx, rd, is32);
169 static inline void move_reg(struct jit_ctx *ctx, enum loongarch_gpr rd,
172 emit_insn(ctx, or, rd, rj, LOONGARCH_GPR_ZERO);
204 enum loongarch_gpr rd, int jmp_offset)
208 /* PC += jmp_offset if rj == rd */
209 emit_insn(ctx, beq, rj, rd, jmp_offset);
213 /* PC += jmp_offset if rj != rd */
214 emit_insn(ctx, bne, rj, rd, jmp_offset);
217 /* PC += jmp_offset if rj > rd (unsigned) */
218 emit_insn(ctx, bltu, rd, rj, jmp_offset);
221 /* PC += jmp_offset if rj < rd (unsigned) */
222 emit_insn(ctx, bltu, rj, rd, jmp_offset);
225 /* PC += jmp_offset if rj >= rd (unsigned) */
226 emit_insn(ctx, bgeu, rj, rd, jmp_offset);
229 /* PC += jmp_offset if rj <= rd (unsigned) */
230 emit_insn(ctx, bgeu, rd, rj, jmp_offset);
233 /* PC += jmp_offset if rj > rd (signed) */
234 emit_insn(ctx, blt, rd, rj, jmp_offset);
237 /* PC += jmp_offset if rj < rd (signed) */
238 emit_insn(ctx, blt, rj, rd, jmp_offset);
241 /* PC += jmp_offset if rj >= rd (signed) */
242 emit_insn(ctx, bge, rj, rd, jmp_offset);
245 /* PC += jmp_offset if rj <= rd (signed) */
246 emit_insn(ctx, bge, rd, rj, jmp_offset);
252 enum loongarch_gpr rd, int jmp_offset)
255 cond_jmp_offset(ctx, cond, rj, rd, 2);
265 enum loongarch_gpr rd, int jmp_offset)
279 cond_jmp_offs26(ctx, cond, rj, rd, jmp_offset);
297 enum loongarch_gpr rd, int jmp_offset)
300 cond_jmp_offset(ctx, cond, rj, rd, jmp_offset);