Changeset 8064
- Timestamp:
- Jan 14, 2008, 6:35:55 PM (17 years ago)
- File:
-
- 1 edited
-
branches/ia32/xdump/xfasload.lisp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/ia32/xdump/xfasload.lisp
r7287 r8064 1659 1659 (setq *xload-loading-file-source-file* path))) 1660 1660 1661 ;;; Use the offsets in the self-reference table to replace the :self 1662 ;;; in (movl ($ :self) (% fn)) wih the function's actual address. 1663 ;;; (x8632 only) 1664 (defun xload-fixup-self-references (addr) 1665 (let* ((imm-word-count (xload-u16-at-address 1666 (+ addr *xload-target-misc-data-offset*)))) 1667 (do* ((i (- imm-word-count 2) (1- i)) 1668 (offset (xload-%fullword-ref addr i) (xload-%fullword-ref addr i))) 1669 ((zerop offset)) 1670 (setf (xload-u8-at-address (+ *xload-target-misc-header-offset* 1671 addr 1672 offset 1673 0)) 1674 (ldb (byte 8 0) addr) 1675 (xload-u8-at-address (+ *xload-target-misc-header-offset* 1676 addr 1677 offset 1678 1)) 1679 (ldb (byte 8 8) addr) 1680 (xload-u8-at-address (+ *xload-target-misc-header-offset* 1681 addr 1682 offset 1683 2)) 1684 (ldb (byte 8 16) addr) 1685 (xload-u8-at-address (+ *xload-target-misc-header-offset* 1686 addr 1687 offset 1688 3)) 1689 (ldb (byte 8 24) addr))))) 1690 1661 1691 (defxloadfaslop $fasl-clfun (s) 1662 1692 (let* ((size-in-elements (%fasl-read-count s)) … … 1675 1705 (%fasl-read-n-bytes s v (+ o *xload-target-misc-data-offset*) 1676 1706 (ash size-of-code *xload-target-fixnumshift*)) 1707 (target-arch-case 1708 (:x8632 (xload-fixup-self-references vector))) 1677 1709 (do* ((numconst (- size-in-elements size-of-code)) 1678 1710 (i 0 (1+ i))
Note:
See TracChangeset
for help on using the changeset viewer.
