diff options
author | Richard Henderson <rth@twiddle.net> | 2014-07-03 13:18:26 -0700 |
---|---|---|
committer | Richard Henderson <rth@twiddle.net> | 2015-05-18 13:03:47 -0700 |
commit | 4d1628e832dfc6ec02b0d196f6cc250aaa7bf3b3 (patch) | |
tree | 9db81b4c7e9833618daaeaa4f81bdb1ee848cf88 /target-alpha/helper.h | |
parent | 7b4dde839e86ca6c254d4e3cd28260e9d668afb5 (diff) | |
download | hqemu-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.h | 7 |
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) |