www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 22664] New: Disassembler mistakes rdtscp for invlpg ECX

https://issues.dlang.org/show_bug.cgi?id=22664

          Issue ID: 22664
           Summary: Disassembler mistakes rdtscp for invlpg  ECX
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Keywords: disassembler
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: maxhaton gmail.com

dmd vasm gives 

```
simpleLoop:
0000:   0F 01 F9                invlpg  ECX
```

GNU objdump gives

```
0000000000000000 <simpleLoop>:
   0:   0f 01 f9                rdtscp 
        ...
```

Note that this is the wrong type of operand for invlpg too (should be an mm64),
luckily however when the instruction is decoded as a true positive (i.e. the
source bytes really are a invlpg) the correct operand is given.

--
Jan 10 2022