mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-07-21 10:51:35 +00:00
HV: refine excp/external_interrupt_save_frame and excp_rsvd
There are lines of repeated codes in excp/external_interrupt_save_frame and excp_rsvd. So, this patch defines two .macro, save_frame and restore_frame, to reduce the repeated codes. No functional change. Tracked-On: #3886 Acked-by: Eddie Dong <eddie.dong@intel.com> Signed-off-by: Kaige Fu <kaige.fu@intel.com>
This commit is contained in:
parent
7f96465407
commit
fb346a6c11
@ -257,13 +257,7 @@ vector =0x20
|
||||
vector = vector + 1
|
||||
.endr
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Common entry point for defined exceptions
|
||||
*/
|
||||
.align 8
|
||||
excp_save_frame:
|
||||
.macro save_frame
|
||||
pushq %r15
|
||||
pushq %r14
|
||||
pushq %r13
|
||||
@ -281,12 +275,11 @@ excp_save_frame:
|
||||
pushq %rcx
|
||||
pushq %rax
|
||||
|
||||
|
||||
/* Put current stack pointer into 1st param register (rdi) */
|
||||
movq %rsp, %rdi
|
||||
.endm
|
||||
|
||||
call dispatch_exception
|
||||
|
||||
.macro restore_frame
|
||||
popq %rax
|
||||
popq %rcx
|
||||
popq %rdx
|
||||
@ -306,6 +299,18 @@ excp_save_frame:
|
||||
|
||||
/* Skip vector and error code*/
|
||||
add $16, %rsp
|
||||
.endm
|
||||
|
||||
/*
|
||||
* Common entry point for defined exceptions
|
||||
*/
|
||||
.align 8
|
||||
excp_save_frame:
|
||||
save_frame
|
||||
|
||||
call dispatch_exception
|
||||
|
||||
restore_frame
|
||||
|
||||
iretq
|
||||
|
||||
@ -317,47 +322,11 @@ excp_save_frame:
|
||||
*/
|
||||
.align 8
|
||||
excp_rsvd:
|
||||
pushq %r15
|
||||
pushq %r14
|
||||
pushq %r13
|
||||
pushq %r12
|
||||
pushq %r11
|
||||
pushq %r10
|
||||
pushq %r9
|
||||
pushq %r8
|
||||
pushq %rdi
|
||||
pushq %rsi
|
||||
pushq %rbp
|
||||
pushq %rsp
|
||||
pushq %rbx
|
||||
pushq %rdx
|
||||
pushq %rcx
|
||||
pushq %rax
|
||||
|
||||
/* Put current stack pointer into 1st param register (rdi) */
|
||||
movq %rsp, %rdi
|
||||
save_frame
|
||||
|
||||
call dispatch_exception
|
||||
|
||||
popq %rax
|
||||
popq %rcx
|
||||
popq %rdx
|
||||
popq %rbx
|
||||
popq %rsp
|
||||
popq %rbp
|
||||
popq %rsi
|
||||
popq %rdi
|
||||
popq %r8
|
||||
popq %r9
|
||||
popq %r10
|
||||
popq %r11
|
||||
popq %r12
|
||||
popq %r13
|
||||
popq %r14
|
||||
popq %r15
|
||||
|
||||
/* Skip vector and error code*/
|
||||
add $16, %rsp
|
||||
restore_frame
|
||||
|
||||
iretq
|
||||
|
||||
@ -368,25 +337,7 @@ excp_rsvd:
|
||||
*/
|
||||
.align 8
|
||||
external_interrupt_save_frame:
|
||||
pushq %r15
|
||||
pushq %r14
|
||||
pushq %r13
|
||||
pushq %r12
|
||||
pushq %r11
|
||||
pushq %r10
|
||||
pushq %r9
|
||||
pushq %r8
|
||||
pushq %rdi
|
||||
pushq %rsi
|
||||
pushq %rbp
|
||||
pushq %rsp
|
||||
pushq %rbx
|
||||
pushq %rdx
|
||||
pushq %rcx
|
||||
pushq %rax
|
||||
|
||||
/* Put current stack pointer into 1st param register (rdi) */
|
||||
movq %rsp, %rdi
|
||||
save_frame
|
||||
|
||||
call dispatch_interrupt
|
||||
|
||||
@ -395,25 +346,7 @@ external_interrupt_save_frame:
|
||||
* are for Guest.
|
||||
*/
|
||||
|
||||
popq %rax
|
||||
popq %rcx
|
||||
popq %rdx
|
||||
popq %rbx
|
||||
popq %rsp
|
||||
popq %rbp
|
||||
popq %rsi
|
||||
popq %rdi
|
||||
popq %r8
|
||||
popq %r9
|
||||
popq %r10
|
||||
popq %r11
|
||||
popq %r12
|
||||
popq %r13
|
||||
popq %r14
|
||||
popq %r15
|
||||
|
||||
/* Skip vector and error code*/
|
||||
add $16, %rsp
|
||||
restore_frame
|
||||
|
||||
iretq
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user