qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v1 1/4] x86-disas: add x86-mini instruction set metadata


From: Michael Clark
Subject: Re: [PATCH v1 1/4] x86-disas: add x86-mini instruction set metadata
Date: Sat, 25 Jan 2025 10:04:52 +1300
User-agent: Mozilla Thunderbird

On 1/24/25 13:10, Michael Clark wrote:
this metadata is based on x86-csv with numerous inaccuracies
fixed plus conversion of legacy instructions to a new LEX format.
this metadata has been fuzz-tested against the LLVM disassembler
for x86-64 with 64-bit ISA coverage in the order of ~99.9%.

adding someone from AMD into this thread.

I should say disassembly for ~99.9% of the Intel ISA in 64-bit mode.
as I did not get to transcribing the AMD extensions yet. I did make
a somewhat complete list of instructions that includes AMD extensions:

https://github.com/michaeljclark/x86/blob/trunk/doc/x86_desc.md

that table can be used to get a list of missing AMD instructions.
in fact, I have a patch to x86-tablegen.py that does that. note
SSE instructions paired with VEX extension start with lower case v
so they will sort properly. and that file is grouped by extension
instead of listed in alphabetical order of all possible orders.

the version of x86-tablegen in the repo in the first message in
this thread has additional features. it can read instruction
descriptions to print fancy documentation in Markdown-like format.
this is truncated for the email because it needs a 132 column
line printer, as opposed to a 72 column line printer like emails.

./scripts/x86_tablegen.py --print-fancy-insn

[AND] # r/m AND sign-extend ib.

| opcode                               | encoding                      |
|:-------------------------------------|:------------------------------|
| AND r8/m8,r8                         | lex.wb 20 /r lock             |
| AND rw/mw,rw                         | lex.wx 21 /r lock             |
| AND r8,r8/m8                         | lex.wb 22 /r                  |
| AND rw,rw/mw                         | lex.wx 23 /r                  |
| AND al,ib                            | lex.wn 24 ib                  |
| AND aw,iw                            | lex.wx 25 iw                  |
| AND r8/m8,ib                         | lex.wb 80 /4 ib lock          |
| AND rw/mw,iw                         | lex.wx 81 /4 iw lock          |
| AND rw/mw,ib                         | lex.wx 83 /4 ib lock          |
|:-------------------------------------|:------------------------------|

i'd appreciate if someone from AMD could contribute data for the
AMD extensions, or donate hardware. ;D the interest in AVX-512
was because I have an old Intel 7980XE PC and TCG doesn't/didn't
support AVX-512 so I thought I would write another one. I note
there is `tcg_out_evex_opc` but I have not seen that code. the
original code in x86-mini is external and is by-file MIT-licensed.
so I would appreciate if folks that want to help with this could
patch the original repo instead of making code that I can't use.
like you are doing for Berkeley SoftFloat.

thanks,
Michael.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]