Raymond Toy pushed to branch rtoy-amd64-p1 at cmucl / cmucl
Commits:
aa7b0b27 by Raymond Toy at 2020-08-20T07:38:21-07:00
Make cross-x86-amd64 look more like cross-x86-x86
Make the cross compiler script look more like the x86-x86 one.
* Don't load float-tran-dd since the x86 script doesn't.
* Forgot to load vm:c-call. Fixes error about make-call-out-tns not
existing.
* Don't load compiler/codegen and compiler/array-tran since the x86
script doesn't. Not sure why these are here, but just comment them
out for now.
Still get this error:
; Compiling DEFUN INT-INIT-XORO-STATE:
Structure for accessor C:TN-OFFSET is not a C:TN:
#<RETURN #x6034AD55
LAMBDA= #<LAMBDA #x603494BD
NAME= (FLET MAKE-DOUBLE INT-INIT-XORO-STATE)
TYPE= #<FUNCTION-TYPE (FUNCTION ((UNSIGNED-BYTE 64))
DOUBLE-FLOAT)>
WHERE-FROM= :DEFINED
VARS= (X)>
RESULT-TYPE= #<NUMERIC-TYPE DOUBLE-FLOAT>>
Aborting...
0: (DEBUG:BACKTRACE 536870911
#<Stream for file "/home/toy/src/clnet/cmucl/dev/cmucl/xtarget-amd64/compile-lisp.log">)
1: ("DEFUN COMF" #<SIMPLE-TYPE-ERROR {60A80CBD}>)
2: (SIGNAL #<SIMPLE-TYPE-ERROR {60A80CBD}>)
3: (ERROR SIMPLE-TYPE-ERROR
:DATUM #<RETURN #x6034AD55
LAMBDA= #<LAMBDA #x603494BD
NAME= #
TYPE= #<FUNCTION-TYPE #>
WHERE-FROM= :DEFINED
VARS= #>
RESULT-TYPE= #<NUMERIC-TYPE DOUBLE-FLOAT>>
:EXPECTED-TYPE ...)
4: ("DEFUN STRUCTURE-SLOT-ACCESSOR" #<unavailable-arg>)
5: (C::DO-CALL #<Code Object "DEFUN INLINE-ALLOCATION" {6171372F}> 11 12 143
...)
6: ("DEFINE-VOP (MOVE-FROM-DOUBLE)"
#<C::VOP #x603C3005
INFO= AMD64::MOVE-FROM-DOUBLE
ARGS= #<C:TN-REF #x603C2FAD
TN= #<TN t1[XMM1]>
WRITE-P= NIL
VOP= AMD64::MOVE-FROM-DOUBLE>
RESULTS= #<C:TN-REF #x603C2FD5
TN= #<TN t2[RSI]>
WRITE-P= T
VOP= AMD64::MOVE-FROM-DOUBLE>>)
7: (C::GENERATE-CODE
#<C:COMPONENT #x603517B5 NAME= "DEFUN INT-INIT-XORO-STATE">)
And then finally in worldbuild, we get:
/home/toy/src/clnet/cmucl/dev/cmucl/xtarget-amd64/code/type.amd64f
End-of-File on #<Stream for file "/home/toy/src/clnet/cmucl/dev/cmucl/xtarget-amd64/code/type.amd64f">
[Condition of type END-OF-FILE]
I'm guessing the fops are not getting written out correctly or the
fasl loader isn't interpreting the lengths correctly. Not sure
exactly what. It would be nice if we had a fasl dumper to print out
the contents of a fasl file in a readable format.
- - - - -
1 changed file:
- src/tools/cross-scripts/cross-x86-amd64.lisp
Changes:
=====================================
src/tools/cross-scripts/cross-x86-amd64.lisp
=====================================
@@ -300,7 +300,7 @@
(load "target:compiler/srctran")
(load "vm:vm-typetran")
(load "target:compiler/float-tran")
-(load "target:compiler/float-tran-dd")
+;;(load "target:compiler/float-tran-dd")
(load "target:compiler/saptran")
(load "vm:macros")
@@ -322,12 +322,16 @@
(load "vm:cell")
(load "vm:subprim")
(load "vm:debug")
+(load "vm:c-call")
(load "vm:sse2-c-call")
+
(load "vm:print")
(load "vm:alloc")
(load "vm:call")
(load "vm:nlx")
(load "vm:values")
+;; These need to be loaded before array because array wants to use
+;; some vops as templates.
(load "vm:sse2-array")
(load "vm:array")
(load "vm:pred")
@@ -343,8 +347,10 @@
(check-move-function-consistency)
-(load "target:compiler/codegen")
-(load "target:compiler/array-tran.lisp")
+;; Aret these necessary?
+;;(load "target:compiler/codegen")
+;;(load "target:compiler/array-tran.lisp")
+
(load "vm:new-genesis")
;;; OK, the cross compiler backend is loaded.
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/aa7b0b276fe865275bfbbad…
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/aa7b0b276fe865275bfbbad…
You're receiving this email because of your account on gitlab.common-lisp.net.
Raymond Toy pushed to branch rtoy-amd64-p1 at cmucl / cmucl
Commits:
9cf8b82c by Raymond Toy at 2020-08-18T22:12:14-07:00
Restore ability to build on x86
Always compile compiler/float-tran-dd as we used to do.
- - - - -
1 changed file:
- src/tools/comcom.lisp
Changes:
=====================================
src/tools/comcom.lisp
=====================================
@@ -121,7 +121,6 @@
(comf "target:compiler/typetran" :byte-compile *byte-compile*)
(comf "target:compiler/generic/vm-typetran" :byte-compile *byte-compile*)
(comf "target:compiler/float-tran" :byte-compile *byte-compile*)
-#+#.(c:target-featurep :double-double)
(comf "target:compiler/float-tran-dd" :byte-compile *byte-compile*)
(comf "target:compiler/saptran" :byte-compile *byte-compile*)
(comf "target:compiler/srctran") ;; try
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/9cf8b82c582aa74f3dd6549…
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/9cf8b82c582aa74f3dd6549…
You're receiving this email because of your account on gitlab.common-lisp.net.
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/26a395fd35b99ec9c9e78e…
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/26a395fd35b99ec9c9e78e…
You're receiving this email because of your account on gitlab.common-lisp.net.
Raymond Toy pushed to branch rtoy-amd64-p1 at cmucl / cmucl
Commits:
b323ffa9 by Raymond Toy at 2020-08-11T20:06:28-07:00
Define double-double-float-digits
Forgot to grab this from the x86 version. Fixes one compile error.
- - - - -
1 changed file:
- src/compiler/amd64/parms.lisp
Changes:
=====================================
src/compiler/amd64/parms.lisp
=====================================
@@ -165,6 +165,10 @@
(defconstant long-float-digits
(+ (byte-size long-float-significand-byte) 32 1))
+#+double-double
+(defconstant double-double-float-digits
+ (* 2 double-float-digits))
+
;;; pfw -- from i486 microprocessor programmers reference manual
(defconstant float-invalid-trap-bit (ash 1 0))
(defconstant float-denormal-trap-bit (ash 1 1))
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/b323ffa95870f5e67a99f29…
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/b323ffa95870f5e67a99f29…
You're receiving this email because of your account on gitlab.common-lisp.net.