projects
/
qemu.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
578b813
)
target/hppa: Fix ADD/SUB trap on overflow for narrow mode
author
Sven Schnelle
<svens@stackframe.org>
Thu, 21 Mar 2024 18:42:27 +0000
(19:42 +0100)
committer
Richard Henderson
<richard.henderson@linaro.org>
Wed, 27 Mar 2024 22:15:25 +0000
(12:15 -1000)
Fixes: c53e401ed9ff ("target/hppa: Remove TARGET_REGISTER_BITS")
Signed-off-by: Sven Schnelle <svens@stackframe.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <
20240321184228
.611897-2-svens@stackframe.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
target/hppa/translate.c
patch
|
blob
|
history
diff --git
a/target/hppa/translate.c
b/target/hppa/translate.c
index 2cb91956da21e9477e304132cfb5dbecd1d5d637..ceb739c54a5ee59c4aa1a7d83c289e930a8eead8 100644
(file)
--- a/
target/hppa/translate.c
+++ b/
target/hppa/translate.c
@@
-1126,6
+1126,9
@@
static void do_add(DisasContext *ctx, unsigned rt, TCGv_i64 in1,
if (is_tsv || cond_need_sv(c)) {
sv = do_add_sv(ctx, dest, in1, in2);
if (is_tsv) {
+ if (!d) {
+ tcg_gen_ext32s_i64(sv, sv);
+ }
/* ??? Need to include overflow from shift. */
gen_helper_tsv(tcg_env, sv);
}
@@
-1217,6
+1220,9
@@
static void do_sub(DisasContext *ctx, unsigned rt, TCGv_i64 in1,
if (is_tsv || cond_need_sv(c)) {
sv = do_sub_sv(ctx, dest, in1, in2);
if (is_tsv) {
+ if (!d) {
+ tcg_gen_ext32s_i64(sv, sv);
+ }
gen_helper_tsv(tcg_env, sv);
}
}