Skip to content

Instantly share code, notes, and snippets.

@psilord
Created August 15, 2025 05:04
Show Gist options
  • Select an option

  • Save psilord/9c0d28cbbf19107f8c16d410f64c88c0 to your computer and use it in GitHub Desktop.

Select an option

Save psilord/9c0d28cbbf19107f8c16d410f64c88c0 to your computer and use it in GitHub Desktop.
(eval-when (:compile-toplevel :load-toplevel :execute)
(defparameter *regdb*
(let ((data
`(;; register symbol names as values
(regsyms-gp8 (al cl dl bl ah ch dh bh))
(regsyms-gp8-ext (spl bpl sil dil r8b r9b r10b r11b r12b
r13b r14b r15b))
(regsyms-gp16 (ax cx dx bx bp si di))
(regsyms-gp16-ext (r8w r9w r10w r11w r12w r13w
r14w r15w))
(regsyms-gp32 (eax ecx edx ebx esp ebp esi edi))
(regsyms-gp32-no-esp (eax ecx edx ebx ebp esi edi))
(regsyms-gp32-ext (r8d r9d r10d r11d r12d r13d
r14d r15d))
(regsyms-gp64-ext (rax rcx rdx rbx rsp rbp rsi rdi
r8 r9 r10 r11 r12 r13 r14 r15))
(regsyms-gp64-ext-no-rsp (rax rcx rdx rbx rbp rsi rdi
r8 r9 r10 r11 r12 r13 r14 r15))
;; actual register objects as values
(regset-gp8 ,(list al cl dl bl ah ch dh bh))
(regset-gp8-ext ,(list spl bpl sil dil r8b r9b r10b r11b r12b
r13b r14b r15b))
(regset-gp16 ,(list ax cx dx bx bp si di))
(regset-gp16-ext ,(list r8w r9w r10w r11w r12w r13w
r14w r15w))
(regset-gp32 ,(list eax ecx edx ebx esp ebp esi edi))
(regset-gp32-no-esp ,(list eax ecx edx ebx ebp esi edi))
(regset-gp32-ext ,(list r8d r9d r10d r11d r12d r13d
r14d r15d))
(regset-gp64-ext ,(list rax rcx rdx rbx rsp rbp rsi rdi
r8 r9 r10 r11 r12 r13 r14 r15))
(regset-gp64-ext-no-rsp ,(list rax rcx rdx rbx rbp rsi rdi
r8 r9 r10 r11 r12 r13 r14 r15))))
(regdb (make-hash-table)))
(loop :for (sym lst) :in data
:do (setf (gethash sym regdb) lst))
regdb)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment