Skip to content

[ARM32] Display wrong register number for double registers #2191

Closed

Description

@karelz

From @hqueue on May 16, 2017 11:47

For ARM32, double register number is not shown correctly in JitDump, JitDisasm and etc.

  • An example from coreclr unit test.

    $ COMPlus_JitDisasm=DblAdd COMPlus_JitDump=DblAdd  ./corerun 
    tests/JIT/CodeGenBringUpTests/DblAdd/DblAdd.exe
    ...(omitted)...
    IN0001: 000006  EE30 0B01      vadd    d0, d0, d2
    ...(omitted)...
    IN0001: 000006      vadd    d0, d0, d2
    

    However above instruction encoding means vadd d0, d0, d1.

  • Another example from recent PR for ryujit/arm32.
    I was confused with below example ([RyuJIT/ARM32] Enable casting from small int to float coreclr#11643 (comment)) in the PR.

    IN0074: 000180  EEB8 4BC4      vcvt.i2d d8, s8  
    

    This means vcvt.i2d d4, s8, i.e. single-float register number is correct, but double register number is incorrectly displayed.

Both LegacyJIT and RyuJIT have same problem.

Copied from original issue: dotnet/coreclr#11646

Activity

  1. karelz commented on May 16, 2017

    @karelz
    MemberAuthor

    My apologies, I moved the wrong bug by accident - closing this copy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions