Ticket #894 (closed defect: fixed)

Opened 19 months ago

Last modified 19 months ago

(SIGNED-BYTE 64) / (UNSIGNED-BYTE 64) problem on ARM + patch

Reported by: ivan4th Owned by:
Priority: normal Milestone:
Component: Compiler Version: trunk
Keywords: Cc:

Description

I've noticed the problem that some perfectly valid numbers like #x40000000 weren't recognized as (SIGNED-BYTE 64) / (UNSIGNED-BYTE 64) when working with cl-sqlite. I've distilled the problem down to ccl::%%set-signed-longlong / ccl::%%set-unsigned-longlong (see attached test) and further down to .SPgetu64 / .SPgets64 implementations in ARM lisp kernel. The problem was that 'one-digit' bignums weren't taken into account by these subprims. My patch seems to fix this, but I don't often write ARM assembly, so please take a look at it before applying.

Attachments

longlong-test.lisp Download (0.8 KB) - added by ivan4th 19 months ago.
Test case
ccl-arm-get64.diff Download (1.5 KB) - added by ivan4th 19 months ago.

Change History

Changed 19 months ago by ivan4th

Test case

Changed 19 months ago by ivan4th

Changed 19 months ago by rme

  • status changed from new to closed
  • resolution set to fixed

Should be fixed in r15093.

Note: See TracTickets for help on using tickets.