Changeset 7336


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

xdump IA-32 clfuns.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ia32/lib/nfcomp.lisp

    r7240 r7336  
    14231423;;; xxx add ia-32 support here
    14241424(defun fasl-xdump-clfun (f)
    1425   (let* ((code (uvref f 0))
    1426          (code-size (dpb (uvref code 3)
    1427                          (byte 8 24)
    1428                          (dpb (uvref code 2)
    1429                               (byte 8 16)
    1430                               (dpb (uvref code 1)
    1431                                    (byte 8 8)
    1432                                    (uvref code 0)))))
    1433          (function-size (ash (uvsize code) -3)))
    1434     (assert (= (- function-size code-size) (1- (uvsize f))))
    1435     (fasl-out-opcode $fasl-clfun f)
    1436     (fasl-out-count function-size)
    1437     (fasl-out-count code-size)
    1438     (fasl-out-ivect code 0 (ash code-size 3))
    1439     (do* ((i 1 (1+ i))
    1440           (n (uvsize f)))
    1441          ((= i n))
    1442       (declare (fixnum i n))
    1443       (fasl-dump-form (%svref f i)))))
    1444    
    1445                          
    1446 
    1447 
     1425  (target-arch-case
     1426   (:x8632
     1427    (let* ((code (uvref f 0))
     1428           (function-size (ash (uvsize code) -2))
     1429           (imm-words (dpb (uvref code 1) (byte 8 8) (uvref code 0)))
     1430           (imm-bytes (ash imm-words 2))
     1431           (other-words (- function-size imm-words)))
     1432      (assert (= other-words (1- (uvsize f))))
     1433      (fasl-out-opcode $fasl-clfun f)
     1434      (fasl-out-count imm-words)
     1435      (fasl-out-count function-size)
     1436      (fasl-out-ivect code 0 imm-bytes)
     1437      (do ((i 1 (1+ i))
     1438           (n (uvsize f)))
     1439          ((= i n))
     1440        (declare (fixnum i n))
     1441        (fasl-dump-form (%svref f i)))))
     1442   (:x8664
     1443    (let* ((code (uvref f 0))
     1444           (code-size (dpb (uvref code 3)
     1445                           (byte 8 24)
     1446                           (dpb (uvref code 2)
     1447                                (byte 8 16)
     1448                                (dpb (uvref code 1)
     1449                                     (byte 8 8)
     1450                                     (uvref code 0)))))
     1451           (function-size (ash (uvsize code) -3)))
     1452      (assert (= (- function-size code-size) (1- (uvsize f))))
     1453      (fasl-out-opcode $fasl-clfun f)
     1454      (fasl-out-count function-size)
     1455      (fasl-out-count code-size)
     1456      (fasl-out-ivect code 0 (ash code-size 3))
     1457      (do* ((i 1 (1+ i))
     1458            (n (uvsize f)))
     1459           ((= i n))
     1460        (declare (fixnum i n))
     1461        (fasl-dump-form (%svref f i)))))))
    14481462
    14491463(defun fasl-dump-codevector (c)
Note: See TracChangeset for help on using the changeset viewer.