Opened 4 years ago

Last modified 3 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)

parse-float.lisp (18.2 KB) - added by jklein 4 years ago.
source file that causes problem - function is parse-float

Download all attachments as: .zip

Change History (7)

Changed 4 years ago by jklein

source file that causes problem - function is parse-float

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 3 years ago by rme

  • Milestone set to Clozure CL 1.12
Note: See TracTickets for help on using tickets.