Changes in directory llvm/lib/Target/PowerPC:
PPCCodeEmitter.cpp updated: 1.54 -> 1.55 PPCJITInfo.cpp updated: 1.20 -> 1.21 --- Log message: Fix a purely hypothetical problem (for now): emitWord emits in the host byte format. This doesn't work when using the code emitter in a cross target environment. Since the code emitter is only really used by the JIT, this isn't a current problem, but if we ever start emitting .o files, it would be. --- Diffs of the changes: (+12 -16) PPCCodeEmitter.cpp | 6 +----- PPCJITInfo.cpp | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 16 deletions(-) Index: llvm/lib/Target/PowerPC/PPCCodeEmitter.cpp diff -u llvm/lib/Target/PowerPC/PPCCodeEmitter.cpp:1.54 llvm/lib/Target/PowerPC/PPCCodeEmitter.cpp:1.55 --- llvm/lib/Target/PowerPC/PPCCodeEmitter.cpp:1.54 Tue May 2 13:27:26 2006 +++ llvm/lib/Target/PowerPC/PPCCodeEmitter.cpp Tue May 2 14:14:47 2006 @@ -54,10 +54,6 @@ /// void emitBasicBlock(MachineBasicBlock &MBB); - /// emitWord - write a 32-bit word to memory at the current PC - /// - void emitWord(unsigned w) { MCE.emitWord(w); } - /// getValueBit - return the particular bit of Val /// unsigned getValueBit(int64_t Val, unsigned bit) { return (Val >> bit) & 1; } @@ -133,7 +129,7 @@ unsigned Opcode = MI.getOpcode(); switch (MI.getOpcode()) { default: - emitWord(getBinaryCodeForInstr(*I)); + MCE.emitWordBE(getBinaryCodeForInstr(*I)); break; case PPC::IMPLICIT_DEF_GPR: case PPC::IMPLICIT_DEF_F8: Index: llvm/lib/Target/PowerPC/PPCJITInfo.cpp diff -u llvm/lib/Target/PowerPC/PPCJITInfo.cpp:1.20 llvm/lib/Target/PowerPC/PPCJITInfo.cpp:1.21 --- llvm/lib/Target/PowerPC/PPCJITInfo.cpp:1.20 Mon May 1 23:50:05 2006 +++ llvm/lib/Target/PowerPC/PPCJITInfo.cpp Tue May 2 14:14:47 2006 @@ -168,23 +168,23 @@ if (Fn != PPC32CompilationCallback) { MCE.startFunctionStub(4*4); void *Addr = (void*)(intptr_t)MCE.getCurrentPCValue(); - MCE.emitWord(0); - MCE.emitWord(0); - MCE.emitWord(0); - MCE.emitWord(0); + MCE.emitWordBE(0); + MCE.emitWordBE(0); + MCE.emitWordBE(0); + MCE.emitWordBE(0); EmitBranchToAt(Addr, Fn, false); return MCE.finishFunctionStub(0); } MCE.startFunctionStub(4*7); - MCE.emitWord(0x9421ffe0); // stwu r1,-32(r1) - MCE.emitWord(0x7d6802a6); // mflr r11 - MCE.emitWord(0x91610028); // stw r11, 40(r1) + MCE.emitWordBE(0x9421ffe0); // stwu r1,-32(r1) + MCE.emitWordBE(0x7d6802a6); // mflr r11 + MCE.emitWordBE(0x91610028); // stw r11, 40(r1) void *Addr = (void*)(intptr_t)MCE.getCurrentPCValue(); - MCE.emitWord(0); - MCE.emitWord(0); - MCE.emitWord(0); - MCE.emitWord(0); + MCE.emitWordBE(0); + MCE.emitWordBE(0); + MCE.emitWordBE(0); + MCE.emitWordBE(0); EmitBranchToAt(Addr, Fn, true/*is call*/); return MCE.finishFunctionStub(0); } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits