Changeset 7339


Ignore:
Timestamp:
Oct 1, 2007, 8:20:42 PM (12 years ago)
Author:
rme
Message:

IA-32 stuff

Location:
branches/ia32/compiler/X86
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/ia32/compiler/X86/X8632/x8632-arch.lisp

    r7286 r7339  
    363363(defconstant t-value (+ #x3008 fulltag-misc))
    364364(defconstant t-offset (- t-value nil-value))
    365 (defconstant nilsym-offset (+ t-offset symbol.size))
    366365
    367366(defconstant misc-bias fulltag-misc)
     
    456455  binding-index
    457456)
     457
     458(defconstant nilsym-offset (+ t-offset symbol.size))
    458459
    459460(define-fixedsized-object vectorH
  • branches/ia32/compiler/X86/X8632/x8632-vinsns.lisp

    r7286 r7339  
    13131313;; start-mv-call
    13141314
     1315;; xxx check this
     1316(define-x8632-vinsn (vpush-label :push :node :vsp) (()
     1317                                                 ((label :label)))
     1318  (leal (:@ (:^ label) (:%l x8632::fn)) (:%l x8632::ra0))
     1319  (pushl (:%l x8632::ra0)))
     1320
    13151321;; ????
    13161322(define-x8632-vinsn emit-aligned-label (()
     
    13201326
    13211327;; pass-multiple-values-symbol
     1328;;; %ra0 is pointing into %fn, so no need to copy %fn here.
     1329(define-x8632-vinsn pass-multiple-values-symbol (()
     1330                                                 ())
     1331  (pushl (:@ (+ x8632::nil-value (x8632::%kernel-global 'x86::ret1valaddr))))
     1332  (jmp (:@ x8632::symbol.fcell (:% x8632::fname))))
     1333
     1334
    13221335;; pass-multiple-values
    13231336
     
    14411454  :done)
    14421455
     1456(define-x8632-subprim-lea-jmp-vinsn (bind-interrupt-level-m1) .SPbind-interrupt-level-m1)
     1457
     1458(define-x8632-subprim-lea-jmp-vinsn (bind-interrupt-level) .SPbind-interrupt-level)
     1459
     1460(define-x8632-subprim-call-vinsn (unbind-interrupt-level) .SPunbind-interrupt-level)
     1461
    14431462(define-x8632-subprim-jump-vinsn (tail-call-fn-gen) .SPtcallnfngen)
    14441463
     
    15141533
    15151534;;; 3d-dims
    1516 ;;; 2d-unscaled-index
     1535
     1536;;; xxx
     1537(define-x8632-vinsn 2d-unscaled-index (((dest :imm)
     1538                                        (dim1 :u32))
     1539                                       ((dim1 :u32)
     1540                                        (i :imm)
     1541                                        (j :imm)))
     1542
     1543  (imull (:%l i) (:%l dim1))
     1544  (leal (:@ (:%l j) (:%l dim1)) (:%l dest)))
    15171545
    15181546;;; 3d-unscaled-index
     
    15651593                                  ())
    15661594  (movl (:$self 0) (:%l x8632::fn)))
     1595
     1596
     1597(define-x8632-subprim-jump-vinsn (tail-call-sym-slide) .SPtcallsymslide)
     1598
     1599(define-x8632-subprim-jump-vinsn (tail-call-sym-vsp) .SPtcallsymvsp)
     1600
     1601
     1602(define-x8632-vinsn character->code (((dest :u32))
     1603                                     ((src :lisp)))
     1604  (movl (:%l src) (:%l dest))
     1605  (sarl (:$ub x8632::charcode-shift) (:%l dest)))
     1606
     1607(define-x8632-vinsn adjust-vsp (()
     1608                                ((amount :s32const)))
     1609  ((:and (:pred >= amount -128) (:pred <= amount 127))
     1610   (addl (:$b amount) (:%l x8632::esp)))
     1611  ((:not (:and (:pred >= amount -128) (:pred <= amount 127)))
     1612   (addl (:$l amount) (:%l x8632::esp))))
    15671613
    15681614
     
    17401786  (shrl (:$ub amt) (:%l dest)))
    17411787
    1742 
     1788(define-x8632-vinsn recover-fn (()
     1789                                ())
     1790  (movl (:$self 0) (:%l x8632::fn)))
     1791
     1792;;; xxx probably wrong
     1793(define-x8632-vinsn (call-subprim-3 :call :subprim-call) (((dest t))
     1794                                                          ((spno :s32const)
     1795                                                           (x t)
     1796                                                           (y t)
     1797                                                           (z t))
     1798                                                          ((entry (:label 1))))
     1799  (:talign 5)
     1800  (call (:@ spno))
     1801  (movl (:$self 0) (:%l x8632::fn)))
    17431802
    17441803(queue-fixup
  • branches/ia32/compiler/X86/x862.lisp

    r7286 r7339  
    182182(defvar *x862-temp0* nil)
    183183(defvar *x862-temp1* nil)
     184(defvar *x862-fn* nil)
    184185(defvar *x862-fname* nil)
     186(defvar *x862-ra0* nil)
    185187
    186188(defvar *x862-allocptr* nil)
     
    461463           (*x862-cstack* 0)
    462464           (*x86-lap-entry-offset* (target-arch-case
    463                                     (:x8632 x8632::fulltag-misc)
     465                                    (:x8632 (- x8632::fulltag-misc 3)) ;xxx magic fudge factor
    464466                                    (:x8664 x8664::fulltag-function)))
    465467           (*x862-result-reg* (target-arch-case
     
    476478           (*x862-temp1* (target-arch-case (:x8632 x8632::temp1)
    477479                                           (:x8664 x8664::temp1)))
     480           (*x862-fn* (target-arch-case (:x8632 x8632::fn)
     481                                        (:x8664 x8664::fn)))
    478482           (*x862-fname* (target-arch-case (:x8632 x8632::fname)
    479483                                           (:x8664 x8664::fname)))
     484           (*x862-ra0* (target-arch-case (:x8632 x8632::ra0)
     485                                         (:x8664 x8664::ra0)))
    480486           (*x862-allocptr* (target-arch-case (:x8632 x8632::allocptr)
    481487                                              (:x8664 x8664::allocptr)))
     
    582588                        (instruction (x86::make-x86-instruction))
    583589                        (end-code-tag (gensym))
     590                        (start-tag (gensym))
    584591                        (srt-tag (gensym))
    585592                        debug-info)
     
    593600                     (x86-lap-directive frag-list :byte 0)) ;regsave mask
    594601                    (:x8632
     602                     (make-x86-lap-label start-tag)
    595603                     (make-x86-lap-label srt-tag)
    596604                     (x86-lap-directive frag-list :short `(ash (+ (- (:^ ,end-code-tag) 4)
    597                                                                   *x86-lap-entry-offset*) -2))))
     605                                                                  *x86-lap-entry-offset*) -2))
     606                     (emit-x86-lap-label frag-list start-tag)))
    598607                   (x862-expand-vinsns vinsns frag-list instruction)
    599608                   (when (or *x862-double-float-constant-alist*
     
    689698                              (srt-frag (x86-lap-label-frag label))
    690699                              (srt-index (x86-lap-label-offset label)))
     700;;                       (format t "~&end-code-label = ~s offset = ~s addr = ~s" (setq label (find end-code-tag *x86-lap-labels*
     701;;                                                                                                 :test #'eq :key #'x86-lap-label-name))
     702;;                               (x86-lap-label-offset label)
     703;;                               (x86-lap-label-address label))
     704;;                       (format t "~&start-label = ~s offset = ~s addr = ~s" (setq label (find start-tag *x86-lap-labels*
     705;;                                                                           :test #'eq :key #'x86-lap-label-name))
     706;;                               (x86-lap-label-offset label)
     707;;                               (x86-lap-label-address label))
    691708                         ;; fill in self-reference offsets
    692709                         (do-dll-nodes (frag frag-list)
     
    892909(defun x862-save-nvrs (seg n)
    893910  (declare (fixnum n))
    894   (when (> n 0)
    895     (setq *x862-compiler-register-save-label* (x862-emit-note seg :regsave))
    896     (with-x86-local-vinsn-macros (seg)
    897       (let* ((mask (target-arch-case
    898                     (:x8632 x8632-nonvolatile-node-regs)
    899                     (:x8664 x8664-nonvolatile-node-regs))))
    900         (dotimes (i n)
    901           (let* ((reg (1- (integer-length mask))))
    902             (x862-vpush-register seg reg :regsave reg 0)
    903             (setq mask (logandc2 mask (ash 1 reg)))))))
    904     (setq *x862-register-restore-ea* *x862-vstack*
    905           *x862-register-restore-count* n)))
     911  (target-arch-case
     912   ;; no nvrs on x8632
     913   (:x8664
     914    (when (> n 0)
     915      (setq *x862-compiler-register-save-label* (x862-emit-note seg :regsave))
     916      (with-x86-local-vinsn-macros (seg)
     917        (let* ((mask x8664-nonvolatile-node-regs))
     918          (dotimes (i n)
     919            (let* ((reg (1- (integer-length mask))))
     920              (x862-vpush-register seg reg :regsave reg 0)
     921              (setq mask (logandc2 mask (ash 1 reg)))))))
     922      (setq *x862-register-restore-ea* *x862-vstack*
     923            *x862-register-restore-count* n)))))
    906924
    907925
     
    914932
    915933(defun x862-restore-nvrs (seg ea nregs &optional (can-pop t))
    916   (when (and ea nregs)
    917     (with-x86-local-vinsn-macros (seg)
    918       (let* ((mask (target-arch-case
    919                     (:x8632 x8632-nonvolatile-node-regs)
    920                     (:x8664 x8664-nonvolatile-node-regs)))
    921              (regs ()))
    922         (dotimes (i nregs)
    923           (let* ((reg (1- (integer-length mask))))
    924             (push reg regs)
    925             (setq mask (logandc2 mask (ash 1 reg)))))
    926         (cond (can-pop
    927                (let* ((diff-in-bytes (- *x862-vstack* ea)))
    928                  (unless (zerop diff-in-bytes)
    929                    (x862-adjust-vstack diff-in-bytes)
    930                    (! vstack-discard (floor diff-in-bytes *x862-target-node-size*)))
    931                  (dolist (reg regs)
    932                    (! vpop-register reg))))
    933               (t
    934                (dolist (reg regs)
    935                  (! vframe-load reg (- ea *x862-target-node-size*) ea)
    936                  (decf ea *x862-target-node-size*))))))))
     934  (target-arch-case
     935   ;; no nvrs on x8632
     936   (:x8664
     937    (when (and ea nregs)
     938      (with-x86-local-vinsn-macros (seg)
     939        (let* ((mask x8664-nonvolatile-node-regs)
     940               (regs ()))
     941          (dotimes (i nregs)
     942            (let* ((reg (1- (integer-length mask))))
     943              (push reg regs)
     944              (setq mask (logandc2 mask (ash 1 reg)))))
     945          (cond (can-pop
     946                 (let* ((diff-in-bytes (- *x862-vstack* ea)))
     947                   (unless (zerop diff-in-bytes)
     948                     (x862-adjust-vstack diff-in-bytes)
     949                     (! vstack-discard (floor diff-in-bytes *x862-target-node-size*)))
     950                   (dolist (reg regs)
     951                     (! vpop-register reg))))
     952                (t
     953                 (dolist (reg regs)
     954                   (! vframe-load reg (- ea *x862-target-node-size*) ea)
     955                   (decf ea *x862-target-node-size*))))))))))
    937956
    938957
     
    10811100            (declare (fixnum offset))
    10821101            (! save-lisp-context-offset offset))))
    1083       (destructuring-bind (&optional zvar yvar xvar &rest stack-args) revargs
    1084         (let* ((nstackargs (length stack-args)))
    1085           (x862-set-vstack (* nstackargs *x862-target-node-size*))
    1086           (dotimes (i nstackargs)
    1087             (x862-new-vstack-lcell :reserved *x862-target-lcell-size* 0 nil))
    1088           (target-arch-case
    1089            (:x8632
     1102      (target-arch-case
     1103       (:x8632
     1104        (destructuring-bind (&optional zvar yvar &rest stack-args) revargs
     1105          (let* ((nstackargs (length stack-args)))
     1106            (x862-set-vstack (* nstackargs *x862-target-node-size*))
     1107            (dotimes (i nstackargs)
     1108              (x862-new-vstack-lcell :reserved *x862-target-lcell-size* 0 nil))
    10901109            (if (>= nargs 2)
    1091               (push (x862-vpush-arg-register seg ($ x8632::arg_y) yvar) reg-vars))
     1110              (push (x862-vpush-arg-register seg ($ *x862-arg-y*) yvar) reg-vars))
    10921111            (if (>= nargs 1)
    1093               (push (x862-vpush-arg-register seg ($ x8632::arg_z) zvar) reg-vars)))
    1094            (:x8664
     1112              (push (x862-vpush-arg-register seg ($ *x862-arg-z*) zvar) reg-vars)))))
     1113       (:x8664
     1114        (destructuring-bind (&optional zvar yvar xvar &rest stack-args) revargs
     1115          (let* ((nstackargs (length stack-args)))
     1116            (x862-set-vstack (* nstackargs *x862-target-node-size*))
     1117            (dotimes (i nstackargs)
     1118              (x862-new-vstack-lcell :reserved *x862-target-lcell-size* 0 nil))
    10951119            (if (>= nargs 3)
    10961120              (push (x862-vpush-arg-register seg ($ x8664::arg_x) xvar) reg-vars))
    10971121            (if (>= nargs 2)
    1098               (push (x862-vpush-arg-register seg ($ x8664::arg_y) yvar) reg-vars))
     1122              (push (x862-vpush-arg-register seg ($ *x862-arg-y*) yvar) reg-vars))
    10991123            (if (>= nargs 1)
    1100               (push (x862-vpush-arg-register seg ($ x8664::arg_z) zvar) reg-vars))))))
     1124              (push (x862-vpush-arg-register seg ($ *x862-arg-z*) zvar) reg-vars))))))
    11011125      reg-vars)))
    11021126
     
    12151239            (dolist (f (%cdr form) (x862-branch seg xfer))
    12161240              (x862-form seg nil nil f ))
    1217             (apply fn seg vreg xfer (%cdr form)))
     1241            (apply fn seg vreg xfer (%cdr form)))
    12181242          (error "x862-form ? ~s" form))))))
    12191243
     
    17521776
    17531777(defun x862-aset2 (seg vreg xfer  array i j new safe type-keyword  dim0 dim1)
     1778  (target-arch-case
     1779   (:x8632 (error "not for x8632 yet")))
    17541780  (with-x86-local-vinsn-macros (seg target)
    17551781    (let* ((i-known-fixnum (acode-fixnum-form-p i))
     
    18201846
    18211847(defun x862-aset3 (seg vreg xfer  array i j k new safe type-keyword  dim0 dim1 dim2)
     1848  (target-arch-case
     1849   (:x8632 (error "not for x8632 yet")))
    18221850  (with-x86-local-vinsn-macros (seg target)
    18231851    (let* ((i-known-fixnum (acode-fixnum-form-p i))
     
    18981926
    18991927(defun x862-aref2 (seg vreg xfer array i j safe typekeyword &optional dim0 dim1)
     1928  (target-arch-case
     1929   (:x8632 (error "not for x8632 yet")))
    19001930  (with-x86-local-vinsn-macros (seg vreg xfer)
    19011931    (let* ((i-known-fixnum (acode-fixnum-form-p i))
     
    19411971
    19421972(defun x862-aref3 (seg vreg xfer array i j k safe typekeyword &optional dim0 dim1 dim2)
     1973  (target-arch-case
     1974   (:x8632 (error "not for x8632 yet")))
    19431975  (with-x86-local-vinsn-macros (seg vreg xfer)
    19441976    (let* ((i-known-fixnum (acode-fixnum-form-p i))
     
    25632595    (! emit-aligned-label (aref *backend-labels* labelnum))
    25642596    (@ labelnum)
    2565     (! recover-fn-from-rip)))
     2597    (target-arch-case
     2598     (:x8632
     2599      (! recover-fn))
     2600     (:x8664
     2601      (! recover-fn-from-rip)))))
    25662602
    25672603 
     
    26282664              (unless mvpass-label (error "bug: no label for mvpass"))
    26292665              (if label-p
    2630                 (x862-copy-register seg call-reg ($ x8664::fn))
     2666                (x862-copy-register seg call-reg ($ *x862-fn*))
    26312667                (if a-reg
    26322668                  (x862-copy-register seg call-reg  a-reg)
     
    26672703                  (unless (or label-p a-reg) (x862-store-immediate seg func destreg))
    26682704                  (when label-p
    2669                     (x862-copy-register seg *x862-temp0* x8664::fn))
     2705                    (x862-copy-register seg *x862-temp0* *x862-fn*))
    26702706
    26712707                  (cond ((or spread-p (null nargs))
     
    27572793                        *x862-imm0*
    27582794                        (arch::make-vheader vsize (nx-lookup-target-uvector-subtag :function)))
    2759               (x862-lri seg x8664::imm1 (- (ash (logandc2 (+ vsize 2) 1) (arch::target-word-shift arch)) (target-arch-case  (:x8664 x8664::fulltag-misc))))
     2795              (target-arch-case
     2796               (:x8632
     2797                (! setup-uvector-allocation *x862-imm0*)
     2798                (x862-lri seg *x862-imm0* (- (ash (logandc2 (+ vsize 2) 1) (arch::target-word-shift arch)) x8632::fulltag-misc)))
     2799               (:x8664
     2800                (x862-lri seg x8664::imm1 (- (ash (logandc2 (+ vsize 2) 1) (arch::target-word-shift arch)) (target-arch-case  (:x8664 x8664::fulltag-misc))))))
    27602801              (! %allocate-uvector dest)))
    27612802          (! init-nclosure *x862-arg-z*)
    2762           (x862-store-immediate seg (x862-afunc-lfun-ref afunc) x8664::ra0)
     2803          (x862-store-immediate seg (x862-afunc-lfun-ref afunc) *x862-ra0*)
    27632804          (with-node-temps (*x862-arg-z*) (t0 t1 t2 t3)
    2764             (do* ((func x8664::ra0 nil))
     2805            (do* ((func *x862-ra0* nil))
    27652806                 ((null inherited-vars))
    27662807              (let* ((t0r (or func (if inherited-vars (var-to-reg (pop inherited-vars) t0))))
     
    28562897               (yform (%cadr revregargs))
    28572898               (xform (%caddr revregargs)))
    2858           (if (eq 3 nregs)
    2859             (x862-three-targeted-reg-forms seg xform ($ x8664::arg_x) yform ($ *x862-arg-y*) zform ($ *x862-arg-z*))
    2860             (if (eq 2 nregs)
    2861               (x862-two-targeted-reg-forms seg yform ($ *x862-arg-y*) zform ($ *x862-arg-z*))
    2862               (x862-one-targeted-reg-form seg zform ($ *x862-arg-z*))))))
     2899          (if (eq 3 nregs)
     2900            (x862-three-targeted-reg-forms seg xform ($ x8664::arg_x) yform ($ *x862-arg-y*) zform ($ *x862-arg-z*))
     2901            (if (eq 2 nregs)
     2902              (x862-two-targeted-reg-forms seg yform ($ *x862-arg-y*) zform ($ *x862-arg-z*))
     2903              (x862-one-targeted-reg-form seg zform ($ *x862-arg-z*))))))
    28632904      n)))
    28642905
     
    41394180                    (x862-note-top-cell var))
    41404181                  (when make-vcell
    4141                     (with-node-target (x8664::allocptr) closed
    4142                       (with-node-target (x8664::allocptr closed) vcell
     4182                    (with-node-target (*x862-allocptr*) closed
     4183                      (with-node-target (*x862-allocptr* closed) vcell
    41434184                        (x862-stack-to-register seg vloc closed)
    41444185                        (if closed-downward
     
    41734214          (error "bind-var: var ~s was punted" var))
    41744215        (when make-vcell
    4175           (with-node-target (x8664::allocptr) closed
    4176             (with-node-target (x8664::allocptr closed) vcell
     4216          (with-node-target (*x862-allocptr*) closed
     4217            (with-node-target (*x862-allocptr* closed) vcell
    41774218              (x862-stack-to-register seg vloc closed)
    41784219              (if closed-downward
     
    56375678(defun x862-binary-builtin (seg vreg xfer name form1 form2)
    56385679  (with-x86-local-vinsn-macros (seg)
    5639     (target-arch-case
    5640      (:x8632
    5641       (x862-two-targeted-reg-forms seg form1 ($ x8632::arg_y) form2 ($ x8632::arg_z)))
    5642      (:x8664
    5643       (x862-two-targeted-reg-forms seg form1 ($ *x862-arg-y*) form2 ($ *x862-arg-z*))))
     5680    (x862-two-targeted-reg-forms seg form1 ($ *x862-arg-y*) form2 ($ *x862-arg-z*))
    56445681    (x862-fixed-call-builtin seg vreg xfer name (subprim-name->offset '.SPcallbuiltin2))))
    56455682
     
    57265763                  (! check-max-nargs max-args))
    57275764                (if (not (or rest keys))
    5728                   (if (<= (+ num-fixed num-opt) $numx8664argregs)
     5765                  (if (<= (+ num-fixed num-opt) *x862-target-num-arg-regs*)
    57295766                    (! save-lisp-context-no-stack-args)
    57305767                    (! save-lisp-context-variable-arg-count))
     
    57475784                    (dotimes (i (the fixnum (+ nkeys nkeys)))
    57485785                      (x862-new-vstack-lcell :reserved *x862-target-lcell-size* 0 nil))
    5749                     (x862-lri seg x8664::temp1 (ash flags *x862-target-fixnum-shift*))
     5786                    (x862-lri seg *x862-temp1* (ash flags *x862-target-fixnum-shift*))
    57505787                    (unless (= nprev 0)
    57515788                      (x862-lri seg *x862-imm0* (ash nprev *x862-target-fixnum-shift*)))
     
    58215858                (! ref-constant reg (x86-immediate-label (car constant))))))
    58225859          (when (and (not (or opt rest keys))
    5823                      (<= max-args $numx8664argregs)
     5860                     (<= max-args *x862-target-num-arg-regs*)
    58245861                     (not (some #'null arg-regs)))
    58255862            (setq *x862-tail-vsp* *x862-vstack*
     
    58375874            (do* ((vars arg-regs (cdr vars))
    58385875                  (arg-reg-numbers (target-arch-case
     5876                                    (:x8632 (list *x862-arg-z* *x862-arg-y*))
    58395877                                    (:x8664 (list *x862-arg-z* *x862-arg-y* x8664::arg_x))))
    58405878                  (arg-reg-num (pop arg-reg-numbers) (pop arg-reg-numbers)))
     
    73097347                    (+ nbytes *x862-target-node-size*
    73107348                       (1- *x862-target-dnode-size*))) #x8000))
    7311         (let* ((header *x862-imm0*)
    7312                (physsize x8664::imm1))
    7313           (x862-lri seg header (arch::make-vheader nelements subtag))
    7314           (x862-lri seg physsize (- (* (ceiling (+ nbytes *x862-target-node-size*) *x862-target-dnode-size*)
    7315                                        *x862-target-dnode-size*)
    7316                                     (target-arch-case
    7317                                      (:x8632 x8632::fulltag-misc)
    7318                                      (:x8664 x8664::fulltag-misc))))
     7349        (let* ((header *x862-imm0*)
     7350               (n (- (* (ceiling (+ nbytes *x862-target-node-size*) *x862-target-dnode-size*) *x862-target-dnode-size*)
     7351                     (target-arch-case
     7352                      (:x8632 x8632::fulltag-misc)
     7353                      (:x8664 x8664::fulltag-misc))))) ;target::fulltag-misc?
     7354          (x862-lri seg header (arch::make-vheader nelements subtag))
     7355          (target-arch-case
     7356           (:x8632
     7357            (! setup-uvector-allocation n))
     7358           (:x8664
     7359            (x862-lri seg x8664::imm1 n)))
    73197360          (ensuring-node-target (target vreg)
    73207361            (! %allocate-uvector target)))
     
    79317972  (^))
    79327973
    7933 ;;; xxx --- does anyone use this?
    79347974(defx862 x862-%lisp-word-ref %lisp-word-ref (seg vreg xfer base offset)
    79357975  (let* ((fixoffset (acode-fixnum-form-p offset)))
     
    80588098
    80598099(defx862 x862-generic-aref2 general-aref2 (seg vreg xfer arr i j)
     8100  (target-arch-case
     8101   (:x8632 (error "not for x8632 yet")))
    80608102  (let* ((atype0 (acode-form-type arr t))
    80618103         (ctype (if atype0 (specifier-type atype0)))
     
    81098151
    81108152(defx862 x862-general-aref3 general-aref3 (seg vreg xfer arr i j k)
     8153  (target-arch-case
     8154   (:x8632 (error "not for x8632 yet")))
    81118155  (let* ((atype0 (acode-form-type arr t))
    81128156         (ctype (if atype0 (specifier-type atype0)))
     
    81498193                                         
    81508194(defx862 x862-general-aset2 general-aset2 (seg vreg xfer arr i j new)
     8195  (target-arch-case
     8196   (:x8632 (error "not for x8632 yet")))
    81518197  (let* ((atype0 (acode-form-type arr t))
    81528198         (ctype (if atype0 (specifier-type atype0)))
     
    81868232
    81878233(defx862 x862-general-aset3 general-aset3 (seg vreg xfer arr i j k new)
     8234  (target-arch-case
     8235   (:x8632 (error "not for x8632 yet")))
    81888236  (let* ((atype0 (acode-form-type arr t))
    81898237         (ctype (if atype0 (specifier-type atype0)))
Note: See TracChangeset for help on using the changeset viewer.