Changeset 11008


Ignore:
Timestamp:
Oct 7, 2008, 8:43:27 PM (11 years ago)
Author:
gb
Message:

Ensure that 'ensure_safe_for_string_operations()' is in the .text section.
(Ensure that it exists on win64).
Only call it (and maybe flip the bit) if we're sure that the exception's
an exception.

Location:
trunk/source/lisp-kernel
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/lisp-kernel/x86-asmutils32.s

    r11002 r11008  
    235235C(restore_windows_context_load_rcx):  .long Xrestore_windows_context_load_rcx
    236236C(restore_windows_context_iret): .long Xrestore_windows_context_iret
    237 
     237        .text
     238       
    238239        __ifdef([WIN32_ES_HACK])
    239240/* Something that we shouldn't return to */
  • trunk/source/lisp-kernel/x86-asmutils64.s

    r10922 r11008  
    285285C(restore_windows_context_load_rcx):  .quad Xrestore_windows_context_load_rcx
    286286C(restore_windows_context_iret): .quad Xrestore_windows_context_iret
    287 
     287        .text
    288288
    289289/* Something that we shouldn't return to */
    290290_exportfn(C(windows_halt))
    291291        __(hlt)
    292 _endfn                               
     292_endfn         
     293_exportfn(C(ensure_safe_for_string_operations))
     294        __(cld)
     295        __(ret)
     296_endfn                                       
    293297        __endif
    294298        _endfile
  • trunk/source/lisp-kernel/x86-exceptions.c

    r11002 r11008  
    18361836  DWORD code = exception_pointers->ExceptionRecord->ExceptionCode;
    18371837
    1838   ensure_safe_for_string_operations();
     1838
    18391839 
    18401840  if ((code & 0x80000000L) == 0) {
     
    18461846    CONTEXT *context = exception_pointers->ContextRecord;
    18471847   
     1848    ensure_safe_for_string_operations();
     1849
    18481850    if ((current_sp >= cs->low) &&
    18491851        (current_sp < cs->high)) {
Note: See TracChangeset for help on using the changeset viewer.