changing opcode

Is there a simple way to just change the opcode of a machine instruction.

I have a lot of long/short pairs where when I know the offset, i can replace the long version with the short version.

Tia.

REed

From: "reed kotler" <rkotler@mips.com>
To: llvmdev@cs.uiuc.edu
Sent: Wednesday, February 13, 2013 6:00:45 PM
Subject: [LLVMdev] changing opcode

Is there a simple way to just change the opcode of a machine
instruction.

I have a lot of long/short pairs where when I know the offset, i can
replace the long version with the short version.

Are you looking for something like this:
MI.setDesc(TII.get(NewOpcode));

This is in PPCRegisterInfo::eliminateFrameIndex.

-Hal

Hey Reed,

The x86 target does something like this. Check out ReplaceableInstrs in lib/Target/X86/X86InstrInfo.cpp.

Hope that helps,

Cameron

From: "reed kotler" <rkotler@mips.com>
To: llvmdev@cs.uiuc.edu
Sent: Wednesday, February 13, 2013 6:00:45 PM
Subject: [LLVMdev] changing opcode

Is there a simple way to just change the opcode of a machine
instruction.

I have a lot of long/short pairs where when I know the offset, i can
replace the long version with the short version.

Are you looking for something like this:
MI.setDesc(TII.get(NewOpcode));

This is in PPCRegisterInfo::eliminateFrameIndex.

Not sure. I want to change the instruction. Maybe opcode was the wrong word for me to use.

AddiuX16 to Addiu16

They are basically the same except that one is a 32 bit instruction and one is a 16 bit
instruction.

That looks right. Thanks!

Nice idea using the table.