aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@twiddle.net>2012-09-21 17:18:15 -0700
committerAurelien Jarno <aurelien@aurel32.net>2012-09-26 00:31:16 +0200
commit717e70368bdc339d241f84aba00ed72d051e0236 (patch)
tree646480b4290018287c1901c124bed0ce8e92b65f
parentc552d6c038f7cf4058d1fd5987118ffd41e0e050 (diff)
downloadqemu-arm-717e70368bdc339d241f84aba00ed72d051e0236.tar.gz
tcg: Sanity check deposit inputs
Given these are constants, checking once here means everything after can assume they're correct. Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
-rw-r--r--tcg/tcg-op.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/tcg/tcg-op.h b/tcg/tcg-op.h
index d2fb283764..ecb1ac3e2e 100644
--- a/tcg/tcg-op.h
+++ b/tcg/tcg-op.h
@@ -2081,6 +2081,10 @@ static inline void tcg_gen_deposit_i32(TCGv_i32 ret, TCGv_i32 arg1,
uint32_t mask;
TCGv_i32 t1;
+ tcg_debug_assert(ofs < 32);
+ tcg_debug_assert(len <= 32);
+ tcg_debug_assert(ofs + len <= 32);
+
if (ofs == 0 && len == 32) {
tcg_gen_mov_i32(ret, arg2);
return;
@@ -2112,6 +2116,10 @@ static inline void tcg_gen_deposit_i64(TCGv_i64 ret, TCGv_i64 arg1,
uint64_t mask;
TCGv_i64 t1;
+ tcg_debug_assert(ofs < 64);
+ tcg_debug_assert(len <= 64);
+ tcg_debug_assert(ofs + len <= 64);
+
if (ofs == 0 && len == 64) {
tcg_gen_mov_i64(ret, arg2);
return;