Ticket #894 (closed defect: fixed)

Opened 2 years ago

Last modified 2 years 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 (853 bytes) - added by ivan4th 2 years ago.
Test case
ccl-arm-get64.diff Download (1.5 KB) - added by ivan4th 2 years ago.

Change History

Changed 2 years ago by ivan4th

Test case

Changed 2 years ago by ivan4th

comment:1 Changed 2 years 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.