assembler: Remove two fixmes.
[b43-tools.git] / assembler / main.c
index 2c4749344305b606daa16e5452ce7e3f8a8d173f..34a057dc2ac61bcd780dc03a0b8e14ba251c92ae 100644 (file)
@@ -289,7 +289,7 @@ static unsigned int generate_reg_operand(struct assembler_context *ctx,
        case SPR:
                /* format: 0b100. .... .... */
                val |= 0x800;
-               if (ctx->arch == 15) //FIXME is this ok?
+               if (ctx->arch == 15)
                        val <<= 1;
                if (reg->nr & ~0x1FF)
                        asm_error(ctx, "SPR-nr too big");
@@ -298,7 +298,7 @@ static unsigned int generate_reg_operand(struct assembler_context *ctx,
        case OFFR:
                /* format: 0b1000 0110 0rrr */
                val |= 0x860;
-               if (ctx->arch == 15) //FIXME is this ok?
+               if (ctx->arch == 15)
                        val <<= 1;
                if (reg->nr & ~0x7)
                        asm_error(ctx, "OFFR-nr too big");
@@ -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: