From: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
To: qemu-devel@nongnu.org, peter.maydell@linaro.org
Cc: alex.bennee@linaro.org, serge.fdrv@gmail.com, rth@twiddle.net,
qemu-arm@nongnu.org, edgar.iglesias@xilinx.com
Subject: [PATCH v2 8/8] target-arm: Use isyn.swstep.ex to hold the is_ldex state
Date: Fri, 19 Feb 2016 21:04:52 +0100 [thread overview]
Message-ID: <1455912292-23807-9-git-send-email-edgar.iglesias@gmail.com> (raw)
In-Reply-To: <1455912292-23807-1-git-send-email-edgar.iglesias@gmail.com>
From: "Edgar E. Iglesias" <edgar.iglesias@xilinx.com>
Switch to using isyn.swstep.ex to hold the is_ldex state for
SWStep syndrome generation.
No functional change.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
---
target-arm/translate-a64.c | 6 +++---
target-arm/translate.c | 6 +++---
target-arm/translate.h | 13 ++++++++-----
3 files changed, 14 insertions(+), 11 deletions(-)
diff --git a/target-arm/translate-a64.c b/target-arm/translate-a64.c
index 5250c08..ab249d1 100644
--- a/target-arm/translate-a64.c
+++ b/target-arm/translate-a64.c
@@ -260,7 +260,7 @@ static void gen_step_complete_exception(DisasContext *s)
* of the exception, and our syndrome information is always correct.
*/
gen_ss_advance(s);
- gen_exception(EXCP_UDEF, syn_swstep(s->ss_same_el, 1, s->is_ldex),
+ gen_exception(EXCP_UDEF, syn_swstep(s->ss_same_el, 1, s->isyn.swstep.ex),
default_exception_el(s));
s->is_jmp = DISAS_EXC;
}
@@ -1865,7 +1865,7 @@ static void disas_ldst_excl(DisasContext *s, uint32_t insn)
if (is_excl) {
if (!is_store) {
- s->is_ldex = true;
+ s->isyn.swstep.ex = true;
gen_load_exclusive(s, rt, rt2, tcg_addr, size, is_pair);
} else {
gen_store_exclusive(s, rs, rt, rt2, tcg_addr, size, is_pair);
@@ -11136,7 +11136,7 @@ void gen_intermediate_code_a64(ARMCPU *cpu, TranslationBlock *tb)
*/
dc->ss_active = ARM_TBFLAG_SS_ACTIVE(tb->flags);
dc->pstate_ss = ARM_TBFLAG_PSTATE_SS(tb->flags);
- dc->is_ldex = false;
+ dc->isyn.swstep.ex = false;
dc->ss_same_el = (arm_debug_target_el(env) == dc->current_el);
init_tmp_a64_array(dc);
diff --git a/target-arm/translate.c b/target-arm/translate.c
index 7d83c94..5aee066 100644
--- a/target-arm/translate.c
+++ b/target-arm/translate.c
@@ -250,7 +250,7 @@ static void gen_step_complete_exception(DisasContext *s)
* of the exception, and our syndrome information is always correct.
*/
gen_ss_advance(s);
- gen_exception(EXCP_UDEF, syn_swstep(s->ss_same_el, 1, s->is_ldex),
+ gen_exception(EXCP_UDEF, syn_swstep(s->ss_same_el, 1, s->isyn.swstep.ex),
default_exception_el(s));
s->is_jmp = DISAS_EXC;
}
@@ -7431,7 +7431,7 @@ static void gen_load_exclusive(DisasContext *s, int rt, int rt2,
{
TCGv_i32 tmp = tcg_temp_new_i32();
- s->is_ldex = true;
+ s->isyn.swstep.ex = true;
switch (size) {
case 0:
@@ -11341,7 +11341,7 @@ void gen_intermediate_code(CPUARMState *env, TranslationBlock *tb)
*/
dc->ss_active = ARM_TBFLAG_SS_ACTIVE(tb->flags);
dc->pstate_ss = ARM_TBFLAG_PSTATE_SS(tb->flags);
- dc->is_ldex = false;
+ dc->isyn.swstep.ex = false;
dc->ss_same_el = false; /* Can't be true since EL_d must be AArch64 */
cpu_F0s = tcg_temp_new_i32();
diff --git a/target-arm/translate.h b/target-arm/translate.h
index e002c90..1c4c087 100644
--- a/target-arm/translate.h
+++ b/target-arm/translate.h
@@ -49,11 +49,6 @@ typedef struct DisasContext {
*/
bool ss_active;
bool pstate_ss;
- /* True if the insn just emitted was a load-exclusive instruction
- * (necessary for syndrome information for single step exceptions),
- * ie A64 LDX*, LDAX*, A32/T32 LDREX*, LDAEX*.
- */
- bool is_ldex;
/* True if a single-step exception will be taken to the current EL */
bool ss_same_el;
/* Bottom two bits of XScale c15_cpar coprocessor access control reg */
@@ -69,6 +64,14 @@ typedef struct DisasContext {
bool sf;
bool ar;
} dabt;
+ /* SWStep section. */
+ struct {
+ /* True if the insn just emitted was a load-exclusive instruction
+ * (necessary for syndrome information for single step exceptions),
+ * ie A64 LDX*, LDAX*, A32/T32 LDREX*, LDAEX*.
+ */
+ bool ex;
+ } swstep;
} isyn;
/* TCG op index of the current insn_start. */
int insn_start_idx;
--
1.9.1
next prev parent reply other threads:[~2016-02-19 20:05 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-19 20:04 [PATCH v2 0/8] arm: Steps towards EL2 support round 6 Edgar E. Iglesias
2016-02-19 20:04 ` [PATCH v2 1/8] tcg: Add tcg_set_insn_param Edgar E. Iglesias
2016-02-19 20:04 ` [PATCH v2 2/8] gen-icount: Use tcg_set_insn_param Edgar E. Iglesias
2016-02-19 20:04 ` [PATCH v2 3/8] target-arm: Add the IL flag to syn_data_abort Edgar E. Iglesias
2016-02-19 20:04 ` [PATCH v2 4/8] target-arm: Add more fields to the data abort syndrome generator Edgar E. Iglesias
2016-02-25 17:41 ` Peter Maydell
2016-02-26 20:08 ` Sergey Fedorov
2016-04-29 11:54 ` Edgar E. Iglesias
2016-02-19 20:04 ` [PATCH v2 5/8] target-arm/translate-a64.c: Use extract32 in disas_ldst_reg_imm9 Edgar E. Iglesias
2016-02-19 20:04 ` [PATCH v2 6/8] target-arm/translate-a64.c: Unify some of the ldst_reg decoding Edgar E. Iglesias
2016-02-19 20:04 ` [PATCH v2 7/8] target-arm: A64: Create Instruction Syndromes for Data Aborts Edgar E. Iglesias
2016-02-25 18:26 ` Peter Maydell
2016-04-29 11:58 ` Edgar E. Iglesias
2016-02-19 20:04 ` Edgar E. Iglesias [this message]
2016-02-25 18:28 ` [PATCH v2 8/8] target-arm: Use isyn.swstep.ex to hold the is_ldex state Peter Maydell
2016-02-26 8:22 ` Edgar E. Iglesias
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1455912292-23807-9-git-send-email-edgar.iglesias@gmail.com \
--to=edgar.iglesias@gmail.com \
--cc=alex.bennee@linaro.org \
--cc=edgar.iglesias@xilinx.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
--cc=serge.fdrv@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).