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
prev parent 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