emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

feature/native-comp b41d76f 5/7: Remove relocation index form LIMPLE set


From: Andrea Corallo
Subject: feature/native-comp b41d76f 5/7: Remove relocation index form LIMPLE setimm
Date: Sun, 1 Mar 2020 14:41:57 -0500 (EST)

branch: feature/native-comp
commit b41d76fa5e0bce80a3ef92f30243f9c53b9ac6bc
Author: AndreaCorallo <address@hidden>
Commit: Andrea Corallo <address@hidden>

    Remove relocation index form LIMPLE setimm
    
    Given that every object identify a relocation class simplify setimm too.
---
 lisp/emacs-lisp/comp.el | 8 ++++----
 src/comp.c              | 6 +++---
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
index 7792605..74d3523 100644
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
@@ -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."
diff --git a/src/comp.c b/src/comp.c
index bcb0c69..0b7b2b9 100644
--- a/src/comp.c
+++ b/src/comp.c
@@ -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) 3 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 (



reply via email to

[Prev in Thread] Current Thread [Next in Thread]