Changeset 11251 for trunk/source/level-1


Ignore:
Timestamp:
Oct 30, 2008, 1:31:43 PM (11 years ago)
Author:
gb
Message:

In the 32-bit version of %XERR-DISP, try to only look at the low
3 bits of the first opcode byte for UUOs that encode register numbers
in the low 4 bits. (Only the low 3 bits can be significant on ia32;
bit 3 may be set to avoid conflicts with software interrupts used
for system calls on some platforms (Solaris.))

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/level-1/x86-error-signal.lisp

    r10338 r11251  
    270270                   (setq skip (%check-anchored-uuo xcf 3))
    271271                   (setq *error-reentry-count* 0)
    272                    (setf (encoded-gpr-lisp xp (ldb (byte 4 0) op1))
     272                   (setf (encoded-gpr-lisp xp (ldb (byte 3 0) op1))
    273273                         (%slot-unbound-trap
    274274                          (encoded-gpr-lisp xp (ldb (byte 4 4) op2))
     
    282282                                              (encoded-gpr-lisp
    283283                                               xp
    284                                                (ldb (byte 4 0) op1)))
     284                                               (ldb (byte 3 0) op1)))
    285285                                             frame-ptr))
    286286                  ((< op1 #xb0)
     
    289289                                       (list (encoded-gpr-lisp
    290290                                              xp
    291                                               (ldb (byte 4 0) op1)))
     291                                              (ldb (byte 3 0) op1)))
    292292                                       frame-ptr))
    293293                  ((< op1 #xc0)
     
    297297                    (list (encoded-gpr-lisp
    298298                           xp
    299                            (ldb (byte 4 0) op1))
     299                           (ldb (byte 3 0) op1))
    300300                          (logandc2 op2 arch::error-type-error))
    301301                    frame-ptr))
     
    374374                                             :tag (encoded-gpr-lisp
    375375                                                   xp
    376                                                    (ldb (byte 4 0) op1)))
     376                                                   (ldb (byte 3 0) op1)))
    377377                             nil frame-ptr)
    378378                     (let* ((typename
     
    391391                                               :datum (encoded-gpr-lisp
    392392                                                       xp
    393                                                        (ldb (byte 4 0) op1))
     393                                                       (ldb (byte 3 0) op1))
    394394                                               :expected-type typename)
    395395                               nil
     
    400400                                           :datum (encoded-gpr-lisp
    401401                                                   xp
    402                                                    (ldb (byte 4 0) op1))
     402                                                   (ldb (byte 3 0) op1))
    403403                                           :expected-type 'list)
    404404                           nil
     
    409409                                           :datum (encoded-gpr-lisp
    410410                                                   xp
    411                                                    (ldb (byte 4 0) op1))
     411                                                   (ldb (byte 3 0) op1))
    412412                                           :expected-type 'fixnum)
    413413                           nil
Note: See TracChangeset for help on using the changeset viewer.