mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-24 23:19:03 +00:00
[mips][microMIPS] Implement ANDI16 instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221367 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -729,4 +729,32 @@ MipsMCCodeEmitter::getUImm3Mod8Encoding(const MCInst &MI, unsigned OpNo,
|
||||
return MO.getImm() % 8;
|
||||
}
|
||||
|
||||
unsigned
|
||||
MipsMCCodeEmitter::getUImm4AndValue(const MCInst &MI, unsigned OpNo,
|
||||
SmallVectorImpl<MCFixup> &Fixups,
|
||||
const MCSubtargetInfo &STI) const {
|
||||
assert(MI.getOperand(OpNo).isImm());
|
||||
const MCOperand &MO = MI.getOperand(OpNo);
|
||||
unsigned Value = MO.getImm();
|
||||
switch (Value) {
|
||||
case 128: return 0x0;
|
||||
case 1: return 0x1;
|
||||
case 2: return 0x2;
|
||||
case 3: return 0x3;
|
||||
case 4: return 0x4;
|
||||
case 7: return 0x5;
|
||||
case 8: return 0x6;
|
||||
case 15: return 0x7;
|
||||
case 16: return 0x8;
|
||||
case 31: return 0x9;
|
||||
case 32: return 0xa;
|
||||
case 63: return 0xb;
|
||||
case 64: return 0xc;
|
||||
case 255: return 0xd;
|
||||
case 32768: return 0xe;
|
||||
case 65535: return 0xf;
|
||||
}
|
||||
llvm_unreachable("Unexpected value");
|
||||
}
|
||||
|
||||
#include "MipsGenMCCodeEmitter.inc"
|
||||
|
||||
Reference in New Issue
Block a user