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/aa7b0b276fe865275bfbbad3...