ChangeSet 1.2206, 2005/03/26 13:28:10-08:00, [EMAIL PROTECTED]

        [PATCH] m68knommu: optimize trap handling asm code
        
        Optimize the trap handling asm code for m68knommu targets.
        Mostly this is using instructions that use fewer bytes to encode.
        Also remove local definitions for constants that are automatically
        generated in the asm-offsets header.
        
        Original patch came from Philippe De Muyter <[EMAIL PROTECTED]>
        
        Signed-off-by: Greg Ungerer <[EMAIL PROTECTED]>
        Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>



 entry.h |   53 ++++++++++++++++++++++++-----------------------------
 1 files changed, 24 insertions(+), 29 deletions(-)


diff -Nru a/include/asm-m68knommu/entry.h b/include/asm-m68knommu/entry.h
--- a/include/asm-m68knommu/entry.h     2005-03-26 17:27:50 -08:00
+++ b/include/asm-m68knommu/entry.h     2005-03-26 17:27:50 -08:00
@@ -22,8 +22,9 @@
  *     24(sp) - orig_d0
  *     28(sp) - stack adjustment
  *     2C(sp) - [ sr              ] [ format & vector ]
- *     2E(sp) - [ pc              ] [ sr              ]
- *     30(sp) - [ format & vector ] [ pc              ]
+ *     2E(sp) - [ pc-hiword       ] [ sr              ]
+ *     30(sp) - [ pc-loword       ] [ pc-hiword       ]
+ *     32(sp) - [ format & vector ] [ pc-loword       ]
  *               ^^^^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^^^^
  *                     M68K              COLDFIRE
  */
@@ -42,12 +43,6 @@
 
 LENOSYS = 38
 
-LD0            = 0x20
-LORIG_D0       = 0x24
-LFORMATVEC     = 0x2c
-LSR            = 0x2e
-LPC            = 0x30
-
 #define SWITCH_STACK_SIZE (6*4+4)      /* Includes return address */
 
 /*
@@ -72,36 +67,36 @@
        addql   #8,sw_usp               /* remove exception */
        movel   sw_ksp,%sp              /* kernel sp */
        subql   #8,%sp                  /* room for exception */
-       clrl    [EMAIL PROTECTED]                       /* stk_adj */
+       clrl    [EMAIL PROTECTED]                       /* stkadj */
        movel   %d0,[EMAIL PROTECTED]           /* orig d0 */
        movel   %d0,[EMAIL PROTECTED]           /* d0 */
-       subl    #32,%sp                 /* space for 8 regs */
+       lea     %sp@(-32),%sp           /* space for 8 regs */
        moveml  %d1-%d5/%a0-%a2,%sp@
        movel   sw_usp,%a0              /* get usp */
-       moveml  %a0@(-8),%d1-%d2        /* get exception */
-       moveml  %d1-%d2,%sp@(LFORMATVEC) /* copy exception */
+       movel   [EMAIL PROTECTED],%sp@(PT_PC)   /* copy exception program 
counter */
+       movel   [EMAIL PROTECTED],%sp@(PT_FORMATVEC)/* copy exception 
format/vector/sr */
        bra     7f
        6:
-       clrl    [EMAIL PROTECTED]                       /* stk_adj */
+       clrl    [EMAIL PROTECTED]                       /* stkadj */
        movel   %d0,[EMAIL PROTECTED]           /* orig d0 */
        movel   %d0,[EMAIL PROTECTED]           /* d0 */
-       subl    #32,%sp                 /* space for 7 regs */
+       lea     %sp@(-32),%sp           /* space for 8 regs */
        moveml  %d1-%d5/%a0-%a2,%sp@
        7:
 .endm
 
 .macro RESTORE_ALL
-       btst    #5,%sp@(LSR)            /* going user? */
+       btst    #5,%sp@(PT_SR)          /* going user? */
        bnes    8f                      /* no, skip */
        move    #0x2700,%sr             /* disable intrs */
        movel   sw_usp,%a0              /* get usp */
-       moveml  %sp@(LFORMATVEC),%d1-%d2 /* copy exception */
-       moveml  %d1-%d2,%a0@(-8)
+       movel   %sp@(PT_PC),[EMAIL PROTECTED]   /* copy exception program 
counter */
+       movel   %sp@(PT_FORMATVEC),[EMAIL PROTECTED]/* copy exception 
format/vector/sr */
        moveml  %sp@,%d1-%d5/%a0-%a2
-       addl    #32,%sp                 /* space for 8 regs */
+       lea     %sp@(32),%sp            /* space for 8 regs */
        movel   [EMAIL PROTECTED],%d0
        addql   #4,%sp                  /* orig d0 */
-       addl    [EMAIL PROTECTED],%sp           /* stk adj */
+       addl    [EMAIL PROTECTED],%sp           /* stkadj */
        addql   #8,%sp                  /* remove exception */
        movel   %sp,sw_ksp              /* save ksp */
        subql   #8,sw_usp               /* set exception */
@@ -109,10 +104,10 @@
        rte
        8:
        moveml  %sp@,%d1-%d5/%a0-%a2
-       addl    #32,%sp                 /* space for 8 regs */
+       lea     %sp@(32),%sp            /* space for 8 regs */
        movel   [EMAIL PROTECTED],%d0
        addql   #4,%sp                  /* orig d0 */
-       addl    [EMAIL PROTECTED],%sp           /* stk adj */
+       addl    [EMAIL PROTECTED],%sp           /* stkadj */
        rte
 .endm
 
@@ -121,30 +116,30 @@
  */
 .macro SAVE_LOCAL
        move    #0x2700,%sr             /* disable intrs */
-       clrl    [EMAIL PROTECTED]                       /* stk_adj */
+       clrl    [EMAIL PROTECTED]                       /* stkadj */
        movel   %d0,[EMAIL PROTECTED]           /* orig d0 */
        movel   %d0,[EMAIL PROTECTED]           /* d0 */
-       subl    #32,%sp                 /* space for 8 regs */
+       lea     %sp@(-32),%sp           /* space for 8 regs */
        moveml  %d1-%d5/%a0-%a2,%sp@
 .endm
 
 .macro RESTORE_LOCAL
        moveml  %sp@,%d1-%d5/%a0-%a2
-       addl    #32,%sp                 /* space for 8 regs */
+       lea     %sp@(32),%sp            /* space for 8 regs */
        movel   [EMAIL PROTECTED],%d0
        addql   #4,%sp                  /* orig d0 */
-       addl    [EMAIL PROTECTED],%sp           /* stk adj */
+       addl    [EMAIL PROTECTED],%sp           /* stkadj */
        rte
 .endm
 
 .macro SAVE_SWITCH_STACK
-       subl    #24,%sp                 /* 6 regs */
+       lea     %sp@(-24),%sp           /* 6 regs */
        moveml  %a3-%a6/%d6-%d7,%sp@
 .endm
 
 .macro RESTORE_SWITCH_STACK
        moveml  %sp@,%a3-%a6/%d6-%d7
-       addl    #24,%sp                 /* 6 regs */
+       lea     %sp@(24),%sp            /* 6 regs */
 .endm
 
 /*
@@ -161,7 +156,7 @@
  * Standard 68k interrupt entry and exit macros.
  */
 .macro SAVE_ALL
-       clrl    [EMAIL PROTECTED]                       /* stk_adj */
+       clrl    [EMAIL PROTECTED]                       /* stkadj */
        movel   %d0,[EMAIL PROTECTED]           /* orig d0 */
        movel   %d0,[EMAIL PROTECTED]           /* d0 */
        moveml  %d1-%d5/%a0-%a2,[EMAIL PROTECTED]
@@ -171,7 +166,7 @@
        moveml  [EMAIL PROTECTED],%a0-%a2/%d1-%d5
        movel   [EMAIL PROTECTED],%d0
        addql   #4,%sp                  /* orig d0 */
-       addl    [EMAIL PROTECTED],%sp           /* stk adj */
+       addl    [EMAIL PROTECTED],%sp           /* stkadj */
        rte
 .endm
 
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to