+static void rec_add_offset(struct lightrec_cstate *cstate,
+ jit_state_t *_jit, u8 reg_out, u8 reg_in,
+ uintptr_t offset)
+{
+ struct regcache *reg_cache = cstate->reg_cache;
+ u8 reg_imm;
+
+ reg_imm = lightrec_alloc_reg_temp_with_value(reg_cache, _jit, offset);
+ jit_addr(reg_out, reg_in, reg_imm);
+
+ lightrec_free_reg(reg_cache, reg_imm);
+}
+
+static void rec_and_mask(struct lightrec_cstate *cstate,
+ jit_state_t *_jit, u8 reg_out, u8 reg_in, u32 mask)
+{
+ struct regcache *reg_cache = cstate->reg_cache;
+ u8 reg_imm;
+
+ reg_imm = lightrec_alloc_reg_temp_with_value(reg_cache, _jit, mask);
+ jit_andr(reg_out, reg_in, reg_imm);
+
+ lightrec_free_reg(reg_cache, reg_imm);
+}
+