[Git][cmucl/cmucl][rtoy-amd64-p1] 2 commits: emit-ea needs to support float-registers
Raymond Toy
gitlab at common-lisp.net
Mon Aug 17 04:09:34 UTC 2020
Raymond Toy pushed to branch rtoy-amd64-p1 at cmucl / cmucl
Commits:
4f8e35c9 by Raymond Toy at 2020-08-15T10:36:10-07:00
emit-ea needs to support float-registers
emit-ea with a tn arg needs to recognize a float-register. The x86
port does this so we just copied it over.
- - - - -
b626b6ff by Raymond Toy at 2020-08-16T12:14:13-07:00
Allow using R12 in emit-ea
Currently R12 is not allowed as an index register (a carry over from
x86 because R12 is ESP when looking at the low 3 bits of the
register). However, if we emit the appropriate REX prefix, then I
think R12 is ok to use here. Just assume REX was emitted and allow
use of R12 for now.
- - - - -
1 changed file:
- src/compiler/amd64/insts.lisp
Changes:
=====================================
src/compiler/amd64/insts.lisp
=====================================
@@ -150,7 +150,7 @@
(etypecase thing
(tn
(ecase (sb-name (sc-sb (tn-sc thing)))
- (registers
+ ((registers float-registers)
(emit-mod-reg-r/m-byte segment #b11 reg (reg-lower-3-bits thing)))
(stack
;; Convert stack tns into an index off of RBP.
@@ -188,9 +188,15 @@
(let ((ss (1- (integer-length scale)))
(index (if (null index)
#b100
+ ;; FIXME: We're going to assume this is ok
+ ;; for now because we emitted an appropriate
+ ;; REX prefix already to allow using R12
+ ;; here.
+ #+nil
(if (= (reg-tn-encoding index) #b100)
(error "Can't index off of RSP")
- (reg-lower-3-bits index))))
+ (reg-lower-3-bits index))
+ (reg-lower-3-bits index)))
(base (if (null base)
#b101
(reg-lower-3-bits base))))
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/26a395fd35b99ec9c9e78ef13190c52c8f2edeca...b626b6ff38b2aa65584c021760e2bc15105eee84
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/26a395fd35b99ec9c9e78ef13190c52c8f2edeca...b626b6ff38b2aa65584c021760e2bc15105eee84
You're receiving this email because of your account on gitlab.common-lisp.net.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/cmucl-cvs/attachments/20200817/dbfdd40f/attachment.htm>
More information about the cmucl-cvs
mailing list