Ignore:
Timestamp:
Sep 8, 2008, 5:55:20 AM (11 years ago)
Author:
gb
Message:

Win64 signal-context parsing stuff.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/level-1/x86-trap-support.lisp

    r10488 r10635  
    156156      1                                 ;r14
    157157      0                                 ;r15
     158      )))
     159
     160#+win64-target
     161(progn
     162  (defconstant gp-regs-offset (get-field-offset #>CONTEXT.Rax))
     163  (defmacro xp-gp-regs (xp) xp)
     164  (defconstant rip-register-offset 16)
     165  (defun xp-mxcsr (xp)
     166    (pref xp #>CONTEXT.MxCsr))
     167  (defparameter *encoded-gpr-to-indexed-gpr*
     168    #(0                                 ;rax
     169      1                                 ;rcx
     170      2                                 ;rdx
     171      3                                 ;rbx
     172      4                                 ;rsp
     173      5                                 ;rbp
     174      6                                 ;rsi
     175      7                                 ;rdi
     176      8                                 ;r8
     177      9                                 ;r9
     178      10                                ;r10
     179      11                                ;r11
     180      12                                ;r12
     181      13                                ;r13
     182      14                                ;r14
     183      15                                ;r15
    158184      )))
    159185
     
    213239  (setf (indexed-gpr-macptr xp (aref *encoded-gpr-to-indexed-gpr* gpr)) new))
    214240(defun xp-flags-register (xp)
     241  #+windows-target (pref xp #>CONTEXT.EFlags)
     242  #-windows-target
    215243  #+x8664-target
    216244  (%get-signed-long-long (xp-gp-regs xp) (+ gp-regs-offset (ash flags-register-offset x8664::fixnumshift)))
Note: See TracChangeset for help on using the changeset viewer.