Changeset 7962
- Timestamp:
- Dec 27, 2007, 4:31:01 PM (17 years ago)
- File:
-
- 1 edited
-
branches/ia32/compiler/X86/X8632/x8632-arch.lisp (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/ia32/compiler/X86/X8632/x8632-arch.lisp
r7878 r7962 170 170 (defx86reg xfn temp1) 171 171 172 (defx86reg next-method-context temp0) 173 172 174 ;;; This follows the ppc32 scheme pretty closely. 173 175 … … 489 491 (define-fixedsized-object value-cell 490 492 value) 493 494 (define-storage-layout lisp-frame 0 495 backptr 496 return-address 497 xtra) 498 499 (define-storage-layout xcf 0 ;"exception callback frame" 500 backptr 501 return-address ; always 0 502 nominal-function 503 relative-pc 504 containing-object 505 xp 506 ra0 507 ) 491 508 492 509 ;;; The kernel uses these (rather generically named) structures … … 534 551 node-regs-mask ; bit set means corresponding reg contains node 535 552 linear 553 ;; save0 *must* be aligned on a 16-byte boundary! 554 save0 ;spill area for node registers 555 save1 ; (caller saved) 556 save2 ; probably saved/restored in 557 save3 ; callout/trap handlers 536 558 save-ebp ; lisp frame ptr for foreign code 537 559 lisp-mxcsr … … 1148 1170 ,@body))) 1149 1171 1172 ;;; When found at a tagged return address, the instruction 1173 ;;; (movl ($ imm32) (% fn)) 1174 ;;; lets the runtime easily map a return address to the containing 1175 ;;; function. 1176 ;;; 1177 ;;; The notation ($ :self) is used in the assembler to mean "a 32-bit 1178 ;;; immediate whose offset will be remembered in a table at the end of 1179 ;;; the function object." 1180 ;;; 1181 ;;; Before the function is made executable (or when the GC moves the 1182 ;;; function), these :self immediates are filled in with the actual 1183 ;;; address of the function. 1184 1185 (defconstant recover-fn-opcode-byte #b10111111) ;when %fn is %edi 1186 (defconstant recover-fn-address-offset 1) 1187 1150 1188 (provide "X8632-ARCH")
Note:
See TracChangeset
for help on using the changeset viewer.
