public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Shenglei Zhang <shenglei.zhang@intel.com>
To: edk2-devel@lists.01.org
Cc: Hao Wu <hao.a.wu@intel.com>
Subject: [PATCH v3 12/12] SourceLevelDebugPkg/DebugAgentCommon: Remove .S files
Date: Fri, 29 Mar 2019 15:28:18 +0800	[thread overview]
Message-ID: <20190329072818.24112-13-shenglei.zhang@intel.com> (raw)
In-Reply-To: <20190329072818.24112-1-shenglei.zhang@intel.com>

.nasm file has been added for X86 arch. .S assembly code
is not required any more.
https://bugzilla.tianocore.org/show_bug.cgi?id=1594

Cc: Hao Wu <hao.a.wu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com>
---
 .../DebugAgentCommon/Ia32/AsmFuncs.S          | 415 -----------------
 .../DebugAgentCommon/X64/AsmFuncs.S           | 431 ------------------
 .../Library/DebugAgent/DxeDebugAgentLib.inf   |   2 -
 3 files changed, 848 deletions(-)
 delete mode 100644 SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/Ia32/AsmFuncs.S
 delete mode 100644 SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/X64/AsmFuncs.S

diff --git a/SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/Ia32/AsmFuncs.S b/SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/Ia32/AsmFuncs.S
deleted file mode 100644
index 30d279e80d..0000000000
--- a/SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/Ia32/AsmFuncs.S
+++ /dev/null
@@ -1,415 +0,0 @@
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   AsmFuncs.S
-#
-# Abstract:
-#
-#   Debug interrupt handle functions.
-#
-#------------------------------------------------------------------------------
-
-#include "DebugException.h"
-
-ASM_GLOBAL ASM_PFX(InterruptProcess)
-ASM_GLOBAL ASM_PFX(Exception0Handle)
-ASM_GLOBAL ASM_PFX(ExceptionStubHeaderSize)
-ASM_GLOBAL ASM_PFX(TimerInterruptHandle)
-ASM_GLOBAL ASM_PFX(CommonEntry)
-
-.macro  AGENT_HANDLER_SIGNATURE
-  .byte 0x41, 0x47, 0x54, 0x48   # AGENT_HANDLER_SIGNATURE     SIGNATURE_32('A','G','T','H')
-.endm
-
-.data
-
-ASM_PFX(ExceptionStubHeaderSize):  .long     ASM_PFX(Exception1Handle) - ASM_PFX(Exception0Handle)
-
-.text
-
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception0Handle):
-   cli
-   pushl %eax
-   mov   $0, %eax
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception1Handle):
-   cli
-   pushl %eax
-   mov   $1, %eax
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception2Handle):
-   cli
-   pushl %eax
-   mov   $2, %eax
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception3Handle):
-   cli
-   pushl %eax
-   mov   $3, %eax
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception4Handle):
-   cli
-   pushl %eax
-   mov   $4, %eax
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception5Handle):
-   cli
-   pushl %eax
-   mov   $5, %eax
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception6Handle):
-   cli
-   pushl %eax
-   mov   $6, %eax
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception7Handle):
-   cli
-   pushl %eax
-   mov   $7, %eax
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception8Handle):
-   cli
-   pushl %eax
-   mov   $8, %eax
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception9Handle):
-   cli
-   pushl %eax
-   mov   $9, %eax
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception10Handle):
-   cli
-   pushl %eax
-   mov   $10, %eax
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception11Handle):
-   cli
-   pushl %eax
-   mov   $11, %eax
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception12Handle):
-   cli
-   pushl %eax
-   mov   $12, %eax
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception13Handle):
-   cli
-   pushl %eax
-   mov   $13, %eax
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception14Handle):
-   cli
-   pushl %eax
-   mov   $14, %eax
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception15Handle):
-   cli
-   pushl %eax
-   mov   $15, %eax
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception16Handle):
-   cli
-   pushl %eax
-   mov   $16, %eax
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception17Handle):
-   cli
-   pushl %eax
-   mov   $17, %eax
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception18Handle):
-   cli
-   pushl %eax
-   mov   $18, %eax
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception19Handle):
-   cli
-   pushl %eax
-   mov   $19, %eax
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(TimerInterruptHandle):
-   cli
-   pushl %eax
-   mov   $32, %eax
-   jmp   ASM_PFX(CommonEntry)
-
-
-ASM_PFX(CommonEntry):
-
-#---------------------------------------;
-# _CommonEntry                  ;
-#----------------------------------------------------------------------------;
-# The follow algorithm is used for the common interrupt routine.
-# Entry from each interrupt with a push eax and eax=interrupt number
-#
-# +---------------------+
-# +    EFlags           +
-# +---------------------+
-# +    CS               +
-# +---------------------+
-# +    EIP              +
-# +---------------------+
-# +    Error Code       +
-# +---------------------+
-# + EAX / Vector Number +
-# +---------------------+
-# +    EBP              +
-# +---------------------+ <-- EBP
-#
-
-# We need to determine if any extra data was pushed by the exception
-  cmpl    $DEBUG_EXCEPT_DOUBLE_FAULT, %eax
-  je      NoExtrPush
-  cmpl    $DEBUG_EXCEPT_INVALID_TSS, %eax
-  je      NoExtrPush
-  cmpl    $DEBUG_EXCEPT_SEG_NOT_PRESENT, %eax
-  je      NoExtrPush
-  cmpl    $DEBUG_EXCEPT_STACK_FAULT, %eax
-  je      NoExtrPush
-  cmpl    $DEBUG_EXCEPT_GP_FAULT, %eax
-  je      NoExtrPush
-  cmpl    $DEBUG_EXCEPT_PAGE_FAULT, %eax
-  je      NoExtrPush
-  cmpl    $DEBUG_EXCEPT_ALIGNMENT_CHECK, %eax
-  je      NoExtrPush
-
-  pushl    (%esp)
-  movl     $0, 4(%esp)
-
-NoExtrPush:
-
-  pushl   %ebp
-  movl    %esp,%ebp
-
-  #
-  # Align stack to make sure that EFI_FX_SAVE_STATE_IA32 of EFI_SYSTEM_CONTEXT_IA32
-  # is 16-byte aligned
-  #
-  andl    $0xfffffff0,%esp
-  subl    $12,%esp
-
-## UINT32  Edi, Esi, Ebp, Esp, Ebx, Edx, Ecx, Eax;
-  pushl   0x4(%ebp)
-  pushl   %ebx
-  pushl   %ecx
-  pushl   %edx
-  mov     %eax, %ebx                   # save vector in ebx
-  leal    24(%ebp),%ecx
-  pushl   %ecx                         # save original ESP
-  pushl   (%ebp)
-  pushl   %esi
-  pushl   %edi
-
-## UINT32  Cr0, Cr1, Cr2, Cr3, Cr4;
-## insure FXSAVE/FXRSTOR is enabled in CR4...
-## ... while we're at it, make sure DE is also enabled...
-  mov     $1, %eax
-  pushl   %ebx                         # temporarily save value of ebx on stack
-  cpuid                                # use CPUID to determine if FXSAVE/FXRESTOR
-                                       # and DE are supported
-  popl    %ebx                         # retore value of ebx that was overwritten
-                                       # by CPUID
-  movl    %cr4, %eax
-  pushl   %eax                         # push cr4 firstly
-  testl   $BIT24, %edx                 # Test for FXSAVE/FXRESTOR support
-  jz      L1
-  orl     $BIT9, %eax                  # Set CR4.OSFXSR
-L1:
-  testl   $BIT2, %edx                  # Test for Debugging Extensions support
-  jz      L2
-  orl     $BIT3, %eax                  # Set CR4.DE
-L2:
-  movl    %eax, %cr4
-  movl    %cr3, %eax
-  pushl   %eax
-  movl    %cr2, %eax
-  pushl   %eax
-  xorl    %eax,%eax
-  pushl   %eax
-  movl    %cr0, %eax
-  pushl   %eax
-
-## UINT32  Gs, Fs, Es, Ds, Cs, Ss;
-  movl    %ss,%eax
-  pushl   %eax
-  movzwl  16(%ebp), %eax
-  pushl   %eax
-  movl    %ds,%eax
-  pushl   %eax
-  movl    %es,%eax
-  pushl   %eax
-  movl    %fs,%eax
-  pushl   %eax
-  movl    %gs,%eax
-  pushl   %eax
-
-## UINT32  Eip;
-  pushl   12(%ebp)
-
-## UINT32  Gdtr[2], Idtr[2];
-  subl    $8,%esp
-  sidt    (%esp)
-  subl    $8,%esp
-  sgdt    (%esp)
-
-## UINT32  Ldtr, Tr;
-  xorl    %eax,%eax
-  strl    %eax
-  pushl   %eax
-  sldtl   %eax
-  pushl   %eax
-
-## UINT32  EFlags;
-  pushl   20(%ebp)
-
-## UINT32  Dr0, Dr1, Dr2, Dr3, Dr6, Dr7;
-  movl    %dr7, %eax
-  pushl   %eax
-## clear Dr7 while executing debugger itself
-  xorl    %eax,%eax
-  movl    %eax, %dr7
-
-  movl    %dr6, %eax
-  pushl   %eax
-## insure all status bits in dr6 are clear...
-  xorl    %eax,%eax
-  movl    %eax, %dr6
-
-  movl    %dr3, %eax
-  pushl   %eax
-  movl    %dr2, %eax
-  pushl   %eax
-  movl    %dr1, %eax
-  pushl   %eax
-  movl    %dr0, %eax
-  pushl   %eax
-
-## FX_SAVE_STATE_IA32 FxSaveState;
-  subl    $512,%esp
-  movl    %esp,%edi
-  testl   $BIT24, %edx     # Test for FXSAVE/FXRESTOR support.
-                           # edx still contains result from CPUID above
-  jz      L3
-  .byte 0x0f, 0xae, 0x07   # fxsave [edi]
-L3:
-
-## save the exception data
-  pushl   8(%esp)
-
-## Clear Direction Flag
-  cld
-
-## Prepare parameter and call C function
-  pushl   %esp
-  pushl   %ebx
-  call    ASM_PFX(InterruptProcess)
-  addl    $8,%esp
-
-## skip the exception data
-  addl    $4,%esp
-
-## FX_SAVE_STATE_IA32 FxSaveState;
-  movl    %esp,%esi
-  movl    $1, %eax
-  cpuid                    # use CPUID to determine if FXSAVE/FXRESTOR
-                           # are supported
-  testl   $BIT24, %edx     # Test for FXSAVE/FXRESTOR support
-  jz      L4
-  .byte 0x0f, 0xae, 0x0e   # fxrstor [esi]
-L4:
-  addl    $512,%esp
-
-## UINT32  Dr0, Dr1, Dr2, Dr3, Dr6, Dr7;
-  popl    %eax
-  movl    %eax, %dr0
-  popl    %eax
-  movl    %eax, %dr1
-  popl    %eax
-  movl    %eax, %dr2
-  popl    %eax
-  movl    %eax, %dr3
-## skip restore of dr6.  We cleared dr6 during the context save.
-  addl    $4,%esp
-  popl    %eax
-  movl    %eax, %dr7
-
-## UINT32  EFlags;
-  popl    20(%ebp)
-
-## UINT32  Ldtr, Tr;
-## UINT32  Gdtr[2], Idtr[2];
-## Best not let anyone mess with these particular registers...
-  addl     $24,%esp
-
-## UINT32  Eip;
-   pop     12(%ebp)
-
-## UINT32  Gs, Fs, Es, Ds, Cs, Ss;
-## NOTE - modified segment registers could hang the debugger...  We
-##        could attempt to insulate ourselves against this possibility,
-##        but that poses risks as well.
-##
-  popl    %gs
-  popl    %fs
-  popl    %es
-  popl    %ds
-  popl    16(%ebp)
-  popl    %ss
-
-## UINT32  Cr0, Cr1, Cr2, Cr3, Cr4;
-  popl    %eax
-  movl    %eax, %cr0
-  addl    $4,%esp   # not for Cr1
-  popl    %eax
-  movl    %eax, %cr2
-  popl    %eax
-  movl    %eax, %cr3
-  popl    %eax
-  movl    %eax, %cr4
-
-## UINT32  Edi, Esi, Ebp, Esp, Ebx, Edx, Ecx, Eax;
-  popl    %edi
-  popl    %esi
-  addl    $4,%esp  # not for ebp
-  addl    $4,%esp  # not for esp
-  popl    %edx
-  popl    %ecx
-  popl    %ebx
-  popl    %eax
-
-  movl    %ebp,%esp
-  popl    %ebp
-  addl    $8,%esp   # skip eax
-  iretl
-
diff --git a/SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/X64/AsmFuncs.S b/SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/X64/AsmFuncs.S
deleted file mode 100644
index cdda41fb27..0000000000
--- a/SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/X64/AsmFuncs.S
+++ /dev/null
@@ -1,431 +0,0 @@
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php.
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   AsmFuncs.S
-#
-# Abstract:
-#
-#   Debug interrupt handle functions.
-#
-#------------------------------------------------------------------------------
-
-#include "DebugException.h"
-
-ASM_GLOBAL ASM_PFX(InterruptProcess)
-
-ASM_GLOBAL ASM_PFX(Exception0Handle)
-ASM_GLOBAL ASM_PFX(ExceptionStubHeaderSize)
-ASM_GLOBAL ASM_PFX(TimerInterruptHandle)
-ASM_GLOBAL ASM_PFX(CommonEntry)
-
-.macro  AGENT_HANDLER_SIGNATURE
-  .byte 0x41, 0x47, 0x54, 0x48   # AGENT_HANDLER_SIGNATURE     SIGNATURE_32('A','G','T','H')
-.endm
-
-.data
-
-ASM_PFX(ExceptionStubHeaderSize):  .long     ASM_PFX(Exception1Handle) - ASM_PFX(Exception0Handle)
-
-
-.text
-
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception0Handle):
-   cli
-   pushq %rcx
-   mov   $0, %rcx
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception1Handle):
-   cli
-   pushq %rcx
-   mov   $1, %rcx
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception2Handle):
-   cli
-   pushq %rcx
-   mov   $2, %rcx
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception3Handle):
-   cli
-   pushq %rcx
-   mov   $3, %rcx
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception4Handle):
-   cli
-   pushq %rcx
-   mov   $4, %rcx
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception5Handle):
-   cli
-   pushq %rcx
-   mov   $5, %rcx
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception6Handle):
-   cli
-   pushq %rcx
-   mov   $6, %rcx
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception7Handle):
-   cli
-   pushq %rcx
-   mov   $7, %rcx
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception8Handle):
-   cli
-   pushq %rcx
-   mov   $8, %rcx
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception9Handle):
-   cli
-   pushq %rcx
-   mov   $9, %rcx
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception10Handle):
-   cli
-   pushq %rcx
-   mov   $10, %rcx
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception11Handle):
-   cli
-   pushq %rcx
-   mov   $11, %rcx
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception12Handle):
-   cli
-   pushq %rcx
-   mov   $12, %rcx
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception13Handle):
-   cli
-   pushq %rcx
-   mov   $13, %rcx
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception14Handle):
-   cli
-   pushq %rcx
-   mov   $14, %rcx
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception15Handle):
-   cli
-   pushq %rcx
-   mov   $15, %rcx
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception16Handle):
-   cli
-   pushq %rcx
-   mov   $16, %rcx
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception17Handle):
-   cli
-   pushq %rcx
-   mov   $17, %rcx
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception18Handle):
-   cli
-   pushq %rcx
-   mov   $18, %rcx
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(Exception19Handle):
-   cli
-   pushq %rcx
-   mov   $19, %rcx
-   jmp   ASM_PFX(CommonEntry)
-AGENT_HANDLER_SIGNATURE
-ASM_PFX(TimerInterruptHandle):
-   cli
-   pushq %rcx
-   mov   $32, %rcx
-   jmp   ASM_PFX(CommonEntry)
-
-
-ASM_PFX(CommonEntry):
-
-#---------------------------------------;
-# CommonInterruptEntry                  ;
-#---------------------------------------;
-# The follow algorithm is used for the common interrupt routine.
-
-#
-# +---------------------+ <-- 16-byte aligned ensured by processor
-# +    Old SS           +
-# +---------------------+
-# +    Old RSP          +
-# +---------------------+
-# +    RFlags           +
-# +---------------------+
-# +    CS               +
-# +---------------------+
-# +    RIP              +
-# +---------------------+
-# +    Error Code       +
-# +---------------------+
-# + RCX / Vector Number +
-# +---------------------+
-# +    RBP              +
-# +---------------------+ <-- RBP, 16-byte aligned
-#
-
-# We need to determine if any extra data was pushed by the exception
-  cmpq    $DEBUG_EXCEPT_DOUBLE_FAULT, %rcx
-  je      NoExtrPush
-  cmpq    $DEBUG_EXCEPT_INVALID_TSS, %rcx
-  je      NoExtrPush
-  cmpq    $DEBUG_EXCEPT_SEG_NOT_PRESENT, %rcx
-  je      NoExtrPush
-  cmpq    $DEBUG_EXCEPT_STACK_FAULT, %rcx
-  je      NoExtrPush
-  cmpq    $DEBUG_EXCEPT_GP_FAULT, %rcx
-  je      NoExtrPush
-  cmpq    $DEBUG_EXCEPT_PAGE_FAULT, %rcx
-  je      NoExtrPush
-  cmpq    $DEBUG_EXCEPT_ALIGNMENT_CHECK, %rcx
-  je      NoExtrPush
-
-  pushq   (%rsp)
-  movq    $0, 8(%rsp)
-
-NoExtrPush:
-  #
-  # All interrupt handlers are invoked through interrupt gates, so
-  # IF flag automatically cleared at the entry point
-  pushq   %rbp
-  movq    %rsp, %rbp
-
-  #
-  # Since here the stack pointer is 16-byte aligned, so
-  # EFI_FX_SAVE_STATE_X64 of EFI_SYSTEM_CONTEXT_x64
-  # is 16-byte aligned
-  #
-
-## UINT64  R8, R9, R10, R11, R12, R13, R14, R15;
-  pushq %r15
-  pushq %r14
-  pushq %r13
-  pushq %r12
-  pushq %r11
-  pushq %r10
-  pushq %r9
-  pushq %r8
-
-  movq  %cr8, %r8
-  pushq %r8
-
-## UINT64  Rdi, Rsi, Rbp, Rsp, Rbx, Rdx, Rcx, Rax;
-  pushq %rax
-  pushq %rbx
-  pushq 8(%rbp)      # original rcx
-  pushq %rdx
-  pushq 48(%rbp)     # original rsp
-  pushq (%rbp)       # original rbp
-  pushq %rsi
-  pushq %rdi
-
-## UINT64  Cr0, Cr1, Cr2, Cr3, Cr4;
-  movq    %cr4, %rax
-  orq     $0x208, %rax
-  movq    %rax, %cr4
-  pushq   %rax
-  movq    %cr3, %rax
-  pushq   %rax
-  movq    %cr2, %rax
-  pushq   %rax
-  xorq    %rax, %rax
-  pushq   %rax
-  movq    %cr0, %rax
-  pushq   %rax
-
-## UINT64  Gs, Fs, Es, Ds, Cs, Ss;  insure high 16 bits of each is zero
-  xorq     %rax, %rax      # set rax to 0
-  movzwq   56(%rbp), %rax
-#  movq     %ss, %rax
-  pushq    %rax
-  movzwq   32(%rbp), %rax
-#  movq     %cs, %rax
-  pushq    %rax
-  mov      %ds, %rax
-  pushq    %rax
-  mov      %es, %rax
-  pushq    %rax
-  mov      %fs, %rax
-  pushq    %rax
-  mov      %gs, %rax
-  pushq    %rax
-
-## UINT64  Rip;
-  pushq    24(%rbp)
-
-## UINT64  Gdtr[2], Idtr[2];
-  subq     $16, %rsp
-  sidt    (%rsp)
-  subq     $16, %rsp
-  sgdt    (%rsp)
-
-## UINT64  Ldtr, Tr;
-  xorq    %rax, %rax
-  strw    %ax
-  pushq   %rax
-  sldtw   %ax
-  pushq   %rax
-
-## UINT64  RFlags;
-  pushq   40(%rbp)
-
-## UINT64  Dr0, Dr1, Dr2, Dr3, Dr6, Dr7;
-   movq    %dr7, %rax
-  pushq   %rax
-## clear Dr7 while executing debugger itself
-   xorq    %rax, %rax
-   movq    %rax, %dr7
-
-   movq    %dr6, %rax
-  pushq    %rax
-## insure all status bits in dr6 are clear...
-   xorq    %rax, %rax
-   movq    %rax, %dr6
-
-   movq    %dr3, %rax
-  pushq    %rax
-   movq    %dr2, %rax
-  pushq    %rax
-   movq    %dr1, %rax
-  pushq    %rax
-   movq    %dr0, %rax
-  pushq    %rax
-
-## FX_SAVE_STATE_X64 FxSaveState;
-   subq    $512, %rsp
-   movq    %rsp, %rdi
-   .byte   0x0f, 0xae, 0b00000111
-
-## save the exception data;
-   pushq   16(%rbp)
-
-## Clear Direction Flag
-  cld
-
-## Prepare parameter and call
-#  movq    8(%rbp), %rcx
-   movq    %rsp, %rdx
-   movq    %rcx, %r15   # save vector in r15
-  #
-  # Per X64 calling convention, allocate maximum parameter stack space
-  # and make sure RSP is 16-byte aligned
-  #
-   subq    $(32 + 8), %rsp
-   call    ASM_PFX(InterruptProcess)
-   addq    $(32 + 8), %rsp
-
-## skip the exception data;
-   addq    $8, %rsp
-
-## FX_SAVE_STATE_X64 FxSaveState;
-
-   movq    %rsp, %rsi
-   .byte   0x0f, 0xae, 0b00001110
-   addq    $512, %rsp
-
-## UINT64  Dr0, Dr1, Dr2, Dr3, Dr6, Dr7;
-   popq     %rax
-   movq     %rax, %dr0
-   popq     %rax
-   movq     %rax, %dr1
-   popq     %rax
-   movq     %rax, %dr2
-   popq     %rax
-   movq     %rax, %dr3
-## skip restore of dr6.  We cleared dr6 during the context save.
-   addq     $8, %rsp
-   popq     %rax
-   movq     %rax, %dr7
-
-## UINT64  RFlags;
-   popq    40(%rbp)
-
-## UINT64  Ldtr, Tr;
-## UINT64  Gdtr[2], Idtr[2];
-## Best not let anyone mess with these particular registers...
-   addq    $48, %rsp
-
-## UINT64  Rip;
-   popq    24(%rbp)
-
-## UINT64  Gs, Fs, Es, Ds, Cs, Ss;
-   popq     %rax
-  # mov     gs, rax ; not for gs
-   popq     %rax
-  # mov     fs, rax ; not for fs
-  # (X64 will not use fs and gs, so we do not restore it)
-   popq     %rax
-   mov      %rax, %es
-   popq     %rax
-   mov      %rax, %ds
-   popq     32(%rbp)
-   popq     56(%rbp)
-
-## UINT64  Cr0, Cr1, Cr2, Cr3, Cr4, Cr8;
-   popq     %rax
-   movq     %rax, %cr0
-   addq     $8, %rsp
-   popq     %rax
-   movq     %rax, %cr2
-   popq     %rax
-   movq     %rax, %cr3
-   popq     %rax
-   movq     %rax, %cr4
-
-## UINT64  Rdi, Rsi, Rbp, Rsp, Rbx, Rdx, Rcx, Rax;
-## UINT64  R8, R9, R10, R11, R12, R13, R14, R15;
-   popq     %rdi
-   popq     %rsi
-   addq     $8, %rsp
-   addq     $8, %rsp
-   popq     %rdx
-   popq     %rcx
-   popq     %rbx
-   popq     %rax
-
-   popq     %r8
-   movq     %r8, %cr8
-
-   popq     %r8
-   popq     %r9
-   popq     %r10
-   popq     %r11
-   popq     %r12
-   popq     %r13
-   popq     %r14
-   popq     %r15
-
-   movq     %rbp, %rsp
-   popq     %rbp
-   addq     $16,  %rsp
-   iretq
diff --git a/SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf b/SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf
index 38bd18d0fe..b309c18d88 100644
--- a/SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf
+++ b/SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf
@@ -42,14 +42,12 @@
   DebugAgentCommon/DebugMp.h
 
 [Sources.Ia32]
-  DebugAgentCommon/Ia32/AsmFuncs.S
   DebugAgentCommon/Ia32/AsmFuncs.nasm
   DebugAgentCommon/Ia32/ArchDebugSupport.h
   DebugAgentCommon/Ia32/ArchDebugSupport.c
   DebugAgentCommon/Ia32/DebugException.h
 
 [Sources.X64]
-  DebugAgentCommon/X64/AsmFuncs.S
   DebugAgentCommon/X64/AsmFuncs.nasm
   DebugAgentCommon/X64/ArchDebugSupport.h
   DebugAgentCommon/X64/ArchDebugSupport.c
-- 
2.18.0.windows.1



  parent reply	other threads:[~2019-03-29  7:28 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-29  7:28 [PATCH v3 00/12] Remove .S files for IA32 and X64 arch in MdePkg and UefiCpuPkg Shenglei Zhang
2019-03-29  7:28 ` [PATCH v3 01/12] UefiCpuPkg/SmmCpuFeaturesLib: Remove .S files for IA32 and X64 arch Shenglei Zhang
2019-03-29  7:28 ` [PATCH v3 02/12] UefiCpuPkg/BaseUefiCpuLib: " Shenglei Zhang
2019-03-29  7:28 ` [PATCH v3 03/12] UefiCpuPkg/CpuExceptionHandlerLib:Remove.S " Shenglei Zhang
2019-04-01  0:29   ` Dong, Eric
2019-03-29  7:28 ` [PATCH v3 04/12] MdePkg/BaseCpuLib: Remove .S " Shenglei Zhang
2019-03-29  7:28 ` [PATCH v3 05/12] MdePkg/BaseLib: " Shenglei Zhang
2019-03-29  7:28 ` [PATCH v3 06/12] MdePkg/BaseMemoryLibMmx: " Shenglei Zhang
2019-03-29  7:28 ` [PATCH v3 07/12] MdePkg/BaseMemoryLibOptDxe: " Shenglei Zhang
2019-03-29  7:28 ` [PATCH v3 08/12] MdePkg/BaseMemoryLibOptPei: " Shenglei Zhang
2019-03-29  7:28 ` [PATCH v3 09/12] MdePkg/BaseMemoryLibRepStr: " Shenglei Zhang
2019-03-29  7:28 ` [PATCH v3 10/12] MdePkg/BaseMemoryLibSse2: " Shenglei Zhang
2019-03-29  7:28 ` [PATCH v3 11/12] CryptoPkg/IntrinsicLib: Remove .S files for IA32 arch Shenglei Zhang
2019-03-29  7:28 ` Shenglei Zhang [this message]
2019-04-01  1:25   ` [PATCH v3 12/12] SourceLevelDebugPkg/DebugAgentCommon: Remove .S files Wu, Hao A
2019-04-01  1:38     ` Zhang, Shenglei
2019-03-29 11:59 ` [PATCH v3 00/12] Remove .S files for IA32 and X64 arch in MdePkg and UefiCpuPkg Gao, Liming

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190329072818.24112-13-shenglei.zhang@intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox