mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-02-02 06:21:01 +00:00
target/arm: Amend bad merge
This commit is contained in:
parent
f2ec6bc22d
commit
eadeae183d
|
@ -483,7 +483,7 @@ static inline void gen_goto_tb(DisasContext *s, int n, uint64_t dest)
|
||||||
void unallocated_encoding(DisasContext *s)
|
void unallocated_encoding(DisasContext *s)
|
||||||
{
|
{
|
||||||
/* Unallocated and reserved encodings are uncategorized */
|
/* Unallocated and reserved encodings are uncategorized */
|
||||||
gen_exception_insn(s, 4, EXCP_UDEF, syn_uncategorized(),
|
gen_exception_insn(s, s->pc_curr, EXCP_UDEF, syn_uncategorized(),
|
||||||
default_exception_el(s));
|
default_exception_el(s));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1302,8 +1302,8 @@ static inline bool fp_access_check(DisasContext *s)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
gen_exception_insn(s, 4, EXCP_UDEF, syn_fp_access_trap(1, 0xe, false),
|
gen_exception_insn(s, s->pc_curr, EXCP_UDEF,
|
||||||
s->fp_excp_el);
|
syn_fp_access_trap(1, 0xe, false), s->fp_excp_el);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1313,7 +1313,7 @@ static inline bool fp_access_check(DisasContext *s)
|
||||||
bool sve_access_check(DisasContext *s)
|
bool sve_access_check(DisasContext *s)
|
||||||
{
|
{
|
||||||
if (s->sve_excp_el) {
|
if (s->sve_excp_el) {
|
||||||
gen_exception_insn(s, 4, EXCP_UDEF, syn_sve_access_trap(),
|
gen_exception_insn(s, s->pc_curr, EXCP_UDEF, syn_sve_access_trap(),
|
||||||
s->sve_excp_el);
|
s->sve_excp_el);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -2066,8 +2066,8 @@ static void disas_exc(DisasContext *s, uint32_t insn)
|
||||||
switch (op2_ll) {
|
switch (op2_ll) {
|
||||||
case 1: /* SVC */
|
case 1: /* SVC */
|
||||||
gen_ss_advance(s);
|
gen_ss_advance(s);
|
||||||
gen_exception_insn(s, 0, EXCP_SWI, syn_aa64_svc(imm16),
|
gen_exception_insn(s, s->base.pc_next, EXCP_SWI,
|
||||||
default_exception_el(s));
|
syn_aa64_svc(imm16), default_exception_el(s));
|
||||||
break;
|
break;
|
||||||
case 2: /* HVC */
|
case 2: /* HVC */
|
||||||
if (s->current_el == 0) {
|
if (s->current_el == 0) {
|
||||||
|
@ -2080,7 +2080,8 @@ static void disas_exc(DisasContext *s, uint32_t insn)
|
||||||
gen_a64_set_pc_im(s, s->pc_curr);
|
gen_a64_set_pc_im(s, s->pc_curr);
|
||||||
gen_helper_pre_hvc(tcg_ctx, tcg_ctx->cpu_env);
|
gen_helper_pre_hvc(tcg_ctx, tcg_ctx->cpu_env);
|
||||||
gen_ss_advance(s);
|
gen_ss_advance(s);
|
||||||
gen_exception_insn(s, 0, EXCP_HVC, syn_aa64_hvc(imm16), 2);
|
gen_exception_insn(s, s->base.pc_next, EXCP_HVC,
|
||||||
|
syn_aa64_hvc(imm16), 2);
|
||||||
break;
|
break;
|
||||||
case 3: /* SMC */
|
case 3: /* SMC */
|
||||||
if (s->current_el == 0) {
|
if (s->current_el == 0) {
|
||||||
|
@ -2092,7 +2093,8 @@ static void disas_exc(DisasContext *s, uint32_t insn)
|
||||||
gen_helper_pre_smc(tcg_ctx, tcg_ctx->cpu_env, tmp);
|
gen_helper_pre_smc(tcg_ctx, tcg_ctx->cpu_env, tmp);
|
||||||
tcg_temp_free_i32(tcg_ctx, tmp);
|
tcg_temp_free_i32(tcg_ctx, tmp);
|
||||||
gen_ss_advance(s);
|
gen_ss_advance(s);
|
||||||
gen_exception_insn(s, 0, EXCP_SMC, syn_aa64_smc(imm16), 3);
|
gen_exception_insn(s, s->base.pc_next, EXCP_SMC,
|
||||||
|
syn_aa64_smc(imm16), 3);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
unallocated_encoding(s);
|
unallocated_encoding(s);
|
||||||
|
@ -14409,7 +14411,8 @@ static void disas_a64_insn(CPUARMState *env, DisasContext *s)
|
||||||
if (s->btype != 0
|
if (s->btype != 0
|
||||||
&& s->guarded_page
|
&& s->guarded_page
|
||||||
&& !btype_destination_ok(insn, s->bt, s->btype)) {
|
&& !btype_destination_ok(insn, s->bt, s->btype)) {
|
||||||
gen_exception_insn(s, 4, EXCP_UDEF, syn_btitrap(s->btype),
|
gen_exception_insn(s, s->pc_curr, EXCP_UDEF,
|
||||||
|
syn_btitrap(s->btype),
|
||||||
default_exception_el(s));
|
default_exception_el(s));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3052,7 +3052,8 @@ static bool msr_banked_access_decode(DisasContext *s, int r, int sysm, int rn,
|
||||||
|
|
||||||
undef:
|
undef:
|
||||||
/* If we get here then some access check did not pass */
|
/* If we get here then some access check did not pass */
|
||||||
gen_exception_insn(s, 4, EXCP_UDEF, syn_uncategorized(), exc_target);
|
gen_exception_insn(s, s->pc_curr, EXCP_UDEF,
|
||||||
|
syn_uncategorized(), exc_target);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3415,7 +3416,7 @@ static int disas_neon_ls_insn(DisasContext *s, uint32_t insn)
|
||||||
* for attempts to execute invalid vfp/neon encodings with FP disabled.
|
* for attempts to execute invalid vfp/neon encodings with FP disabled.
|
||||||
*/
|
*/
|
||||||
if (s->fp_excp_el) {
|
if (s->fp_excp_el) {
|
||||||
gen_exception_insn(s, 4, EXCP_UDEF,
|
gen_exception_insn(s, s->pc_curr, EXCP_UDEF,
|
||||||
syn_simd_access_trap(1, 0xe, false), s->fp_excp_el);
|
syn_simd_access_trap(1, 0xe, false), s->fp_excp_el);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -4700,7 +4701,7 @@ static int disas_neon_data_insn(DisasContext *s, uint32_t insn)
|
||||||
* for attempts to execute invalid vfp/neon encodings with FP disabled.
|
* for attempts to execute invalid vfp/neon encodings with FP disabled.
|
||||||
*/
|
*/
|
||||||
if (s->fp_excp_el) {
|
if (s->fp_excp_el) {
|
||||||
gen_exception_insn(s, 4, EXCP_UDEF,
|
gen_exception_insn(s, s->pc_curr, EXCP_UDEF,
|
||||||
syn_simd_access_trap(1, 0xe, false), s->fp_excp_el);
|
syn_simd_access_trap(1, 0xe, false), s->fp_excp_el);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -6827,7 +6828,7 @@ static int disas_neon_insn_3same_ext(DisasContext *s, uint32_t insn)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s->fp_excp_el) {
|
if (s->fp_excp_el) {
|
||||||
gen_exception_insn(s, 4, EXCP_UDEF,
|
gen_exception_insn(s, s->pc_curr, EXCP_UDEF,
|
||||||
syn_simd_access_trap(1, 0xe, false), s->fp_excp_el);
|
syn_simd_access_trap(1, 0xe, false), s->fp_excp_el);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -6951,7 +6952,7 @@ static int disas_neon_insn_2reg_scalar_ext(DisasContext *s, uint32_t insn)
|
||||||
off_rm = vfp_reg_offset(0, rm);
|
off_rm = vfp_reg_offset(0, rm);
|
||||||
}
|
}
|
||||||
if (s->fp_excp_el) {
|
if (s->fp_excp_el) {
|
||||||
gen_exception_insn(s, 4, EXCP_UDEF,
|
gen_exception_insn(s, s->pc_curr, EXCP_UDEF,
|
||||||
syn_simd_access_trap(1, 0xe, false), s->fp_excp_el);
|
syn_simd_access_trap(1, 0xe, false), s->fp_excp_el);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -7446,7 +7447,7 @@ static void gen_srs(DisasContext *s,
|
||||||
* For the UNPREDICTABLE cases we choose to UNDEF.
|
* For the UNPREDICTABLE cases we choose to UNDEF.
|
||||||
*/
|
*/
|
||||||
if (s->current_el == 1 && !s->ns && mode == ARM_CPU_MODE_MON) {
|
if (s->current_el == 1 && !s->ns && mode == ARM_CPU_MODE_MON) {
|
||||||
gen_exception_insn(s, 4, EXCP_UDEF, syn_uncategorized(), 3);
|
gen_exception_insn(s, s->pc_curr, EXCP_UDEF, syn_uncategorized(), 3);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10816,7 +10817,7 @@ static void disas_arm_insn(DisasContext *s, unsigned int insn)
|
||||||
* UsageFault exception.
|
* UsageFault exception.
|
||||||
*/
|
*/
|
||||||
if (arm_dc_feature(s, ARM_FEATURE_M)) {
|
if (arm_dc_feature(s, ARM_FEATURE_M)) {
|
||||||
gen_exception_insn(s, 4, EXCP_INVSTATE, syn_uncategorized(),
|
gen_exception_insn(s, s->pc_curr, EXCP_INVSTATE, syn_uncategorized(),
|
||||||
default_exception_el(s));
|
default_exception_el(s));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -11066,7 +11067,7 @@ static void disas_thumb2_insn(DisasContext *s, uint32_t insn)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* All other insns: NOCP */
|
/* All other insns: NOCP */
|
||||||
gen_exception_insn(s, 4, EXCP_NOCP, syn_uncategorized(),
|
gen_exception_insn(s, s->pc_curr, EXCP_NOCP, syn_uncategorized(),
|
||||||
default_exception_el(s));
|
default_exception_el(s));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue