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