Changeset 8643


Ignore:
Timestamp:
Mar 3, 2008, 8:05:30 AM (12 years ago)
Author:
gb
Message:

Don't try to allocate save3/r11 as a gpr if it's the backend's
context register (tcr).

Treat (:rcontext disp) as a pseudo-operand in vinsns; expand into
a memory operand that uses either a segment reg or gpr, depending
on the backend's lisp-context-register.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/win64/compiler/X86/x862.lisp

    r8585 r8643  
    767767            (n 0 (1+ n))
    768768            (registers (target-arch-case (:x8664
    769                                           (list x8664::save0 x8664::save1 x8664::save2 x8664::save3))))
     769                                          (if (= (backend-lisp-context-register *target-backend*) x8664::save3)
     770                                            (list x8664::save0 x8664::save1 x8664::save2)
     771                                            (list x8664::save0 x8664::save1 x8664::save2 x8664::save3)))))
    770772            (regno (pop registers) (pop registers))
    771773            (constant-alist ()))
    772            ((or (null things) (= n *x862-target-num-save-regs*))
     774           ((or (null things) (null regno))
    773775            (dolist (cell fcells) (%rplacd cell nil))
    774776            (dolist (cell vcells) (%rplacd cell nil))
     
    52915293                             "unknown vinsn label ~s" valform))))
    52925294                     ((atom valform) valform)
     5295                     ((eq (car valform) :rcontext)
     5296                      (if (>= (backend-lisp-context-register *target-backend*)
     5297                              x86::+x86-segment-register-offset+)
     5298                        (mapcar #'parse-operand-form `(:rcontext ,(cadr valform) nil nil nil))
     5299                        (mapcar #'parse-operand-form `(nil ,(cadr valform) :rcontext nil nil))))
    52935300                     ((atom (cdr valform)) (svref vp (car valform)))
    52945301                     ((eq (car valform) :@)
Note: See TracChangeset for help on using the changeset viewer.