From 84bcfa9ab4ca53f62758026107eb5776e9417ce8 Mon Sep 17 00:00:00 2001 From: Michael Buesch Date: Sun, 11 Nov 2007 02:38:44 +0100 Subject: [PATCH] assembler: Fix label-immediate for v15 Signed-off-by: Michael Buesch --- assembler/main.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/assembler/main.c b/assembler/main.c index 2c47493..701721d 100644 --- a/assembler/main.c +++ b/assembler/main.c @@ -947,8 +947,16 @@ recalculate_addresses: if (addr < 0) goto does_not_exist; c->operands[i].u.operand = addr; - if (i != 2) /* Is not a jump target */ - c->operands[i].u.operand |= 0xC00; /* Make it be an immediate */ + if (i != 2) { + /* Is not a jump target. + * Make it be an immediate */ + if (ctx->arch == 5) + c->operands[i].u.operand |= 0xC00; + else if (ctx->arch == 15) + c->operands[i].u.operand |= 0xC00 << 1; + else + asm_error(ctx, "Internal error: label res imm"); + } } break; case OUT_LABEL: -- 2.31.1