#define fGEN_TCG_L4_loadd_locked(SHORTCODE) \
SHORTCODE
#define fGEN_TCG_S2_storew_locked(SHORTCODE) \
- do { SHORTCODE; READ_PREG(PdV, PdN); } while (0)
+ SHORTCODE
#define fGEN_TCG_S4_stored_locked(SHORTCODE) \
- do { SHORTCODE; READ_PREG(PdV, PdN); } while (0)
+ SHORTCODE
#define fGEN_TCG_STORE(SHORTCODE) \
do { \
#undef QEMU_GENERATE
#include "gen_tcg.h"
-static inline TCGv gen_read_preg(TCGv pred, uint8_t num)
-{
- tcg_gen_mov_tl(pred, hex_pred[num]);
- return pred;
-}
-
static inline void gen_log_predicated_reg_write(int rnum, TCGv val, int slot)
{
TCGv zero = tcg_const_tl(0);
tcg_gen_mov_i64(hex_llsc_val_i64, dest);
}
-static inline void gen_store_conditional4(CPUHexagonState *env,
- DisasContext *ctx, int prednum,
+static inline void gen_store_conditional4(DisasContext *ctx,
TCGv pred, TCGv vaddr, TCGv src)
{
TCGLabel *fail = gen_new_label();
tmp = tcg_temp_new();
tcg_gen_atomic_cmpxchg_tl(tmp, hex_llsc_addr, hex_llsc_val, src,
ctx->mem_idx, MO_32);
- tcg_gen_movcond_tl(TCG_COND_EQ, hex_pred[prednum], tmp, hex_llsc_val,
+ tcg_gen_movcond_tl(TCG_COND_EQ, pred, tmp, hex_llsc_val,
one, zero);
tcg_temp_free(one);
tcg_temp_free(zero);
tcg_gen_movi_tl(hex_llsc_addr, ~0);
}
-static inline void gen_store_conditional8(CPUHexagonState *env,
- DisasContext *ctx, int prednum,
+static inline void gen_store_conditional8(DisasContext *ctx,
TCGv pred, TCGv vaddr, TCGv_i64 src)
{
TCGLabel *fail = gen_new_label();
ctx->mem_idx, MO_64);
tcg_gen_movcond_i64(TCG_COND_EQ, tmp, tmp, hex_llsc_val_i64,
one, zero);
- tcg_gen_extrl_i64_i32(hex_pred[prednum], tmp);
+ tcg_gen_extrl_i64_i32(pred, tmp);
tcg_temp_free_i64(one);
tcg_temp_free_i64(zero);
tcg_temp_free_i64(tmp);
#ifdef QEMU_GENERATE
#define READ_REG(dest, NUM) gen_read_reg(dest, NUM)
-#define READ_PREG(dest, NUM) gen_read_preg(dest, (NUM))
#else
#define READ_REG(NUM) (env->gpr[(NUM)])
#define READ_PREG(NUM) (env->pred[NUM])
#ifdef QEMU_GENERATE
#define fSTORE_LOCKED(NUM, SIZE, EA, SRC, PRED) \
- gen_store_conditional##SIZE(env, ctx, PdN, PRED, EA, SRC);
+ gen_store_conditional##SIZE(ctx, PRED, EA, SRC);
#endif
#ifdef QEMU_GENERATE