Lines Matching full:rd

91 static inline void move_addr(struct jit_ctx *ctx, enum loongarch_gpr rd, u64 addr)  in move_addr()  argument
95 /* lu12iw rd, imm_31_12 */ in move_addr()
97 emit_insn(ctx, lu12iw, rd, imm_31_12); in move_addr()
99 /* ori rd, rd, imm_11_0 */ in move_addr()
101 emit_insn(ctx, ori, rd, rd, imm_11_0); in move_addr()
103 /* lu32id rd, imm_51_32 */ in move_addr()
105 emit_insn(ctx, lu32id, rd, imm_51_32); in move_addr()
107 /* lu52id rd, rd, imm_63_52 */ in move_addr()
109 emit_insn(ctx, lu52id, rd, rd, imm_63_52); in move_addr()
112 static inline void move_imm(struct jit_ctx *ctx, enum loongarch_gpr rd, long imm, bool is32) in move_imm() argument
116 /* or rd, $zero, $zero */ in move_imm()
118 emit_insn(ctx, or, rd, LOONGARCH_GPR_ZERO, LOONGARCH_GPR_ZERO); in move_imm()
122 /* addiw rd, $zero, imm_11_0 */ in move_imm()
124 emit_insn(ctx, addiw, rd, LOONGARCH_GPR_ZERO, imm); in move_imm()
128 /* ori rd, $zero, imm_11_0 */ in move_imm()
130 emit_insn(ctx, ori, rd, LOONGARCH_GPR_ZERO, imm); in move_imm()
134 /* lu52id rd, $zero, imm_63_52 */ in move_imm()
138 emit_insn(ctx, lu52id, rd, LOONGARCH_GPR_ZERO, imm_63_52); in move_imm()
142 /* lu12iw rd, imm_31_12 */ in move_imm()
144 emit_insn(ctx, lu12iw, rd, imm_31_12); in move_imm()
146 /* ori rd, rd, imm_11_0 */ in move_imm()
149 emit_insn(ctx, ori, rd, rd, imm_11_0); in move_imm()
160 /* lu32id rd, imm_51_32 */ in move_imm()
162 emit_insn(ctx, lu32id, rd, imm_51_32); in move_imm()
166 /* lu52id rd, rd, imm_63_52 */ in move_imm()
168 emit_insn(ctx, lu52id, rd, rd, imm_63_52); in move_imm()
172 emit_zext_32(ctx, rd, is32); in move_imm()
175 static inline void move_reg(struct jit_ctx *ctx, enum loongarch_gpr rd, in move_reg() argument
178 emit_insn(ctx, or, rd, rj, LOONGARCH_GPR_ZERO); in move_reg()
210 enum loongarch_gpr rd, int jmp_offset) in cond_jmp_offset() argument
214 /* PC += jmp_offset if rj == rd */ in cond_jmp_offset()
215 emit_insn(ctx, beq, rj, rd, jmp_offset); in cond_jmp_offset()
219 /* PC += jmp_offset if rj != rd */ in cond_jmp_offset()
220 emit_insn(ctx, bne, rj, rd, jmp_offset); in cond_jmp_offset()
223 /* PC += jmp_offset if rj > rd (unsigned) */ in cond_jmp_offset()
224 emit_insn(ctx, bltu, rd, rj, jmp_offset); in cond_jmp_offset()
227 /* PC += jmp_offset if rj < rd (unsigned) */ in cond_jmp_offset()
228 emit_insn(ctx, bltu, rj, rd, jmp_offset); in cond_jmp_offset()
231 /* PC += jmp_offset if rj >= rd (unsigned) */ in cond_jmp_offset()
232 emit_insn(ctx, bgeu, rj, rd, jmp_offset); in cond_jmp_offset()
235 /* PC += jmp_offset if rj <= rd (unsigned) */ in cond_jmp_offset()
236 emit_insn(ctx, bgeu, rd, rj, jmp_offset); in cond_jmp_offset()
239 /* PC += jmp_offset if rj > rd (signed) */ in cond_jmp_offset()
240 emit_insn(ctx, blt, rd, rj, jmp_offset); in cond_jmp_offset()
243 /* PC += jmp_offset if rj < rd (signed) */ in cond_jmp_offset()
244 emit_insn(ctx, blt, rj, rd, jmp_offset); in cond_jmp_offset()
247 /* PC += jmp_offset if rj >= rd (signed) */ in cond_jmp_offset()
248 emit_insn(ctx, bge, rj, rd, jmp_offset); in cond_jmp_offset()
251 /* PC += jmp_offset if rj <= rd (signed) */ in cond_jmp_offset()
252 emit_insn(ctx, bge, rd, rj, jmp_offset); in cond_jmp_offset()
258 enum loongarch_gpr rd, int jmp_offset) in cond_jmp_offs26() argument
261 cond_jmp_offset(ctx, cond, rj, rd, 2); in cond_jmp_offs26()
271 enum loongarch_gpr rd, int jmp_offset) in emit_cond_jmp() argument
285 cond_jmp_offs26(ctx, cond, rj, rd, jmp_offset); in emit_cond_jmp()
303 enum loongarch_gpr rd, int jmp_offset) in emit_tailcall_jmp() argument
306 cond_jmp_offset(ctx, cond, rj, rd, jmp_offset); in emit_tailcall_jmp()