]> git.eshelyaron.com Git - emacs.git/commitdiff
Remove relocation index form LIMPLE setimm
authorAndreaCorallo <akrl@sdf.org>
Sun, 1 Mar 2020 14:42:41 +0000 (14:42 +0000)
committerAndrea Corallo <akrl@sdf.org>
Sun, 1 Mar 2020 19:22:27 +0000 (19:22 +0000)
Given that every object identify a relocation class simplify setimm too.

lisp/emacs-lisp/comp.el
src/comp.c

index 7792605fff814322a11ac7f3a6fc580f0379ee90..74d352394fba8faf9f10f1571da4b3377ad50be6 100644 (file)
@@ -665,7 +665,7 @@ If DST-N is specified use it otherwise assume it to be the current slot."
   (comp-add-const-to-relocs val)
   ;; Leave relocation index nil on purpose, will be fixed-up in final
   ;; by `comp-finalize-relocs'.
-  (comp-emit `(setimm ,(comp-slot) nil ,val)))
+  (comp-emit `(setimm ,(comp-slot) ,val)))
 
 (defun comp-make-curr-block (block-name entry-sp &optional addr)
   "Create a basic block with BLOCK-NAME and set it as current block.
@@ -762,7 +762,7 @@ Return value is the fall through block name."
   ;; FIXME this not efficient for big jump tables. We should have a second
   ;; strategy for this case.
   (pcase last-insn
-    (`(setimm ,_ ,_ ,jmp-table)
+    (`(setimm ,_ ,jmp-table)
      (cl-loop
       for test being each hash-keys of jmp-table
       using (hash-value target-label)
@@ -1619,7 +1619,7 @@ Here goes everything that can be done not iteratively (read once).
             (`(,(or 'callref 'direct-callref) ,_f . ,args)
              (when backward
                (comp-ref-args-to-array args)))
-            (`(setimm ,lval ,_ ,v)
+            (`(setimm ,lval ,v)
              (setf (comp-mvar-const-vld lval) t
                    (comp-mvar-constant lval) v
                    (comp-mvar-type lval) (comp-strict-type-of v)))))))
@@ -1658,7 +1658,7 @@ Here goes everything that can be done not iteratively (read once).
         ;; See `comp-emit-setimm'.
         (comp-add-const-to-relocs value)
         (setf (car insn) 'setimm
-              (cddr insn) `(nil ,value))))))
+              (cddr insn) `(,value))))))
 
 (defun comp-propagate-insn (insn)
   "Propagate within INSN."
index bcb0c69986ddd7c9101345a78967bdb4bfecca8c..0b7b2b9261512877ce2e6de99b617503616914cd 100644 (file)
@@ -1594,9 +1594,9 @@ emit_limple_insn (Lisp_Object insn)
     }
   else if (EQ (op, Qsetimm))
     {
-      /* Ex: (setimm #s(comp-mvar 9 1 t 3 nil) a).  */
-      emit_comment (SSDATA (Fprin1_to_string (arg[2], Qnil)));
-      imm_reloc_t reloc = obj_to_reloc (arg[2]);
+      /* Ex: (setimm #s(comp-mvar 9 1 t 3 nil) a).  */
+      emit_comment (SSDATA (Fprin1_to_string (arg[1], Qnil)));
+      imm_reloc_t reloc = obj_to_reloc (arg[1]);
       emit_frame_assignment (
        arg[0],
        gcc_jit_lvalue_as_rvalue (