Changeset 13984 for branches


Ignore:
Timestamp:
Jul 19, 2010, 2:41:16 PM (9 years ago)
Author:
gb
Message:

Make %ERR-DISP callback return number of bytes to advance PC on return
from UUO handling.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/arm/level-1/arm-error-signal.lisp

    r13968 r13984  
    120120                                  :unsigned-fullword arg
    121121                                  :unsigned-fullword fnreg
    122                                   :unsigned-fullword relative-pc)
    123   (let* ((fn (unless (eql 0 fnreg) (xp-gpr-lisp xp fnreg))))
     122                                  :unsigned-fullword relative-pc
     123                                  :int)
     124  (let* ((fn (unless (eql 0 fnreg) (xp-gpr-lisp xp fnreg)))
     125         (delta 0))
    124126    (with-xp-stack-frames (xp fn frame-ptr)
    125127      (with-error-reentry-detection
    126128          (cond
    127129            ((eql 0 error-number)       ; Hopefully a UUO.
     130             (setq delta 4)
    128131             (if (/= (logand arg #x0ff000f0) #x07f000f0)
    129132               (%error "Unknown non-UUO: #x~x" (list arg) frame-ptr)
     
    204207                                 nil frame-ptr))
    205208                        (5
     209                         (setq delta 0)
    206210                         (handle-udf-call xp frame-ptr))
    207211                        (6
     
    243247            (t
    244248             (error "%errdisp callback: error-number = ~d, arg = #x~x, fnreg = ~d, rpc = ~d"
    245                     error-number arg fnreg relative-pc)))))))
     249                    error-number arg fnreg relative-pc)))))
     250    delta))
Note: See TracChangeset for help on using the changeset viewer.