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
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 opcodeIs 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 opcodeIs 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.