Changeset 11449


Ignore:
Timestamp:
Dec 1, 2008, 8:53:55 PM (11 years ago)
Author:
rme
Message:

.SPmisc_set and .SPmisc_ref: when passing more than 2 args to the
error handling function, pop the return address before pushing the
reserved frame and stacks args. Push the return address back on
before signaling the error.

File:
1 edited

Legend:

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

    r11376 r11449  
    414414        __(ret)
    415415local_label(misc_ref_invalid):
     416        __(pop %temp1)  /* return addr */
    416417        __(push $reserved_frame_marker)
    417418        __(push $reserved_frame_marker)
    418419        __(push $XBADVEC)
     420        __(push %temp1)
    419421        __(set_nargs(3))
    420422        __(jmp _SPksignalerr)
     
    816818        __(movl %arg_z,%arg_y)
    817819        __(movl %temp0,%arg_z)
     820        __(pop %temp1)  /* return addr */
    818821        __(push $reserved_frame_marker)
    819822        __(push $reserved_frame_marker)
    820823        __(push $XNOTELT)
     824        __(push %temp1)
    821825        __(set_nargs(3))
    822826        __(jmp _SPksignalerr)
     
    915919        __(ret)
    916920local_label(misc_set_invalid):
     921        __(pop %temp1)  /* return addr */
    917922        __(push $reserved_frame_marker)
    918923        __(push $reserved_frame_marker)
    919924        __(push $XSETBADVEC)
    920925        __(push %temp0)
     926        __(push %temp1)
    921927        __(set_nargs(4))
    922928        __(jmp _SPksignalerr)
Note: See TracChangeset for help on using the changeset viewer.