mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
X86: Use enums for memory operand decoding instead of integer literals.
Summary: X86BaseInfo.h defines an enum for the offset of each operand in a memory operand sequence. Some code uses it and some does not. This patch replaces (hopefully) all remaining locations where an integer literal was used instead of this enum. No functionality change intended. Reviewers: nadav CC: llvm-commits, t.p.northover Differential Revision: http://llvm-reviews.chandlerc.com/D3108 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204158 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -182,16 +182,16 @@ void X86ATTInstPrinter::printOperand(const MCInst *MI, unsigned OpNo,
|
||||
|
||||
void X86ATTInstPrinter::printMemReference(const MCInst *MI, unsigned Op,
|
||||
raw_ostream &O) {
|
||||
const MCOperand &BaseReg = MI->getOperand(Op);
|
||||
const MCOperand &IndexReg = MI->getOperand(Op+2);
|
||||
const MCOperand &DispSpec = MI->getOperand(Op+3);
|
||||
const MCOperand &SegReg = MI->getOperand(Op+4);
|
||||
const MCOperand &BaseReg = MI->getOperand(Op+X86::AddrBaseReg);
|
||||
const MCOperand &IndexReg = MI->getOperand(Op+X86::AddrIndexReg);
|
||||
const MCOperand &DispSpec = MI->getOperand(Op+X86::AddrDisp);
|
||||
const MCOperand &SegReg = MI->getOperand(Op+X86::AddrSegmentReg);
|
||||
|
||||
O << markup("<mem:");
|
||||
|
||||
// If this has a segment register, print it.
|
||||
if (SegReg.getReg()) {
|
||||
printOperand(MI, Op+4, O);
|
||||
printOperand(MI, Op+X86::AddrSegmentReg, O);
|
||||
O << ':';
|
||||
}
|
||||
|
||||
@@ -207,12 +207,12 @@ void X86ATTInstPrinter::printMemReference(const MCInst *MI, unsigned Op,
|
||||
if (IndexReg.getReg() || BaseReg.getReg()) {
|
||||
O << '(';
|
||||
if (BaseReg.getReg())
|
||||
printOperand(MI, Op, O);
|
||||
printOperand(MI, Op+X86::AddrBaseReg, O);
|
||||
|
||||
if (IndexReg.getReg()) {
|
||||
O << ',';
|
||||
printOperand(MI, Op+2, O);
|
||||
unsigned ScaleVal = MI->getOperand(Op+1).getImm();
|
||||
printOperand(MI, Op+X86::AddrIndexReg, O);
|
||||
unsigned ScaleVal = MI->getOperand(Op+X86::AddrScaleAmt).getImm();
|
||||
if (ScaleVal != 1) {
|
||||
O << ','
|
||||
<< markup("<imm:")
|
||||
|
@@ -162,15 +162,15 @@ void X86IntelInstPrinter::printOperand(const MCInst *MI, unsigned OpNo,
|
||||
|
||||
void X86IntelInstPrinter::printMemReference(const MCInst *MI, unsigned Op,
|
||||
raw_ostream &O) {
|
||||
const MCOperand &BaseReg = MI->getOperand(Op);
|
||||
unsigned ScaleVal = MI->getOperand(Op+1).getImm();
|
||||
const MCOperand &IndexReg = MI->getOperand(Op+2);
|
||||
const MCOperand &DispSpec = MI->getOperand(Op+3);
|
||||
const MCOperand &SegReg = MI->getOperand(Op+4);
|
||||
const MCOperand &BaseReg = MI->getOperand(Op+X86::AddrBaseReg);
|
||||
unsigned ScaleVal = MI->getOperand(Op+X86::AddrScaleAmt).getImm();
|
||||
const MCOperand &IndexReg = MI->getOperand(Op+X86::AddrIndexReg);
|
||||
const MCOperand &DispSpec = MI->getOperand(Op+X86::AddrDisp);
|
||||
const MCOperand &SegReg = MI->getOperand(Op+X86::AddrSegmentReg);
|
||||
|
||||
// If this has a segment register, print it.
|
||||
if (SegReg.getReg()) {
|
||||
printOperand(MI, Op+4, O);
|
||||
printOperand(MI, Op+X86::AddrSegmentReg, O);
|
||||
O << ':';
|
||||
}
|
||||
|
||||
@@ -178,7 +178,7 @@ void X86IntelInstPrinter::printMemReference(const MCInst *MI, unsigned Op,
|
||||
|
||||
bool NeedPlus = false;
|
||||
if (BaseReg.getReg()) {
|
||||
printOperand(MI, Op, O);
|
||||
printOperand(MI, Op+X86::AddrBaseReg, O);
|
||||
NeedPlus = true;
|
||||
}
|
||||
|
||||
@@ -186,7 +186,7 @@ void X86IntelInstPrinter::printMemReference(const MCInst *MI, unsigned Op,
|
||||
if (NeedPlus) O << " + ";
|
||||
if (ScaleVal != 1)
|
||||
O << ScaleVal << '*';
|
||||
printOperand(MI, Op+2, O);
|
||||
printOperand(MI, Op+X86::AddrIndexReg, O);
|
||||
NeedPlus = true;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user