diff options
author | Richard Henderson <rth@twiddle.net> | 2012-10-10 16:01:35 -0700 |
---|---|---|
committer | Aurelien Jarno <aurelien@aurel32.net> | 2012-10-17 01:26:43 +0200 |
commit | c7d4475a701c61f964a593d6fe81a8ea7a33add7 (patch) | |
tree | d44c07e6da45c80d17321f1f12c94e6a23e08e3b /tcg/ia64/tcg-target.h | |
parent | 63975ea7dfb3ec258433c782c2455bf64fab5e49 (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.h | 7 |
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 */ |