@@ -98,12 +98,7 @@ void MCExpr::print(raw_ostream &OS, const MCAsmInfo *MAI, bool InParens) const {
9898
9999 case MCExpr::Unary: {
100100 const MCUnaryExpr &UE = cast<MCUnaryExpr>(*this );
101- switch (UE.getOpcode ()) {
102- case MCUnaryExpr::LNot: OS << ' !' ; break ;
103- case MCUnaryExpr::Minus: OS << ' -' ; break ;
104- case MCUnaryExpr::Not: OS << ' ~' ; break ;
105- case MCUnaryExpr::Plus: OS << ' +' ; break ;
106- }
101+ OS << MAI->getUnaryOperator (UE.getOpcode ());
107102 bool Binary = UE.getSubExpr ()->getKind () == MCExpr::Binary;
108103 if (Binary) OS << " (" ;
109104 UE.getSubExpr ()->print (OS, MAI);
@@ -123,38 +118,16 @@ void MCExpr::print(raw_ostream &OS, const MCAsmInfo *MAI, bool InParens) const {
123118 OS << ' )' ;
124119 }
125120
126- switch (BE.getOpcode ()) {
127- case MCBinaryExpr::Add:
121+ if (BE.getOpcode () == MCBinaryExpr::Add) {
128122 // Print "X-42" instead of "X+-42".
129123 if (const MCConstantExpr *RHSC = dyn_cast<MCConstantExpr>(BE.getRHS ())) {
130124 if (RHSC->getValue () < 0 ) {
131125 OS << RHSC->getValue ();
132126 return ;
133127 }
134128 }
135-
136- OS << ' +' ;
137- break ;
138- case MCBinaryExpr::AShr: OS << " >>" ; break ;
139- case MCBinaryExpr::And: OS << ' &' ; break ;
140- case MCBinaryExpr::Div: OS << ' /' ; break ;
141- case MCBinaryExpr::EQ: OS << " ==" ; break ;
142- case MCBinaryExpr::GT: OS << ' >' ; break ;
143- case MCBinaryExpr::GTE: OS << " >=" ; break ;
144- case MCBinaryExpr::LAnd: OS << " &&" ; break ;
145- case MCBinaryExpr::LOr: OS << " ||" ; break ;
146- case MCBinaryExpr::LShr: OS << " >>" ; break ;
147- case MCBinaryExpr::LT: OS << ' <' ; break ;
148- case MCBinaryExpr::LTE: OS << " <=" ; break ;
149- case MCBinaryExpr::Mod: OS << ' %' ; break ;
150- case MCBinaryExpr::Mul: OS << ' *' ; break ;
151- case MCBinaryExpr::NE: OS << " !=" ; break ;
152- case MCBinaryExpr::Or: OS << ' |' ; break ;
153- case MCBinaryExpr::OrNot: OS << ' !' ; break ;
154- case MCBinaryExpr::Shl: OS << " <<" ; break ;
155- case MCBinaryExpr::Sub: OS << ' -' ; break ;
156- case MCBinaryExpr::Xor: OS << ' ^' ; break ;
157129 }
130+ OS << MAI->getBinaryOperator (BE.getOpcode ());
158131
159132 // Only print parens around the LHS if it is non-trivial.
160133 if (isa<MCConstantExpr>(BE.getRHS ()) || isa<MCSymbolRefExpr>(BE.getRHS ())) {
0 commit comments