On Tue, Sep 19, 2023 at 03:16:59AM -0500, Andrei Warkentin wrote:
> InternalLongJump was not returning the 2nd parameter passed
> to LongJmp (Value) as the return value from SetJmp.
> 
> Seen with code compiled with -Os, where an LongJmp (Buffer, -1)
> somehow translated to SetJmp returning 0...
> 
> Cc: Yong Li <yong...@intel.com>
> Cc: Sunil V L <suni...@ventanamicro.com>
> Cc: Tuan Phan <tp...@ventanamicro.com>
> Cc: Daniel Schaefer <g...@danielschaefer.me>
> Signed-off-by: Andrei Warkentin <andrei.warken...@intel.com>
> ---

Merged as #4851.

Thanks,
Sunil
>  MdePkg/Library/BaseLib/RiscV64/RiscVSetJumpLongJump.S | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/MdePkg/Library/BaseLib/RiscV64/RiscVSetJumpLongJump.S 
> b/MdePkg/Library/BaseLib/RiscV64/RiscVSetJumpLongJump.S
> index 34486eabba4c..e97a7d0727b8 100644
> --- a/MdePkg/Library/BaseLib/RiscV64/RiscVSetJumpLongJump.S
> +++ b/MdePkg/Library/BaseLib/RiscV64/RiscVSetJumpLongJump.S
> @@ -3,6 +3,7 @@
>  // Set/Long jump for RISC-V
>  //
>  // Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights 
> reserved.<BR>
> +// Copyright (c) 2023, Intel Corporation. All rights reserved.<BR>
>  //
>  // SPDX-License-Identifier: BSD-2-Clause-Patent
>  //
> @@ -47,9 +48,5 @@ InternalLongJump:
>      REG_L s10, 11*SZREG(a0)
>      REG_L s11, 12*SZREG(a0)
>      REG_L sp,  13*SZREG(a0)
> -
> -    add   a0, s0, 0
> -    add   a1, s1, 0
> -    add   a2, s2, 0
> -    add   a3, s3, 0
> +    mv    a0, a1
>      ret
> -- 
> 2.34.1
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#108934): https://edk2.groups.io/g/devel/message/108934
Mute This Topic: https://groups.io/mt/101452205/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to