Changeset 7812


Ignore:
Timestamp:
Dec 4, 2007, 9:57:48 PM (13 years ago)
Author:
rme
Message:

ucontext stuff for Darwin/X8632

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ia32/level-1/x86-trap-support.lisp

    r6270 r7812  
    120120      14                                ;r14
    121121      15                                ;r15
     122      )))
     123
     124#+darwinx8632-target
     125(progn
     126  (eval-when (:compile-toplevel :execute)
     127    (def-foreign-type nil
     128        (:struct :portable_mcontext
     129                 (:es :x86_exception_state32_t)
     130                 (:ss :x86_thread_state32_t)
     131                 (:fs :x86_float_state32_t)))
     132    (def-foreign-type nil
     133        (:struct :portable_uc_stack
     134                 (:ss_sp (:* :void))
     135                 (:ss_size (:unsigned 32))
     136                 (:ss_flags  (:signed 32))))
     137    (def-foreign-type nil
     138        (:struct :portable_ucontext
     139                 (:onstack (:signed 32))
     140                 (:sigmask (:unsigned 32))
     141                 (:stack (:struct :portable_uc_stack))
     142                 (:link :address)
     143                 (:uc_mcsize (:unsigned 32))
     144                 (:uc_mcontext (:* (:struct :portable_mcontext))))))
     145
     146  (defconstant gp-regs-offset 0)
     147
     148  (defmacro xp-gp-regs (xp)
     149    `(pref (pref ,xp :portable_ucontext.uc_mcontext) :portable_mcontext.ss))
     150
     151  (defconstant flags-register-offset 9)
     152  (defconstant eip-register-offset 10)
     153  (defparameter *encoded-gpr-to-indexed-gpr*
     154    #(0                                 ;eax
     155      2                                 ;ecx
     156      3                                 ;edx
     157      1                                 ;ebx
     158      7                                 ;esp
     159      6                                 ;ebp
     160      5                                 ;esi
     161      4                                 ;edi
    122162      )))
    123163
Note: See TracChangeset for help on using the changeset viewer.