[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2] Reduce assembly code size of exception entry points
On 14.02.2024 11:35, Frediano Ziglio wrote: > We just pushed a 8-bytes zero This part is now somewhat stale. > and exception constants are > small so we can just write a single byte saving 3 bytes for > instruction. > With ENDBR64 this reduces the size of many entry points from 32 to > 16 bytes (due to alignment). > Similar code is already used in autogen_stubs. > > Signed-off-by: Frediano Ziglio <frediano.ziglio@xxxxxxxxx> > -- > v2: > - added missing entry points; What about entry_int82? > @@ -653,7 +653,7 @@ END(ret_from_intr) > .section .init.text, "ax", @progbits > FUNC(early_page_fault) > ENDBR64 > - movl $X86_EXC_PF, 4(%rsp) > + movb $X86_EXC_PF, 4(%rsp) > SAVE_ALL > movq %rsp, %rdi > call do_early_page_fault Between this and the next hunk there's also entry_PF. Jan > @@ -898,105 +898,105 @@ END(handle_exception) > FUNC(entry_DE) > ENDBR64 > pushq $0 > - movl $X86_EXC_DE, 4(%rsp) > + movb $X86_EXC_DE, 4(%rsp) > jmp handle_exception > END(entry_DE) > > FUNC(entry_MF) > ENDBR64 > pushq $0 > - movl $X86_EXC_MF, 4(%rsp) > + movb $X86_EXC_MF, 4(%rsp) > jmp handle_exception > END(entry_MF) > > FUNC(entry_XM) > ENDBR64 > pushq $0 > - movl $X86_EXC_XM, 4(%rsp) > + movb $X86_EXC_XM, 4(%rsp) > jmp handle_exception > END(entry_XM) > > FUNC(entry_NM) > ENDBR64 > pushq $0 > - movl $X86_EXC_NM, 4(%rsp) > + movb $X86_EXC_NM, 4(%rsp) > jmp handle_exception > END(entry_NM) > > FUNC(entry_DB) > ENDBR64 > pushq $0 > - movl $X86_EXC_DB, 4(%rsp) > + movb $X86_EXC_DB, 4(%rsp) > jmp handle_ist_exception > END(entry_DB) > > FUNC(entry_BP) > ENDBR64 > pushq $0 > - movl $X86_EXC_BP, 4(%rsp) > + movb $X86_EXC_BP, 4(%rsp) > jmp handle_exception > END(entry_BP) > > FUNC(entry_OF) > ENDBR64 > pushq $0 > - movl $X86_EXC_OF, 4(%rsp) > + movb $X86_EXC_OF, 4(%rsp) > jmp handle_exception > END(entry_OF) > > FUNC(entry_BR) > ENDBR64 > pushq $0 > - movl $X86_EXC_BR, 4(%rsp) > + movb $X86_EXC_BR, 4(%rsp) > jmp handle_exception > END(entry_BR) > > FUNC(entry_UD) > ENDBR64 > pushq $0 > - movl $X86_EXC_UD, 4(%rsp) > + movb $X86_EXC_UD, 4(%rsp) > jmp handle_exception > END(entry_UD) > > FUNC(entry_TS) > ENDBR64 > - movl $X86_EXC_TS, 4(%rsp) > + movb $X86_EXC_TS, 4(%rsp) > jmp handle_exception > END(entry_TS) > > FUNC(entry_NP) > ENDBR64 > - movl $X86_EXC_NP, 4(%rsp) > + movb $X86_EXC_NP, 4(%rsp) > jmp handle_exception > END(entry_NP) > > FUNC(entry_SS) > ENDBR64 > - movl $X86_EXC_SS, 4(%rsp) > + movb $X86_EXC_SS, 4(%rsp) > jmp handle_exception > END(entry_SS) > > FUNC(entry_GP) > ENDBR64 > - movl $X86_EXC_GP, 4(%rsp) > + movb $X86_EXC_GP, 4(%rsp) > jmp handle_exception > END(entry_GP) > > FUNC(entry_AC) > ENDBR64 > - movl $X86_EXC_AC, 4(%rsp) > + movb $X86_EXC_AC, 4(%rsp) > jmp handle_exception > END(entry_AC) > > FUNC(entry_CP) > ENDBR64 > - movl $X86_EXC_CP, 4(%rsp) > + movb $X86_EXC_CP, 4(%rsp) > jmp handle_exception > END(entry_CP) > > FUNC(entry_DF) > ENDBR64 > - movl $X86_EXC_DF, 4(%rsp) > + movb $X86_EXC_DF, 4(%rsp) > /* Set AC to reduce chance of further SMAP faults */ > ALTERNATIVE "", stac, X86_FEATURE_XEN_SMAP > SAVE_ALL > @@ -1022,7 +1022,7 @@ END(entry_DF) > FUNC(entry_NMI) > ENDBR64 > pushq $0 > - movl $X86_EXC_NMI, 4(%rsp) > + movb $X86_EXC_NMI, 4(%rsp) > END(entry_NMI) > > FUNC(handle_ist_exception) > @@ -1158,7 +1158,7 @@ END(handle_ist_exception) > FUNC(entry_MC) > ENDBR64 > pushq $0 > - movl $X86_EXC_MC, 4(%rsp) > + movb $X86_EXC_MC, 4(%rsp) > jmp handle_ist_exception > END(entry_MC) >
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |