aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>2008-10-21 11:30:45 +0000
committeraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>2008-10-21 11:30:45 +0000
commitbdffd4a9d7254a765e56132587bc814195e094a2 (patch)
tree864d60c29e0f9be4b96ca008095696b3804dbdb4
parentcf960816f90559ddf26cb8445e55e9dffeaf5174 (diff)
TCG: add tcg_const_local_tl()
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5504 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r--tcg/tcg-op.h2
-rw-r--r--tcg/tcg.c16
-rw-r--r--tcg/tcg.h2
3 files changed, 20 insertions, 0 deletions
diff --git a/tcg/tcg-op.h b/tcg/tcg-op.h
index 8ddaf0b40e..18be6412d8 100644
--- a/tcg/tcg-op.h
+++ b/tcg/tcg-op.h
@@ -1774,6 +1774,7 @@ static inline void tcg_gen_qemu_st64(TCGv arg, TCGv addr, int mem_index)
#define tcg_gen_nor_tl tcg_gen_nor_i64
#define tcg_gen_orc_tl tcg_gen_orc_i64
#define tcg_const_tl tcg_const_i64
+#define tcg_const_local_tl tcg_const_local_i64
#else
#define TCG_TYPE_TL TCG_TYPE_I32
#define tcg_gen_movi_tl tcg_gen_movi_i32
@@ -1831,6 +1832,7 @@ static inline void tcg_gen_qemu_st64(TCGv arg, TCGv addr, int mem_index)
#define tcg_gen_nor_tl tcg_gen_nor_i32
#define tcg_gen_orc_tl tcg_gen_orc_i32
#define tcg_const_tl tcg_const_i32
+#define tcg_const_local_tl tcg_const_local_i32
#endif
#if TCG_TARGET_REG_BITS == 32
diff --git a/tcg/tcg.c b/tcg/tcg.c
index 1b7bf5ca3b..9d090f70da 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -475,6 +475,22 @@ TCGv tcg_const_i64(int64_t val)
return t0;
}
+TCGv tcg_const_local_i32(int32_t val)
+{
+ TCGv t0;
+ t0 = tcg_temp_local_new(TCG_TYPE_I32);
+ tcg_gen_movi_i32(t0, val);
+ return t0;
+}
+
+TCGv tcg_const_local_i64(int64_t val)
+{
+ TCGv t0;
+ t0 = tcg_temp_local_new(TCG_TYPE_I64);
+ tcg_gen_movi_i64(t0, val);
+ return t0;
+}
+
void tcg_register_helper(void *func, const char *name)
{
TCGContext *s = &tcg_ctx;
diff --git a/tcg/tcg.h b/tcg/tcg.h
index bc5b902699..1471ca34ac 100644
--- a/tcg/tcg.h
+++ b/tcg/tcg.h
@@ -385,6 +385,8 @@ void tcg_dump_ops(TCGContext *s, FILE *outfile);
void dump_ops(const uint16_t *opc_buf, const TCGArg *opparam_buf);
TCGv tcg_const_i32(int32_t val);
TCGv tcg_const_i64(int64_t val);
+TCGv tcg_const_local_i32(int32_t val);
+TCGv tcg_const_local_i64(int64_t val);
#if TCG_TARGET_REG_BITS == 32
#define tcg_const_ptr tcg_const_i32