dotnet/runtime

The `emitDispIns` logic in `emitxarch.h` could use some cleanup

オープン

#11,631 opened on 2018/12/07

 (4 件のコメント) (1 件のリアクション) (0 人の担当者)C# (5,445 件のフォーク)batch import
area-CodeGen-coreclrhelp wanted

Repository metrics

Stars
 (17,886 個のスター)
PR merge metrics
 (PR metrics pending)

説明

As discussed in https://github.com/dotnet/coreclr/pull/21432 (and mentioned in various other issues), there are several cases where emitDispIns prints the wrong information.

Some examples of this are:

  • It prints movd instead of movq when the integer operand is an EA_8BYTE
  • It prints xrax instead of rax or eax for certain instructions that take both a floating-point and integer-register
  • It prints exclusively ymm or xmm for certain instructions that take both TYP_SIMD16 and TYP_SIMD32 (or a mix of both)

There are also some other issues scattered about given that the handling is often done on a "per instruction format" case.

We should investigate cleaning up this function to improve the logic and to ensure that it accurately prints the disassembly

category:implementation theme:debug-dumps skill-level:beginner cost:small impact:small

コントリビューターガイド