Changeset 8648


Ignore:
Timestamp:
Mar 4, 2008, 5:13:51 AM (12 years ago)
Author:
gb
Message:

PARSE-X86-OPERAND: recognize (:RCONTEXT disp) a a memory operand, using
a segment register or GPR depending on the backend's LISP-CONTEXT-REGISTER.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/win64/compiler/X86/x86-lap.lisp

    r8130 r8648  
    670670;;; ($ x) -> immediate
    671671;;; (@ x) -> memory operand
     672;;; (:rcontext x) -> memory operand, using segment register or gpr
    672673;;; x -> labelref
    673674(defun parse-x86-operand (form)
     
    685686                   (x86::make-x86-immediate-operand :type type
    686687                                             :value expr))))
     688              ((eq head :rcontext)
     689               (if (>= (backend-lisp-context-register *target-backend*)
     690                       x86::+x86-segment-register-offset+)
     691                 (parse-x86-memory-operand `((% :rcontext) ,(cadr form)))
     692                 (parse-x86-memory-operand `(,(cadr form) (% :rcontext)))))
    687693              ((setq designator (x86-register-designator form))
    688694               (destructuring-bind (reg) (cdr form)
Note: See TracChangeset for help on using the changeset viewer.