aboutsummaryrefslogtreecommitdiff
path: root/tcg/ia64/tcg-target.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@twiddle.net>2012-10-10 16:01:35 -0700
committerAurelien Jarno <aurelien@aurel32.net>2012-10-17 01:26:43 +0200
commitc7d4475a701c61f964a593d6fe81a8ea7a33add7 (patch)
treed44c07e6da45c80d17321f1f12c94e6a23e08e3b /tcg/ia64/tcg-target.h
parent63975ea7dfb3ec258433c782c2455bf64fab5e49 (diff)
tcg-ia64: Implement deposit
Note that in the general reg=reg,reg case we're restricted to 16-bit insertions. This makes it easy to allow "any" constant as input, as post-truncation it will fit into the constant load insn for which we have room in the bundle. Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Diffstat (limited to 'tcg/ia64/tcg-target.h')
-rw-r--r--tcg/ia64/tcg-target.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/tcg/ia64/tcg-target.h b/tcg/ia64/tcg-target.h
index 5e7d970982..4255ca5225 100644
--- a/tcg/ia64/tcg-target.h
+++ b/tcg/ia64/tcg-target.h
@@ -133,8 +133,11 @@ typedef enum {
#define TCG_TARGET_HAS_rot_i64 1
#define TCG_TARGET_HAS_movcond_i32 1
#define TCG_TARGET_HAS_movcond_i64 1
-#define TCG_TARGET_HAS_deposit_i32 0
-#define TCG_TARGET_HAS_deposit_i64 0
+#define TCG_TARGET_HAS_deposit_i32 1
+#define TCG_TARGET_HAS_deposit_i64 1
+
+#define TCG_TARGET_deposit_i32_valid(ofs, len) ((len) <= 16)
+#define TCG_TARGET_deposit_i64_valid(ofs, len) ((len) <= 16)
/* optional instructions automatically implemented */
#define TCG_TARGET_HAS_neg_i32 0 /* sub r1, r0, r3 */