]> git.eshelyaron.com Git - emacs.git/commitdiff
* src/comp.c (emit_XFIXNUM): Fix for LSB_TAG plus annotate a FIXME.
authorAndrea Corallo <akrl@sdf.org>
Sun, 5 Apr 2020 19:42:49 +0000 (20:42 +0100)
committerAndrea Corallo <akrl@sdf.org>
Sun, 5 Apr 2020 21:05:53 +0000 (22:05 +0100)
src/comp.c

index 44de1f5fbcb97bb673df857838b1328b0dd2f88e..0a803545e59ac231948d387beb619947da90de3f 100644 (file)
@@ -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 *