Skip to content

Commit

Permalink
Clarify XMM, YMM, x87 and AVX-512 registers
Browse files Browse the repository at this point in the history
  • Loading branch information
torusrxxx committed Feb 9, 2022
1 parent 51572d6 commit dd0612e
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
4 changes: 2 additions & 2 deletions introduction/Formatting.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ Types
- ``x`` he\ **x**: ``3C28A``
- ``a`` **a**\ ddress info: ``00401010 <module.EntryPoint>``
- ``i`` **i**\ nstruction text: ``jmp 0x77ac3c87``
- ``f`` single precision floating-point pointer or register: If ``10001234`` is an address of a single precision floating-point number 3.14, ``{f:10001234}`` will print ``3.14``. It can also accept XMM and YMM registers: ``{f:XMM0}`` prints the single precision floating-point number at XMM0 bit 31:0, ``{f:YMM7[7]}`` prints the single precision floating-point number at YMM7 bit 255:224.
- ``f`` single precision floating-point pointer or register: If ``10001234`` is an address of a single precision floating-point number 3.14, ``{f:10001234}`` will print ``3.14``. It can also accept XMM and YMM registers: ``{f:XMM0}`` prints the single precision floating-point number at XMM0 bit 31:0, ``{f:YMM7[7]}`` prints the single precision floating-point number at YMM7 bit 255:224. x87 and AVX-512 registers are currently not supported.
- ``F`` double precision floating-point pointer or register: Similar to ``f``, except that the data is interpreted as double precision floating-point number. It can also accept XMM and YMM registers: ``{F:YMM7[3]}`` prints the double precision floating-point number at YMM7 bit 255:192.

**Note**: XMM and YMM registers may only be used with the ``f`` single precision floating-point type. (Issue 2826 links to details about why)
**Note**: XMM and YMM registers may only be used with the ``f``/``F`` floating-point type. (Issue 2826 links to details about why)

------------
Complex Type
Expand Down
4 changes: 2 additions & 2 deletions introduction/Input.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ Variables optionally start with a `$` and can only store one DWORD (QWORD on x64

## Registers

All registers of all sizes up to 32-bit (eg: RAX, EAX, AL) can be used as variables.
All registers of all sizes, except floating-point registers (eg: RAX, EAX, AL) can be used as variables.

XMM, YMM, ZMM or any other 64-bit registers may not be used as variables, but they may be logged via the [String Formatting](https://help.x64dbg.com/en/latest/introduction/Formatting.html) `f` type.
Floating-point registers like XMM0, YMM0 or ST(0) may not be used as variables, but they may be logged via the [String Formatting](https://help.x64dbg.com/en/latest/introduction/Formatting.html) floating-point type. AVX-512 registers are currently not supported.

### Remarks

Expand Down

0 comments on commit dd0612e

Please sign in to comment.