dotnet/runtime

Consider reordering the instrsxarch.h encodings to save space

Open

#10.908 aperta il 15 ago 2018

Vedi su GitHub
 (1 commento) (0 reazioni) (0 assegnatari)C# (5445 fork)batch import
area-CodeGen-coreclrenhancementhelp wanted

Metriche repository

Star
 (17.886 star)
Metriche merge PR
 (Merge medio 12g 11h) (661 PR mergiate in 30 g)

Descrizione

The instrsxarch.h encodings are currently ordered as follows:

  • R/M[reg]
  • R/M,icon
  • reg,R/M
  • eax,i32
  • register

This ordering appears to have been done in order to save space, as not all instructions require all encodings However, with the addition of HardwareIntrinsics, a large number of INST3 encodings were added and often, only one or two of the encodings are used.

It may be beneficial to consider reordering these encodings in order to save additional space. Looking briefly at the encodings, I see the following:

encoding # entries # bad_code
R/M[reg] 527 366
R/M,icon 444 390
reg,R/M 421 56
eax,i32 21 10
register 9 1

category:implementation theme:emitter skill-level:beginner cost:medium impact:small

Guida contributor