Skip to content

Conversation

@LuckyXu-HF
Copy link
Contributor

Add ProbeLoongArch64Quirks() for R2RDump to display the call method name and the branch address. This makes the r2rdump log more readable.

@ghost ghost added the area-R2RDump-coreclr Ready-to-run image dump tool label May 13, 2024
@dotnet-policy-service dotnet-policy-service bot added the community-contribution Indicates that the PR has been added by a community member label May 13, 2024
@LuckyXu-HF
Copy link
Contributor Author

This is mentioned by #101683 (comment)
@am11 , thanks again for your notification!

After implement ProbeLoongArch64Quirks(), the change is liking:
e.g: S.P.C.dll - PE32+ : string Interop+Kernel32.GetAndTrimString(System.Span`1<char>)
Before:

string Interop+Kernel32.GetAndTrimString(System.Span`1<char>)
Handle: 0x06000053
Rid: 83
EntryPointRuntimeFunctionId: 76
Number of RuntimeFunctions: 1
Number of fixups: 1
    TableIndex 5, Offset 06DB: System.Span`1<char> (TYPE_HANDLE)

string Interop+Kernel32.GetAndTrimString(System.Span`1<char>)
Id: 76
StartAddress: 0x00144E80
Size: 176 bytes
UnwindRVA: 0x00011428

Debug Info
    Bounds:
    Native Offset: 0x0, Prolog, Source Types: StackEmpty
    Native Offset: 0x18, IL Offset: 0x0000, Source Types: StackEmpty
    Native Offset: 0x20, IL Offset: 0x000a, Source Types: StackEmpty
    Native Offset: 0x24, IL Offset: 0x000e, Source Types: StackEmpty
    Native Offset: 0x2C, IL Offset: 0x0012, Source Types: StackEmpty
    Native Offset: 0x50, IL Offset: 0x0021, Source Types: StackEmpty
    Native Offset: 0x64, IL Offset: 0x002b, Source Types: StackEmpty
    Native Offset: 0x78, Epilog, Source Types: StackEmpty
    Native Offset: 0x88, IL Offset: 0x0021, Source Types: StackEmpty
    Native Offset: 0x9C, NoMapping, Source Types: StackEmpty

    Variable Locations:
    Variable Number: 0
    Start Offset: 0x0
    End Offset: 0x18
    Loc Type: VLT_REG
    Register: A0

    Variable Number: 1
    Start Offset: 0x1C
    End Offset: 0x5C
    Loc Type: VLT_REG
    Register: T8

144e80: 02ff8063    addi.d  $sp, $sp, -32
144e84: 29c04076    st.d    $r22, $sp, 16
144e88: 29c06061    st.d    $ra, $sp, 24
144e8c: 02c04076    addi.d  $r22, $sp, 16
144e90: 29ffc2c0    st.d    $zero, $r22, -16
144e94: 004080a5    slli.w  $r5, $r5, 0
144e98: 004080b4    slli.w  $r20, $r5, 0
144e9c: 50000800    b       8
144ea0: 004080d4    slli.w  $r20, $r6, 0
144ea4: 00408295    slli.w  $r21, $r20, 0
144ea8: 64002815    bge     $zero, $r21, 40
144eac: 02bffe86    addi.w  $r6, $r20, -1
144eb0: 004080d5    slli.w  $r21, $r6, 0
144eb4: 6c006aa5    bgeu    $r21, $r5, 104
144eb8: 00df00c7    bstrpick.d $r7, $r6, 31, 0
144ebc: 004104e7    slli.d  $r7, $r7, 1
144ec0: 38241c87    ldx.hu  $r7, $r4, $r7
144ec4: 004080f5    slli.w  $r21, $r7, 0
144ec8: 02808001    addi.w  $ra, $zero, 32
144ecc: 67ffd435    bge     $ra, $r21, -44
144ed0: 00df0281    bstrpick.d $ra, $r20, 31, 0
144ed4: 00df00b5    bstrpick.d $r21, $r5, 31, 0
144ed8: 680032a1    bltu    $r21, $ra, 48
144edc: 29ffc2c4    st.d    $r4, $r22, -16
144ee0: 29bfe2d4    st.w    $r20, $r22, -8
144ee4: 02ffc2c4    addi.d  $r4, $r22, -16
                    A0 is dead
144ee8: 1c016f14    pcaddu12i $r20, 2936
144eec: 02dd6294    addi.d  $r20, $r20, 1880
144ef0: 28c00285    ld.d    $r5, $r20, 0
144ef4: 4c0000a1    jirl    $ra, $r5, 0
144ef8: 28c06061    ld.d    $ra, $sp, 24
144efc: 28c04076    ld.d    $r22, $sp, 16
144f00: 02c08063    addi.d  $sp, $sp, 32
144f04: 4c000020    jirl    $zero, $ra, 0
144f08: 1c016e14    pcaddu12i $r20, 2928
144f0c: 02d1c294    addi.d  $r20, $r20, 1136
144f10: 28c00284    ld.d    $r4, $r20, 0
144f14: 4c000081    jirl    $ra, $r4, 0
144f18: 002a0005    break   5
144f1c: 1c016be4    pcaddu12i $r4, 2911
144f20: 02fd9084    addi.d  $r4, $r4, -156
144f24: 28c00084    ld.d    $r4, $r4, 0
144f28: 4c000081    jirl    $ra, $r4, 0
144f2c: 002a0005    break   5

After:

string Interop+Kernel32.GetAndTrimString(System.Span`1<char>)
Handle: 0x06000053
Rid: 83
EntryPointRuntimeFunctionId: 76
Number of RuntimeFunctions: 1
Number of fixups: 1
    TableIndex 5, Offset 06DB: System.Span`1<char> (TYPE_HANDLE)

string Interop+Kernel32.GetAndTrimString(System.Span`1<char>)
Id: 76
StartAddress: 0x00144E80
Size: 176 bytes
UnwindRVA: 0x00011428

Debug Info
    Bounds:
    Native Offset: 0x0, Prolog, Source Types: StackEmpty
    Native Offset: 0x18, IL Offset: 0x0000, Source Types: StackEmpty
    Native Offset: 0x20, IL Offset: 0x000a, Source Types: StackEmpty
    Native Offset: 0x24, IL Offset: 0x000e, Source Types: StackEmpty
    Native Offset: 0x2C, IL Offset: 0x0012, Source Types: StackEmpty
    Native Offset: 0x50, IL Offset: 0x0021, Source Types: StackEmpty
    Native Offset: 0x64, IL Offset: 0x002b, Source Types: StackEmpty
    Native Offset: 0x78, Epilog, Source Types: StackEmpty
    Native Offset: 0x88, IL Offset: 0x0021, Source Types: StackEmpty
    Native Offset: 0x9C, NoMapping, Source Types: StackEmpty

    Variable Locations:
    Variable Number: 0
    Start Offset: 0x0
    End Offset: 0x18
    Loc Type: VLT_REG
    Register: A0

    Variable Number: 1
    Start Offset: 0x1C
    End Offset: 0x5C
    Loc Type: VLT_REG
    Register: T8

144e80: 02ff8063    addi.d  $sp, $sp, -32
144e84: 29c04076    st.d    $r22, $sp, 16
144e88: 29c06061    st.d    $ra, $sp, 24
144e8c: 02c04076    addi.d  $r22, $sp, 16
144e90: 29ffc2c0    st.d    $zero, $r22, -16
144e94: 004080a5    slli.w  $r5, $r5, 0
144e98: 004080b4    slli.w  $r20, $r5, 0
144e9c: 50000800    b       0x144ea4
144ea0: 004080d4    slli.w  $r20, $r6, 0
144ea4: 00408295    slli.w  $r21, $r20, 0
144ea8: 64002815    bge     $zero, $r21, 0x144ed0
144eac: 02bffe86    addi.w  $r6, $r20, -1
144eb0: 004080d5    slli.w  $r21, $r6, 0
144eb4: 6c006aa5    bgeu    $r21, $r5, 0x144f1c
144eb8: 00df00c7    bstrpick.d $r7, $r6, 31, 0
144ebc: 004104e7    slli.d  $r7, $r7, 1
144ec0: 38241c87    ldx.hu  $r7, $r4, $r7
144ec4: 004080f5    slli.w  $r21, $r7, 0
144ec8: 02808001    addi.w  $ra, $zero, 32
144ecc: 67ffd435    bge     $ra, $r21, 0x144ea0
144ed0: 00df0281    bstrpick.d $ra, $r20, 31, 0
144ed4: 00df00b5    bstrpick.d $r21, $r5, 31, 0
144ed8: 680032a1    bltu    $r21, $ra, 0x144f08
144edc: 29ffc2c4    st.d    $r4, $r22, -16
144ee0: 29bfe2d4    st.w    $r20, $r22, -8
144ee4: 02ffc2c4    addi.d  $r4, $r22, -16
                    A0 is dead
144ee8: 1c016f14    pcaddu12i $r20, 2936
144eec: 02dd6294    addi.d  $r20, $r20, 1880
144ef0: 28c00285    ld.d    $r5, $r20, 0
144ef4: 4c0000a1    jirl    $ra, $r5, 0 // string System.Span`1<char>.ToString() (METHOD_ENTRY)
144ef8: 28c06061    ld.d    $ra, $sp, 24
144efc: 28c04076    ld.d    $r22, $sp, 16
144f00: 02c08063    addi.d  $sp, $sp, 32
144f04: 4c000020    jirl    $zero, $ra, 0
144f08: 1c016e14    pcaddu12i $r20, 2928
144f0c: 02d1c294    addi.d  $r20, $r20, 1136
144f10: 28c00284    ld.d    $r4, $r20, 0
144f14: 4c000081    jirl    $ra, $r4, 0 // void System.ThrowHelper.ThrowArgumentOutOfRangeException() (METHOD_ENTRY_DEF_TOKEN)
144f18: 002a0005    break   5
144f1c: 1c016be4    pcaddu12i $r4, 2911
144f20: 02fd9084    addi.d  $r4, $r4, -156
144f24: 28c00084    ld.d    $r4, $r4, 0
144f28: 4c000081    jirl    $ra, $r4, 0 // RNG_CHK_FAIL (HELPER)
144f2c: 002a0005    break   5

Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>
@LuckyXu-HF
Copy link
Contributor Author

@shushanhf @jkotas Could you please review this PR? Thanks.

@LuckyXu-HF
Copy link
Contributor Author

Hi @shushanhf @jkotas @ivdiazsa
Could you please review this PR if you have time? Thanks.

Copy link
Contributor

@shushanhf shushanhf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM
thanks

@jkotas
Copy link
Member

jkotas commented May 17, 2024

Could you please resolve the conflicts?

@LuckyXu-HF
Copy link
Contributor Author

Could you please resolve the conflicts?

OK, I have resolved the conflicts.

@jkotas jkotas merged commit af11dbc into dotnet:main May 18, 2024
@jkotas
Copy link
Member

jkotas commented May 18, 2024

Thanks!

@LuckyXu-HF LuckyXu-HF deleted the main-LA64 branch May 18, 2024 06:02
Ruihan-Yin pushed a commit to Ruihan-Yin/runtime that referenced this pull request May 30, 2024
…102146)

* [LoongArch64] Add ProbeLoongArch64Quirks() for R2RDump tool.

* Update src/coreclr/tools/r2rdump/CoreDisTools.cs

Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>

---------

Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>
@github-actions github-actions bot locked and limited conversation to collaborators Jun 17, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

arch-loongarch64 area-R2RDump-coreclr Ready-to-run image dump tool community-contribution Indicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants