Deleted Added
sdiff udiff text old ( 199481 ) new ( 199511 )
full compact
1//===-- MipsISelDAGToDAG.cpp - A dag to dag inst selector for Mips --------===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//

--- 76 unchanged lines hidden (view full) ---

85
86 SDNode *getGlobalBaseReg();
87 SDNode *Select(SDValue N);
88
89 // Complex Pattern.
90 bool SelectAddr(SDValue Op, SDValue N,
91 SDValue &Base, SDValue &Offset);
92
93
94 // getI32Imm - Return a target constant with the specified
95 // value, of type i32.
96 inline SDValue getI32Imm(unsigned Imm) {
97 return CurDAG->getTargetConstant(Imm, MVT::i32);
98 }
99
100

--- 92 unchanged lines hidden (view full) ---

193 }
194 }
195
196 Base = Addr;
197 Offset = CurDAG->getTargetConstant(0, MVT::i32);
198 return true;
199}
200
201/// Select instructions not customized! Used for
202/// expanded, promoted and normal instructions
203SDNode* MipsDAGToDAGISel::Select(SDValue N) {
204 SDNode *Node = N.getNode();
205 unsigned Opcode = Node->getOpcode();
206 DebugLoc dl = Node->getDebugLoc();
207
208 // Dump information about the Node being selected

--- 131 unchanged lines hidden (view full) ---

340 if (N.getValueType() == MVT::f64 && CN->isExactlyValue(+0.0)) {
341 SDValue Zero = CurDAG->getRegister(Mips::ZERO, MVT::i32);
342 ReplaceUses(N, Zero);
343 return Zero.getNode();
344 }
345 break;
346 }
347
348 /// Handle direct and indirect calls when using PIC. On PIC, when
349 /// GOT is smaller than about 64k (small code) the GA target is
350 /// loaded with only one instruction. Otherwise GA's target must
351 /// be loaded with 3 instructions.
352 case MipsISD::JmpLink: {
353 if (TM.getRelocationModel() == Reloc::PIC_) {
354 SDValue Chain = Node->getOperand(0);
355 SDValue Callee = Node->getOperand(1);

--- 52 unchanged lines hidden ---