Hexagon (target/hexagon) Add overrides for jumpr31 instructions
Add overrides for SL2_jumpr31 Unconditional SL2_jumpr31_t Predicated true (old value) SL2_jumpr31_f Predicated false (old value) SL2_jumpr31_tnew Predicated true (new value) SL2_jumpr31_fnew Predicated false (new value) Signed-off-by: Taylor Simpson <tsimpson@quicinc.com> Reviewed-by: Anton Johansson <anjo@rev.ng> Message-Id: <20230307025828.1612809-2-tsimpson@quicinc.com>
This commit is contained in:
parent
bbb71568de
commit
5ef5fdba17
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright(c) 2019-2022 Qualcomm Innovation Center, Inc. All Rights Reserved.
|
* Copyright(c) 2019-2023 Qualcomm Innovation Center, Inc. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -986,6 +986,19 @@
|
||||||
#define fGEN_TCG_S2_asl_r_r_sat(SHORTCODE) \
|
#define fGEN_TCG_S2_asl_r_r_sat(SHORTCODE) \
|
||||||
gen_asl_r_r_sat(RdV, RsV, RtV)
|
gen_asl_r_r_sat(RdV, RsV, RtV)
|
||||||
|
|
||||||
|
#define fGEN_TCG_SL2_jumpr31(SHORTCODE) \
|
||||||
|
gen_jumpr(ctx, hex_gpr[HEX_REG_LR])
|
||||||
|
|
||||||
|
#define fGEN_TCG_SL2_jumpr31_t(SHORTCODE) \
|
||||||
|
gen_cond_jumpr31(ctx, TCG_COND_EQ, hex_pred[0])
|
||||||
|
#define fGEN_TCG_SL2_jumpr31_f(SHORTCODE) \
|
||||||
|
gen_cond_jumpr31(ctx, TCG_COND_NE, hex_pred[0])
|
||||||
|
|
||||||
|
#define fGEN_TCG_SL2_jumpr31_tnew(SHORTCODE) \
|
||||||
|
gen_cond_jumpr31(ctx, TCG_COND_EQ, hex_new_pred_value[0])
|
||||||
|
#define fGEN_TCG_SL2_jumpr31_fnew(SHORTCODE) \
|
||||||
|
gen_cond_jumpr31(ctx, TCG_COND_NE, hex_new_pred_value[0])
|
||||||
|
|
||||||
/* Floating point */
|
/* Floating point */
|
||||||
#define fGEN_TCG_F2_conv_sf2df(SHORTCODE) \
|
#define fGEN_TCG_F2_conv_sf2df(SHORTCODE) \
|
||||||
gen_helper_conv_sf2df(RddV, cpu_env, RsV)
|
gen_helper_conv_sf2df(RddV, cpu_env, RsV)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright(c) 2019-2022 Qualcomm Innovation Center, Inc. All Rights Reserved.
|
* Copyright(c) 2019-2023 Qualcomm Innovation Center, Inc. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -571,6 +571,13 @@ static void gen_cond_jumpr(DisasContext *ctx, TCGv dst_pc,
|
||||||
gen_write_new_pc_addr(ctx, dst_pc, cond, pred);
|
gen_write_new_pc_addr(ctx, dst_pc, cond, pred);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void gen_cond_jumpr31(DisasContext *ctx, TCGCond cond, TCGv pred)
|
||||||
|
{
|
||||||
|
TCGv LSB = tcg_temp_new();
|
||||||
|
tcg_gen_andi_tl(LSB, pred, 1);
|
||||||
|
gen_cond_jumpr(ctx, hex_gpr[HEX_REG_LR], cond, LSB);
|
||||||
|
}
|
||||||
|
|
||||||
static void gen_cond_jump(DisasContext *ctx, TCGCond cond, TCGv pred,
|
static void gen_cond_jump(DisasContext *ctx, TCGCond cond, TCGv pred,
|
||||||
int pc_off)
|
int pc_off)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue