Opened 4 years ago
Last modified 4 years ago
#1379 new defect
Raspberry PI B+ (arm32) - error "Unknown vinsn: ccl::nfp-store-unboxed-double-float-nested"
Reported by: | jklein | Owned by: | rme |
---|---|---|---|
Priority: | normal | Milestone: | Clozure CL 1.12 |
Component: | Compiler | Version: | trunk |
Keywords: | Cc: |
Description
I'm running on a raspberry pi, 32 bit arm, recent raspian
I rebuilt armccl (latest svn trunk as of Aug 25 2016), then did a full (rebuild-ccl :full t)
I tried to load my float parsing library (lots of type declarations) and got this:
====
ASDF could not load numio because Unknown vinsn: ccl::nfp-store-unboxed-double-float-nested.
Error: Unknown vinsn: ccl::nfp-store-unboxed-double-float-nested
====
My guess is that some op-codes (is that the right term?) are undefined for this processor.
Attachments (1)
Change History (7)
Changed 4 years ago by jklein
comment:1 Changed 4 years ago by jklein
I think I MIGHT have solved this but without understanding anything - in arm2.lisp (line 357 I think), the 'unboxed' in 'nfp-store-unboxed-double-float-nested' should be removed to make it agree with arm-vinsns.lisp
Unless there really is an unboxed double-float to worry about - the only other type with 'unboxed' is 'word'
My float-parsing routines compiles and works at any rate.
comment:2 Changed 4 years ago by jklein
Unfortunately, I found more glitches
arm2.lisp demands: nfp-load-complex-single-float-nested, nfp-load-complex-single-float, nfp-store-complex-single-float-nested, nfp-store-complex-single-float
but none of these are defined in arm-visns.lisp
comment:3 Changed 4 years ago by jklein
I think these functions are necessary in arm-vinsns.lisp - I patterned them after existing code but an ARM expert will have to check if they're right:
;; note that (:apply arm-quad-to-double val) was replaced with val when converting dbl to single float code ;; is this right? (define-arm-vinsn (nfp-store-complex-single-float :nfp :set :uses-frame-pointer) (() ((val :complex-single-float) (offset :u16const))) (fsts val (:@ sp (:$ (:apply + 8 offset)))) (fsts (:apply 1+ val) (:@ sp (:$ (:apply + 8 8 offset))))) (define-arm-vinsn (nfp-store-complex-single-float-nested :nfp :set :uses-frame-pointer) (() ((val :complex-single-float) (offset :u16const))) (ldr lr (:@ rcontext (:$ arm::tcr.nfp))) (fsts val (:@ lr (:$ (:apply + 8 offset)))) (fsts (:apply 1+ val) (:@ lr (:$ (:apply + 8 8 offset))))) (define-arm-vinsn (nfp-load-complex-single-float :nfp :ref :uses-frame-pointer) (((val :complex-single-float)) ((offset :u16const))) (flds val (:@ sp (:$ (:apply + 8 offset)))) (flds (:apply 1+ val) (:@ sp (:$ (:apply + 8 8 offset))))) (define-arm-vinsn (nfp-load-complex-single-float-nested :nfp :ref :uses-frame-pointer) (((val :complex-single-float)) ((offset :u16const))) (ldr lr (:@ rcontext (:$ arm::tcr.nfp))) (flds val (:@ lr (:$ (:apply + 8 offset)))) (flds (:apply 1+ val) (:@ lr (:$ (:apply + 8 8 offset)))))
comment:4 Changed 4 years ago by rme
- Owner set to rme
comment:5 Changed 4 years ago by rme
I ran into some trouble on my Raspberry Pi 3 development machine, so I'm not going to be able to get to this right away. (see ticket:1380)
If anyone else wants it, please reassign.
comment:6 Changed 4 years ago by rme
- Milestone set to Clozure CL 1.12
source file that causes problem - function is parse-float