From: "Andreas Färber" <afaerber@suse.de>
To: Michael Walle <michael@walle.cc>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PULL v2 06/11] target-lm32: kill cpu_abort() calls
Date: Mon, 14 Oct 2013 20:01:43 +0200 [thread overview]
Message-ID: <525C3187.5070705@suse.de> (raw)
In-Reply-To: <1381768175-13520-7-git-send-email-michael@walle.cc>
Am 14.10.2013 18:29, schrieb Michael Walle:
> Instead of killing QEMU, translate instructions which are not available on
> the CPU model as a noop and issue a log message at translation time.
>
> On the real hardware CPU unknown opcodes results in undefined behaviour.
>
> These changes prepare the removal of CPULM32State from DisasContext.
>
> Cc: Andreas Färber <afaerber@suse.de>
> Signed-off-by: Michael Walle <michael@walle.cc>
> ---
> target-lm32/translate.c | 72 ++++++++++++++++++++++++++---------------------
> 1 file changed, 40 insertions(+), 32 deletions(-)
>
> diff --git a/target-lm32/translate.c b/target-lm32/translate.c
> index 6ea0ecd..eda8caa 100644
> --- a/target-lm32/translate.c
> +++ b/target-lm32/translate.c
> @@ -80,7 +80,6 @@ typedef struct DisasContext {
> unsigned int tb_flags, synced_flags; /* tb dependent flags. */
> int is_jmp;
>
> - int nr_nops;
> struct TranslationBlock *tb;
> int singlestep_enabled;
> } DisasContext;
> @@ -422,7 +421,8 @@ static void dec_divu(DisasContext *dc)
> LOG_DIS("divu r%d, r%d, r%d\n", dc->r2, dc->r0, dc->r1);
>
> if (!(dc->env->features & LM32_FEATURE_DIVIDE)) {
> - cpu_abort(dc->env, "hardware divider is not available\n");
> + qemu_log_mask(LOG_GUEST_ERROR, "hardware divider is not available\n");
> + return;
> }
>
> l1 = gen_new_label();
> @@ -500,7 +500,8 @@ static void dec_modu(DisasContext *dc)
> LOG_DIS("modu r%d, r%d, %d\n", dc->r2, dc->r0, dc->r1);
>
> if (!(dc->env->features & LM32_FEATURE_DIVIDE)) {
> - cpu_abort(dc->env, "hardware divider is not available\n");
> + qemu_log_mask(LOG_GUEST_ERROR, "hardware divider is not available\n");
> + return;
> }
>
> l1 = gen_new_label();
> @@ -521,7 +522,9 @@ static void dec_mul(DisasContext *dc)
> }
>
> if (!(dc->env->features & LM32_FEATURE_MULTIPLY)) {
> - cpu_abort(dc->env, "hardware multiplier is not available\n");
> + qemu_log_mask(LOG_GUEST_ERROR,
> + "hardware multiplier is not available\n");
[snip]
If you do respin, could you align with opening parenthesis here and
below, please? Otherwise looks good and you can add my Reviewed-by then.
Thanks!
Andreas
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
next prev parent reply other threads:[~2013-10-14 18:01 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-14 16:29 [Qemu-devel] [PULL v2 00/11] target-lm32 updates Michael Walle
2013-10-14 16:29 ` [Qemu-devel] [PULL v2 01/11] lm32_sys: increase test case name length limit Michael Walle
2013-10-14 16:29 ` [Qemu-devel] [PULL v2 02/11] tests: lm32: new rule for single test cases Michael Walle
2013-10-14 16:29 ` [Qemu-devel] [PULL v2 03/11] milkymist-uart: use qemu_chr_fe_write_all() instead of qemu_chr_fe_write() Michael Walle
2013-10-14 16:29 ` [Qemu-devel] [PULL v2 04/11] lm32_uart/lm32_juart: use qemu_chr_fe_write_all() Michael Walle
2013-10-14 16:29 ` [Qemu-devel] [PULL v2 05/11] milkymist-vgafb: swap pixel data in source buffer Michael Walle
2013-10-14 17:05 ` Richard Henderson
2013-10-14 17:21 ` Michael Walle
2013-10-14 16:29 ` [Qemu-devel] [PULL v2 06/11] target-lm32: kill cpu_abort() calls Michael Walle
2013-10-14 18:01 ` Andreas Färber [this message]
2013-10-14 16:29 ` [Qemu-devel] [PULL v2 07/11] target-lm32: move model features to LM32CPU Michael Walle
2013-10-14 17:16 ` Andreas Färber
2013-10-14 22:46 ` [Qemu-devel] [PATCH v2] " Michael Walle
2013-11-17 20:46 ` Michael Walle
2013-11-18 14:47 ` Andreas Färber
2013-11-18 15:03 ` Andreas Färber
2013-10-14 16:29 ` [Qemu-devel] [PULL v2 08/11] target-lm32: add breakpoint/watchpoint support Michael Walle
2013-10-14 16:29 ` [Qemu-devel] [PULL v2 09/11] lm32_sys: print test result on stderr Michael Walle
2013-10-14 16:29 ` [Qemu-devel] [PULL v2 10/11] lm32_sys: dump cpu state if test case fails Michael Walle
2013-10-14 16:29 ` [Qemu-devel] [PULL v2 11/11] target-lm32: stop VM on illegal or unknown instruction Michael Walle
2013-10-14 17:20 ` [Qemu-devel] [PULL v2 00/11] target-lm32 updates Michael Walle
2013-11-28 6:41 ` Antony Pavlov
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=525C3187.5070705@suse.de \
--to=afaerber@suse.de \
--cc=michael@walle.cc \
--cc=qemu-devel@nongnu.org \
/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).