ZeroDirective = "\t.skip\t";
CommentString = "!";
ConstantPoolSection = "\t.section \".rodata\",#alloc\n";
+ AlignmentIsInBytes = false;
}
/// We name each basic block in a Function with a unique number, so
assert(0 && "Not implemented");
break;
}
- EmitAlignment(4, F);
+ EmitAlignment(2, F);
O << CurrentFnName << ":\n";
// Print out code for the function.
"!ADJCALLSTACKDOWN $amt",
[(callseq_start imm:$amt)]>;
-def BX: InstARM<(ops), "bx", [(retflag)]>;
+//bx supports other registers as operands. So this looks like a
+//hack. Maybe a ret should be expanded to a "branch lr" and bx
+//declared as a regular instruction
+
+def BX: InstARM<(ops), "bx lr", [(retflag)]>;
def ldr : InstARM<(ops IntRegs:$dst, IntRegs:$addr),
"ldr $dst, [$addr]",