(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.
;; 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)
(`(,(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)))))))
;; 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."
}
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 (