[llvm-commits] [llvm] r172579 - in /llvm/trunk: lib/Target/Mips/AsmParser/MipsAsmParser.cpp lib/Target/Mips/Disassembler/MipsDisassembler.cpp lib/Target/Mips/MipsRegisterInfo.td test/MC/Disassembler/Mips/mips32.txt test/MC/Disassembler/Mips/mips32_...

Carter, Jack jcarter at mips.com
Tue Jan 15 17:02:32 PST 2013


David,

I'm looking at it now. I did a svn update before the patch and ran make check before and after. Obviously something didn't go right though.

Jack
________________________________________
From: David Dean [david_dean at apple.com]
Sent: Tuesday, January 15, 2013 4:58 PM
To: Carter, Jack
Cc: llvm-commits at cs.uiuc.edu
Subject: Re: [llvm-commits] [llvm] r172579 - in /llvm/trunk: lib/Target/Mips/AsmParser/MipsAsmParser.cpp lib/Target/Mips/Disassembler/MipsDisassembler.cpp lib/Target/Mips/MipsRegisterInfo.td test/MC/Disassembler/Mips/mips32.txt test/MC/Disassembler/Mips/mips32_...

Jack, the following test is failing after this change. Can you please take a look:

http://lab.llvm.org:8013/builders/clang-x86_64-darwin11-nobootstrap-RA/builds/203/

******************** TEST 'LLVM :: MC/Mips/mips64-alu-instructions.s' FAILED ********************Script:
--
/Users/buildslave/zorg/buildbot/smooshlab/slave-0.8/build.clang-x86_64-darwin11-nobootstrap-RA/clang-build/Release+Asserts/bin/llvm-mc /Users/buildslave/zorg/buildbot/smooshlab/slave-0.8/build.clang-x86_64-darwin11-nobootstrap-RA/llvm/test/MC/Mips/mips64-alu-instructions.s -triple=mipsel-unknown-linux -show-encoding -mcpu=mips64r2 | /Users/buildslave/zorg/buildbot/smooshlab/slave-0.8/build.clang-x86_64-darwin11-nobootstrap-RA/clang-build/Release+Asserts/bin/FileCheck /Users/buildslave/zorg/buildbot/smooshlab/slave-0.8/build.clang-x86_64-darwin11-nobootstrap-RA/llvm/test/MC/Mips/mips64-alu-instructions.s
--
Exit Code: 1
Command Output (stderr):
--
/Users/buildslave/zorg/buildbot/smooshlab/slave-0.8/build.clang-x86_64-darwin11-nobootstrap-RA/llvm/test/MC/Mips/mips64-alu-instructions.s:100:17: error: invalid operand for instruction
    rdhwr   $5, $29
                ^
/Users/buildslave/zorg/buildbot/smooshlab/slave-0.8/build.clang-x86_64-darwin11-nobootstrap-RA/llvm/test/MC/Mips/mips64-alu-instructions.s:81:10: error: expected string not found in input
# CHECK: .set push
         ^
<stdin>:101:1: note: scanning from here

^
--

********************

On 15 Jan 2013, at 4:07 PM, Jack Carter <jcarter at mips.com> wrote:

> Author: jacksprat
> Date: Tue Jan 15 18:07:45 2013
> New Revision: 172579
>
> URL: http://llvm.org/viewvc/llvm-project?rev=172579&view=rev
> Log:
> Akira,
>
> Hope you are feeling better.
>
> The Mips RDHWR (Read Hardware Register) instruction was not
> tested for assembler or dissassembler consumption. This patch
> adds that functionality.
>
> Contributer: Vladimir Medic
>
>
> Modified:
>    llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
>    llvm/trunk/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
>    llvm/trunk/lib/Target/Mips/MipsRegisterInfo.td
>    llvm/trunk/test/MC/Disassembler/Mips/mips32.txt
>    llvm/trunk/test/MC/Disassembler/Mips/mips32_le.txt
>    llvm/trunk/test/MC/Mips/mips-alu-instructions.s
>    llvm/trunk/test/MC/Mips/mips64-alu-instructions.s
>
> Modified: llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpp?rev=172579&r1=172578&r2=172579&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpp (original)
> +++ llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpp Tue Jan 15 18:07:45 2013
> @@ -1071,6 +1071,9 @@
>
> MipsAsmParser::OperandMatchResultTy
> MipsAsmParser::parseHW64Regs(SmallVectorImpl<MCParsedAsmOperand*> &Operands) {
> +
> +  if (!isMips64())
> +    return MatchOperand_NoMatch;
>     //if the first token is not '$' we have error
>   if (Parser.getTok().isNot(AsmToken::Dollar))
>     return MatchOperand_NoMatch;
> @@ -1088,7 +1091,7 @@
>
>   MipsOperand *op = MipsOperand::CreateReg(Mips::HWR29_64, S,
>         Parser.getTok().getLoc());
> -  op->setRegKind(MipsOperand::Kind_HWRegs);
> +  op->setRegKind(MipsOperand::Kind_HW64Regs);
>   Operands.push_back(op);
>
>   Parser.Lex(); // Eat reg number
>
> Modified: llvm/trunk/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/Disassembler/MipsDisassembler.cpp?rev=172579&r1=172578&r2=172579&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/Mips/Disassembler/MipsDisassembler.cpp (original)
> +++ llvm/trunk/lib/Target/Mips/Disassembler/MipsDisassembler.cpp Tue Jan 15 18:07:45 2013
> @@ -128,6 +128,11 @@
>                                               uint64_t Address,
>                                               const void *Decoder);
>
> +static DecodeStatus DecodeHWRegs64RegisterClass(MCInst &Inst,
> +                                                unsigned Insn,
> +                                                uint64_t Address,
> +                                                const void *Decoder);
> +
> static DecodeStatus DecodeACRegsRegisterClass(MCInst &Inst,
>                                               unsigned RegNo,
>                                               uint64_t Address,
> @@ -454,6 +459,17 @@
>   return MCDisassembler::Success;
> }
>
> +static DecodeStatus DecodeHWRegs64RegisterClass(MCInst &Inst,
> +                                                unsigned RegNo,
> +                                                uint64_t Address,
> +                                                const void *Decoder) {
> +  //Currently only hardware register 29 is supported
> +  if (RegNo != 29)
> +    return  MCDisassembler::Fail;
> +  Inst.addOperand(MCOperand::CreateReg(Mips::HWR29_64));
> +  return MCDisassembler::Success;
> +}
> +
> static DecodeStatus DecodeACRegsRegisterClass(MCInst &Inst,
>                                               unsigned RegNo,
>                                               uint64_t Address,
>
> Modified: llvm/trunk/lib/Target/Mips/MipsRegisterInfo.td
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MipsRegisterInfo.td?rev=172579&r1=172578&r2=172579&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/Mips/MipsRegisterInfo.td (original)
> +++ llvm/trunk/lib/Target/Mips/MipsRegisterInfo.td Tue Jan 15 18:07:45 2013
> @@ -373,6 +373,6 @@
>   let ParserMatchClass = HWRegsAsmOperand;
> }
>
> -def HW64RegsOpnd : RegisterOperand<HWRegs, "printCPURegs"> {
> +def HW64RegsOpnd : RegisterOperand<HWRegs64, "printCPURegs"> {
>   let ParserMatchClass = HW64RegsAsmOperand;
> }
>
> Modified: llvm/trunk/test/MC/Disassembler/Mips/mips32.txt
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/Disassembler/Mips/mips32.txt?rev=172579&r1=172578&r2=172579&view=diff
> ==============================================================================
> --- llvm/trunk/test/MC/Disassembler/Mips/mips32.txt (original)
> +++ llvm/trunk/test/MC/Disassembler/Mips/mips32.txt Tue Jan 15 18:07:45 2013
> @@ -404,3 +404,9 @@
>
> # CHECK: xori  $9,  $6, 17767
> 0x38 0xc9 0x45 0x67
> +
> +# CHECK: .set    push
> +# CHECK: .set    mips32r2
> +# CHECK: rdhwr   $5, $29
> +# CHECK: .set    pop
> +0x7c 0x05 0xe8 0x3b
>
> Modified: llvm/trunk/test/MC/Disassembler/Mips/mips32_le.txt
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/Disassembler/Mips/mips32_le.txt?rev=172579&r1=172578&r2=172579&view=diff
> ==============================================================================
> --- llvm/trunk/test/MC/Disassembler/Mips/mips32_le.txt (original)
> +++ llvm/trunk/test/MC/Disassembler/Mips/mips32_le.txt Tue Jan 15 18:07:45 2013
> @@ -404,3 +404,9 @@
>
> # CHECK: xori  $9,  $6, 17767
> 0x67 0x45 0xc9 0x38
> +
> +# CHECK: .set    push
> +# CHECK: .set    mips32r2
> +# CHECK: rdhwr   $5, $29
> +# CHECK: .set    pop
> +0x3b 0xe8 0x05 0x7c
>
> Modified: llvm/trunk/test/MC/Mips/mips-alu-instructions.s
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/Mips/mips-alu-instructions.s?rev=172579&r1=172578&r2=172579&view=diff
> ==============================================================================
> --- llvm/trunk/test/MC/Mips/mips-alu-instructions.s (original)
> +++ llvm/trunk/test/MC/Mips/mips-alu-instructions.s Tue Jan 15 18:07:45 2013
> @@ -81,6 +81,10 @@
> # CHECK:  sub     $6, $zero, $7  # encoding: [0x22,0x30,0x07,0x00]
> # CHECK:  subu    $6, $zero, $7  # encoding: [0x23,0x30,0x07,0x00]
> # CHECK:  addu    $7, $8, $zero  # encoding: [0x21,0x38,0x00,0x01]
> +# CHECK:  .set    push
> +# CHECK:  .set    mips32r2
> +# CHECK:  rdhwr   $5, $29
> +# CHECK:  .set    pop            # encoding: [0x3b,0xe8,0x05,0x7c]
>     add    $9,$6,$7
>     add    $9,$6,17767
>     addu   $9,$6,-15001
> @@ -98,3 +102,4 @@
>     neg    $6,$7
>     negu   $6,$7
>     move   $7,$8
> +    rdhwr   $5, $29
>
> Modified: llvm/trunk/test/MC/Mips/mips64-alu-instructions.s
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/Mips/mips64-alu-instructions.s?rev=172579&r1=172578&r2=172579&view=diff
> ==============================================================================
> --- llvm/trunk/test/MC/Mips/mips64-alu-instructions.s (original)
> +++ llvm/trunk/test/MC/Mips/mips64-alu-instructions.s Tue Jan 15 18:07:45 2013
> @@ -78,6 +78,11 @@
> # CHECK:  multu  $3, $5          # encoding: [0x19,0x00,0x65,0x00]
> # CHECK:  dsubu   $4, $3, $5      # encoding: [0x2f,0x20,0x65,0x00]
> # CHECK:  daddu    $7, $8, $zero  # encoding: [0x2d,0x38,0x00,0x01]
> +# CHECK:  .set    push
> +# CHECK:  .set    mips32r2
> +# CHECK:  rdhwr   $5, $29
> +# CHECK:  .set    pop            # encoding: [0x3b,0xe8,0x05,0x7c]
> +
>     dadd    $9,$6,$7
>     dadd    $9,$6,17767
>     daddu   $9,$6,-15001
> @@ -92,3 +97,4 @@
>     multu  $3,$5
>     dsubu   $4,$3,$5
>     move   $7,$8
> +    rdhwr   $5, $29
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

-David






More information about the llvm-commits mailing list