mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-10-02 21:17:17 +00:00
add jump tables, constant pools and some trivial global
lowering stuff. We can now compile hello world to: _main: stm , mov r7, sp sub sp, sp, #4 mov r0, #0 str r0, ldr r0, bl _printf ldr r0, mov sp, r7 ldm , Almost looks like arm code :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84542 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -16,9 +16,8 @@
|
||||
#include "ARMAddressingModes.h"
|
||||
#include "llvm/MC/MCInst.h"
|
||||
#include "llvm/MC/MCAsmInfo.h"
|
||||
//#include "llvm/MC/MCExpr.h"
|
||||
//#include "llvm/Support/ErrorHandling.h"
|
||||
#include "llvm/Support/FormattedStream.h"
|
||||
#include "llvm/MC/MCExpr.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#include "ARMGenInstrNames.inc"
|
||||
using namespace llvm;
|
||||
|
||||
@@ -34,7 +33,8 @@ void ARMInstPrinter::printInst(const MCInst *MI) { printInstruction(MI); }
|
||||
|
||||
void ARMInstPrinter::printOperand(const MCInst *MI, unsigned OpNo,
|
||||
const char *Modifier) {
|
||||
assert((Modifier == 0 || Modifier[0] == 0) && "Cannot print modifiers");
|
||||
// FIXME: TURN ASSERT ON.
|
||||
//assert((Modifier == 0 || Modifier[0] == 0) && "Cannot print modifiers");
|
||||
|
||||
const MCOperand &Op = MI->getOperand(OpNo);
|
||||
if (Op.isReg()) {
|
||||
@@ -43,9 +43,7 @@ void ARMInstPrinter::printOperand(const MCInst *MI, unsigned OpNo,
|
||||
O << '#' << Op.getImm();
|
||||
} else {
|
||||
assert(Op.isExpr() && "unknown operand kind in printOperand");
|
||||
assert(0 && "UNIMP");
|
||||
//O << '$';
|
||||
//Op.getExpr()->print(O, &MAI);
|
||||
Op.getExpr()->print(O, &MAI);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user