aboutsummaryrefslogtreecommitdiff
path: root/tcg/arm
diff options
context:
space:
mode:
authorRichard Henderson <rth@twiddle.net>2013-04-23 13:07:40 -0700
committerAurelien Jarno <aurelien@aurel32.net>2013-04-27 02:16:45 +0200
commit96fbd7de3656583d647c204c4138bbdcc3e35d2b (patch)
tree59e5609c58aa11ace0806069291f4672f06b81ee /tcg/arm
parentdf5e0ef711cdd2ebfd4bdf420bfde17aa28df8b1 (diff)
downloadqemu-96fbd7de3656583d647c204c4138bbdcc3e35d2b.zip
qemu-96fbd7de3656583d647c204c4138bbdcc3e35d2b.tar.gz
qemu-96fbd7de3656583d647c204c4138bbdcc3e35d2b.tar.bz2
tcg-arm: Remove long jump from tcg_out_goto_label
Branches within a TB will always be within 16MB. Signed-off-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'tcg/arm')
-rw-r--r--tcg/arm/tcg-target.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/tcg/arm/tcg-target.c b/tcg/arm/tcg-target.c
index d6afa2f..7216f7a 100644
--- a/tcg/arm/tcg-target.c
+++ b/tcg/arm/tcg-target.c
@@ -1055,14 +1055,9 @@ static inline void tcg_out_goto_label(TCGContext *s, int cond, int label_index)
{
TCGLabel *l = &s->labels[label_index];
- if (l->has_value)
+ if (l->has_value) {
tcg_out_goto(s, cond, l->u.value);
- else if (cond == COND_AL) {
- tcg_out_ld32_12(s, COND_AL, TCG_REG_PC, TCG_REG_PC, -4);
- tcg_out_reloc(s, s->code_ptr, R_ARM_ABS32, label_index, 31337);
- s->code_ptr += 4;
} else {
- /* Probably this should be preferred even for COND_AL... */
tcg_out_reloc(s, s->code_ptr, R_ARM_PC24, label_index, 31337);
tcg_out_b_noaddr(s, cond);
}