[PATCH] Add support for the Sparc implementation-defined "ASR" registers.

James Y Knight jyknight at google.com
Wed May 6 14:41:11 PDT 2015


In http://reviews.llvm.org/D8670#167209, @echristo wrote:

> What was the bug you fixed when it was causing crashes?


I had not correctly updated SparcISelDAGToDAG.cpp, so div simply did not work at all.

It was this patch of my patch:

  --- a/lib/Target/Sparc/SparcISelDAGToDAG.cpp
  +++ b/lib/Target/Sparc/SparcISelDAGToDAG.cpp
  @@ -166,10 +166,10 @@ SDNode *SparcDAGToDAGISel::Select(SDNode *N) {
       } else {
         TopPart = CurDAG->getRegister(SP::G0, MVT::i32);
       }
  -    TopPart = SDValue(CurDAG->getMachineNode(SP::WRASRrr, dl, MVT::Glue,
  -                                 CurDAG->getRegister(SP::Y, MVT::i32),
  +    TopPart = SDValue(CurDAG->getMachineNode(SP::WRASRrr, dl, MVT::i32,
                                    TopPart,
                                    CurDAG->getRegister(SP::G0, MVT::i32)), 0);
  +    TopPart = CurDAG->getCopyToReg(TopPart, dl, SP::Y, TopPart, SDValue()).getValue(1);
   


http://reviews.llvm.org/D8670

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the llvm-commits mailing list