From: Andrea Corallo Date: Sun, 5 Apr 2020 19:42:49 +0000 (+0100) Subject: * src/comp.c (emit_XFIXNUM): Fix for LSB_TAG plus annotate a FIXME. X-Git-Tag: emacs-28.0.90~2727^2~722 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=4263f2fd15e8439b8e8676ebeb6ab2f7f9339025;p=emacs.git * src/comp.c (emit_XFIXNUM): Fix for LSB_TAG plus annotate a FIXME. --- diff --git a/src/comp.c b/src/comp.c index 44de1f5fbcb..0a803545e59 100644 --- a/src/comp.c +++ b/src/comp.c @@ -985,16 +985,19 @@ emit_XFIXNUM (gcc_jit_rvalue *obj) i, comp.inttypebits); - return emit_binary_op (GCC_JIT_BINARY_OP_RSHIFT, - comp.emacs_int_type, - i, - comp.inttypebits); + return emit_coerce (comp.emacs_int_type, + emit_binary_op (GCC_JIT_BINARY_OP_RSHIFT, + comp.emacs_uint_type, + i, + comp.inttypebits)); } else - return emit_binary_op (GCC_JIT_BINARY_OP_LSHIFT, - comp.emacs_int_type, - i, - comp.inttypebits); + /* FIXME: Implementation dependent (wants arithmetic shift). */ + return emit_coerce (comp.emacs_int_type, + emit_binary_op (GCC_JIT_BINARY_OP_RSHIFT, + comp.emacs_int_type, + i, + comp.inttypebits)); } static gcc_jit_rvalue *