nooc

nooc programming language compiler
git clone git://git.nihaljere.xyz/nooc
Log | Files | Refs | LICENSE

commit a788616082575e9be8f07c9a318bdef7e8032221
parent 25a5e9b12fc3f19ee867e6d2b81f6a647bdfaa77
Author: Nihal Jere <nihal@nihaljere.xyz>
Date:   Sun,  9 Jan 2022 23:09:31 -0600

x64: allow numbered registers as call address

Diffstat:
Mx64.c | 7+++++--
1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/x64.c b/x64.c @@ -598,11 +598,14 @@ size_t call(char *buf, enum reg reg) { if (buf) { + if (reg >= 8) + *(buf++) = REX_B; + *(buf++) = 0xFF; - *(buf++) = (MOD_DIRECT << 6) | (2 << 3) | reg; + *(buf++) = (MOD_DIRECT << 6) | (2 << 3) | (reg & 7); } - return 2; + return reg >= 8 ? 3 : 2; } size_t