Search
20:03:42
karlosz
https://paste.gnome.org/pwnjfqwk0
20:04:37
stassats
what's (sb-int:info :function :type 'sqrt)
20:05:15
karlosz
https://paste.gnome.org/pr2bg51db
20:05:49
stassats
ok, so it's the deriver
20:06:44
karlosz
oh, but that should be backend independent?
20:07:49
karlosz
well i remember conditionalizing sqrt in irrat.lisp because riscv has a float instruction for it, if that has anything to do with this
20:08:16
stassats
what's (sb-kernel:%simple-fun-type (lambda (x) (declare ((integer 1 4611686018427387904) x) (notinline sqrt)) (sqrt x)))
20:09:28
karlosz
(FUNCTION ((INTEGER 1 4611686018427387904)) NIL)
20:11:24
karlosz
doh, it was just a reader conditional on constant folding missing
20:12:06
stassats
was it? there isn't any constants here, really
20:12:18
stassats
and a missing constant fold function would produce a warning
20:12:36
karlosz
but then why would the type deriver be wrong
20:12:44
stassats
what does (sqrt 4611686018427387904) return
20:13:37
stassats
what about (sb-kernel:%sqrt (float 4611686018427387904 1d0))
20:14:06
stassats
and (sb-kernel:%sqrt (float 4 1d0)) ?
20:15:05
karlosz
okay, trying to bisect this to the first 0.0d0
20:15:09
stassats
what's (float 4611686018427387904 1d0) ?
20:15:43
karlosz
i have to fix some float vops it seems
20:15:53
karlosz
thanks for your help, i know what im looking for now
20:15:59
stassats
that'd be (sb-kernel:%double-float 4611686018427387904)
20:19:44
stassats
does (sb-kernel:%double-float (expt 2 30)) work?
20:24:31
stassats
i think your fcvt is missing a bit in RS2 for 64-bit integers
21:30:04
karlosz
double floating gives 1.073741824d9
21:30:34
karlosz
but double-floating the >32 bit number gives 0
21:30:44
stassats
yeah, the RS2 bit would cause that
21:31:51
karlosz
what do you mean by the "RS2 bit"?
21:32:14
stassats
fcvtw-> #b11010 :rs2 #b00000 should be fcvtw-> #b11010 :rs2 #b00010
21:34:01
karlosz
but why? the isa spec has no bits set
21:34:08
karlosz
are we reading the same table?
21:35:25
stassats
https://i.imgur.com/Kibmefj.png
21:38:06
karlosz
oh nice catch. yeah im missed those instruction entirely... need l and w, what a pain
21:38:41
stassats
who needs 32-bit conversion on a 64-bit target
21:39:16
karlosz
yeah, thats what ive been doing to keep the backend portable
21:39:31
karlosz
i kept stuff like addiw since those might help with modular arithmatic
22:38:53
karlosz
okay, excellent. it gets through to load and dump phase without a hitch now
6:45:30
karlosz
warm load works, hit a problem in ICF saying code component was nil though
6:45:56
karlosz
working around that, get two errors about %end-of-the-world and *initial-thread-bindings* being unbound
6:46:20
karlosz
but then save lisp and die should work