summaryrefslogtreecommitdiffstats
path: root/target-alpha/helper.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@twiddle.net>2014-07-03 13:18:26 -0700
committerRichard Henderson <rth@twiddle.net>2015-05-18 13:03:47 -0700
commit4d1628e832dfc6ec02b0d196f6cc250aaa7bf3b3 (patch)
tree9db81b4c7e9833618daaeaa4f81bdb1ee848cf88 /target-alpha/helper.h
parent7b4dde839e86ca6c254d4e3cd28260e9d668afb5 (diff)
downloadhqemu-4d1628e832dfc6ec02b0d196f6cc250aaa7bf3b3.zip
hqemu-4d1628e832dfc6ec02b0d196f6cc250aaa7bf3b3.tar.gz
target-alpha: Fix integer overflow checking insns
We need to write the result to the destination register before raising any exception. Thus inline the code for each insn, and check for any exception after we're done. Reported-by: Al Viro <viro@ZenIV.linux.org.uk> Signed-off-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'target-alpha/helper.h')
-rw-r--r--target-alpha/helper.h7
1 files changed, 1 insertions, 6 deletions
diff --git a/target-alpha/helper.h b/target-alpha/helper.h
index 9e7b771..5b1a5d9 100644
--- a/target-alpha/helper.h
+++ b/target-alpha/helper.h
@@ -1,12 +1,7 @@
DEF_HELPER_3(excp, noreturn, env, int, int)
DEF_HELPER_FLAGS_1(load_pcc, TCG_CALL_NO_RWG_SE, i64, env)
-DEF_HELPER_FLAGS_3(addqv, TCG_CALL_NO_WG, i64, env, i64, i64)
-DEF_HELPER_FLAGS_3(addlv, TCG_CALL_NO_WG, i64, env, i64, i64)
-DEF_HELPER_FLAGS_3(subqv, TCG_CALL_NO_WG, i64, env, i64, i64)
-DEF_HELPER_FLAGS_3(sublv, TCG_CALL_NO_WG, i64, env, i64, i64)
-DEF_HELPER_FLAGS_3(mullv, TCG_CALL_NO_WG, i64, env, i64, i64)
-DEF_HELPER_FLAGS_3(mulqv, TCG_CALL_NO_WG, i64, env, i64, i64)
+DEF_HELPER_FLAGS_3(check_overflow, TCG_CALL_NO_WG, void, env, i64, i64)
DEF_HELPER_FLAGS_1(ctpop, TCG_CALL_NO_RWG_SE, i64, i64)
DEF_HELPER_FLAGS_1(ctlz, TCG_CALL_NO_RWG_SE, i64, i64)
OpenPOWER on IntegriCloud