public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Ni, Ray" <ray.ni@intel.com>
To: "Liu, Zhiguang" <zhiguang.liu@intel.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "Dong, Eric" <eric.dong@intel.com>,
	"Kumar, Rahul1" <rahul1.kumar@intel.com>,
	"De, Debkumar" <debkumar.de@intel.com>,
	"Han, Harry" <harry.han@intel.com>,
	"West, Catharine" <catharine.west@intel.com>
Subject: Re: [PATCH v2] UefiCpuPkg: Fix nasm warning "signed byte value exceeds"
Date: Fri, 8 Jul 2022 03:00:02 +0000	[thread overview]
Message-ID: <MWHPR11MB1631C56D07E188607BB4197C8C829@MWHPR11MB1631.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20220706131013.19796-1-zhiguang.liu@intel.com>

Reviewed-by: Ray Ni <ray.ni@intel.com>

> -----Original Message-----
> From: Liu, Zhiguang <zhiguang.liu@intel.com>
> Sent: Wednesday, July 6, 2022 9:10 PM
> To: devel@edk2.groups.io
> Cc: Liu, Zhiguang <zhiguang.liu@intel.com>; Dong, Eric <eric.dong@intel.com>; Ni, Ray <ray.ni@intel.com>; Kumar,
> Rahul1 <rahul1.kumar@intel.com>; De, Debkumar <debkumar.de@intel.com>; Han, Harry <harry.han@intel.com>; West,
> Catharine <catharine.west@intel.com>
> Subject: [PATCH v2] UefiCpuPkg: Fix nasm warning "signed byte value exceeds"
> 
> Currently, "push byte %[Vector]" causes nasm warning when Vector is larger
> than 0x7F. This is because push accepts a signed value, and byte means
> signed int8. Maximum signed int8 is 0x7F.
> When Vector is larger the 0x7F, for example, when Vector is 255, byte 255
> turns to -1, and causes the warning "signed byte value exceeds".
> To avoid such warning, use dword instead of byte, this will increase 3 bytes
> for each IdtVector.
> For IA32, the size of IdtVector will increase from 10 bytes to 13 bytes.
> For X64, the size of IdtVector will increase from 15 bytes to 18 bytes.
> 
> Cc: Eric Dong <eric.dong@intel.com>
> Cc: Ray Ni <ray.ni@intel.com>
> Cc: Rahul Kumar <rahul1.kumar@intel.com>
> Cc: Debkumar De <debkumar.de@intel.com>
> Cc: Harry Han <harry.han@intel.com>
> Cc: Catharine West <catharine.west@intel.com>
> Signed-off-by: Zhiguang Liu <zhiguang.liu@intel.com>
> ---
>  .../Library/CpuExceptionHandlerLib/CpuExceptionCommon.h       |  2 +-
>  .../CpuExceptionHandlerLib/Ia32/ExceptionHandlerAsm.nasm      |  7 +++----
>  .../CpuExceptionHandlerLib/X64/Xcode5ExceptionHandlerAsm.nasm | 11 +++++------
>  3 files changed, 9 insertions(+), 11 deletions(-)
> 
> diff --git a/UefiCpuPkg/Library/CpuExceptionHandlerLib/CpuExceptionCommon.h
> b/UefiCpuPkg/Library/CpuExceptionHandlerLib/CpuExceptionCommon.h
> index 0f012bccde..fd42c4be0f 100644
> --- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/CpuExceptionCommon.h
> +++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/CpuExceptionCommon.h
> @@ -22,7 +22,7 @@
> 
>  #define  CPU_EXCEPTION_NUM    32
>  #define  CPU_INTERRUPT_NUM    256
> -#define  HOOKAFTER_STUB_SIZE  16
> +#define  HOOKAFTER_STUB_SIZE  18
> 
>  //
>  // Exception Error Code of Page-Fault Exception
> diff --git a/UefiCpuPkg/Library/CpuExceptionHandlerLib/Ia32/ExceptionHandlerAsm.nasm
> b/UefiCpuPkg/Library/CpuExceptionHandlerLib/Ia32/ExceptionHandlerAsm.nasm
> index 8ed2b8f455..31a00449a2 100644
> --- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/Ia32/ExceptionHandlerAsm.nasm
> +++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/Ia32/ExceptionHandlerAsm.nasm
> @@ -34,7 +34,7 @@ ALIGN   8
>  AsmIdtVectorBegin:
>  %assign Vector 0
>  %rep  256
> -    push    byte %[Vector];
> +    push    strict dword %[Vector];
>      push    eax
>      mov     eax, ASM_PFX(CommonInterruptEntry)
>      jmp     eax
> @@ -43,9 +43,8 @@ AsmIdtVectorBegin:
>  AsmIdtVectorEnd:
> 
>  HookAfterStubBegin:
> -    db      0x6a        ; push
> +    push    strict dword 0  ; 0 will be fixed
>  VectorNum:
> -    db      0          ; 0 will be fixed
>      push    eax
>      mov     eax, HookAfterStubHeaderEnd
>      jmp     eax
> @@ -453,5 +452,5 @@ global ASM_PFX(AsmVectorNumFixup)
>  ASM_PFX(AsmVectorNumFixup):
>      mov     eax, dword [esp + 8]
>      mov     ecx, [esp + 4]
> -    mov     [ecx + (VectorNum - HookAfterStubBegin)], al
> +    mov     [ecx + (VectorNum - 4 - HookAfterStubBegin)], al
>      ret
> diff --git a/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/Xcode5ExceptionHandlerAsm.nasm
> b/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/Xcode5ExceptionHandlerAsm.nasm
> index 7c0e3d3b0b..9574785742 100644
> --- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/Xcode5ExceptionHandlerAsm.nasm
> +++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/Xcode5ExceptionHandlerAsm.nasm
> @@ -57,18 +57,17 @@ ALIGN   8
>  AsmIdtVectorBegin:
>  %assign Vector 0
>  %rep  256
> -    push    byte %[Vector]
> +    push    strict dword %[Vector] ; This instruction pushes sign-extended 8-byte value on stack
>      push    rax
> -    mov     rax, strict qword 0 ;    mov     rax, ASM_PFX(CommonInterruptEntry)
> +    mov     rax, strict qword 0    ; mov     rax, ASM_PFX(CommonInterruptEntry)
>      jmp     rax
>  %assign Vector Vector+1
>  %endrep
>  AsmIdtVectorEnd:
> 
>  HookAfterStubHeaderBegin:
> -    db      0x6a        ; push
> -@VectorNum:
> -    db      0          ; 0 will be fixed
> +    push    strict dword 0      ; 0 will be fixed
> +VectorNum:
>      push    rax
>      mov     rax, strict qword 0 ;     mov     rax, HookAfterStubHeaderEnd
>  JmpAbsoluteAddress:
> @@ -478,6 +477,6 @@ ASM_PFX(AsmGetTemplateAddressMap):
>  global ASM_PFX(AsmVectorNumFixup)
>  ASM_PFX(AsmVectorNumFixup):
>      mov     rax, rdx
> -    mov     [rcx + (@VectorNum - HookAfterStubHeaderBegin)], al
> +    mov     [rcx + (VectorNum - 4 - HookAfterStubHeaderBegin)], al
>      ret
> 
> --
> 2.16.2.windows.1


      reply	other threads:[~2022-07-08  3:00 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-06 13:10 [PATCH v2] UefiCpuPkg: Fix nasm warning "signed byte value exceeds" Zhiguang Liu
2022-07-08  3:00 ` Ni, Ray [this message]

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=MWHPR11MB1631C56D07E188607BB4197C8C829@MWHPR11MB1631.namprd11.prod.outlook.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