Hi, Ludovic Courtès <l...@gnu.org> skribis:
> Andrew Gierth <and...@tao11.riddles.org.uk> skribis: > >> diff --git a/libguile/lightening/lightening/arm-cpu.c >> b/libguile/lightening/lightening/arm-cpu.c >> index 4445266af..2b4eecc29 100644 >> --- a/libguile/lightening/lightening/arm-cpu.c >> +++ b/libguile/lightening/lightening/arm-cpu.c >> @@ -230,7 +230,7 @@ encode_thumb_immediate(unsigned int v) >> return ((v & 0xff) | (1 << 12)); >> /* abcdefgh 00000000 abcdefgh 00000000 */ >> if (((v & 0xffff0000) >> 16) == (v & 0xffff) && (v & 0xff) == 0) >> - return ((v & 0x000000ff) | (2 << 12)); >> + return (((v & 0x0000ff00) >> 8) | (2 << 12)); >> /* abcdefgh abcdefgh abcdefgh abcdefgh */ >> if ( (v & 0xff) == ((v & 0xff00) >> 8) && >> ((v & 0xff00) >> 8) == ((v & 0xff0000) >> 16) && > > I pushed this fix to the lightening repo on your behalf: > > > https://gitlab.com/wingo/lightening/-/commit/1bb909a44d2303f88bb05125fc6742e97f80cd1d > > The CI jobs pass: > > https://gitlab.com/wingo/lightening/-/pipelines/158337465 > > I’ll try merging it into Guile, but do you have a test that reproduces > the original bug, either at the Guile level or in C using the lightening > API? Perhaps the test that Dale posted yesterday at > <https://paste.debian.net/1152897/>? Replying to myself after our discussion on IRC: I’ve merged the test you provided, Dale (with the addition of enter/leave_jit_abi), and pushed. https://gitlab.com/wingo/lightening/-/commit/24ef197b1269f8371b1f4a412caa6d2b99d66839 I’ll look into merging into Guile later today, and then I guess we can close this bug. Thank you! Ludo’.