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) |
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 9e7b7712f8..5b1a5d9ca5 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) |