[Lldb-commits] [lldb] 20e1732 - [lldb] Fix a few lldb-server tests on Apple Silicon

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Mon Feb 7 09:43:59 PST 2022


The inferior already has an assembly-coded version of this, which should 
not be dependent on codegen details, so I'm surprised that this does not 
work. Is it possible that the #ifdefs need adjustment?

On 07/02/2022 18:35, Jonas Devlieghere via lldb-commits wrote:
> 
> Author: Jonas Devlieghere
> Date: 2022-02-07T09:35:12-08:00
> New Revision: 20e17323cd90d04f38cf35d70a3b7cac37d2e15d
> 
> URL: https://github.com/llvm/llvm-project/commit/20e17323cd90d04f38cf35d70a3b7cac37d2e15d
> DIFF: https://github.com/llvm/llvm-project/commit/20e17323cd90d04f38cf35d70a3b7cac37d2e15d.diff
> 
> LOG: [lldb] Fix a few lldb-server tests on Apple Silicon
> 
> This fixes TestGdbRemoteSingleStep.py and TestGdbRemote_vCont.py. This
> patch updates the test to account for the possibility that the constants
> are already materialized. This appears to behave differently between
> embedded arm64 devices and Apple Silicon.
> 
> Added:
>      
> 
> Modified:
>      lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
> 
> Removed:
>      
> 
> 
> ################################################################################
> diff  --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
> index ef67619e4835b..619d0f1c21729 100644
> --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
> +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
> @@ -1537,17 +1537,18 @@ def single_step_only_steps_one_instruction(
>           # variable value
>           if re.match("s390x", arch):
>               expected_step_count = 2
> -        # ARM64 requires "4" instructions: 2 to compute the address (adrp, add),
> -        # one to materialize the constant (mov) and the store
> +        # ARM64 requires "4" instructions: 2 to compute the address (adrp,
> +        # add), one to materialize the constant (mov) and the store. Once
> +        # addresses and constants are materialized, only one instruction is
> +        # needed.
>           if re.match("arm64", arch):
> -            expected_step_count = 4
> -
> -        self.assertEqual(step_count, expected_step_count)
> -
> -        # ARM64: Once addresses and constants are materialized, only one
> -        # instruction is needed.
> -        if re.match("arm64", arch):
> -            expected_step_count = 1
> +            before_materialization_step_count = 4
> +            after_matrialization_step_count = 1
> +            self.assertIn(step_count, [before_materialization_step_count,
> +                                       after_matrialization_step_count])
> +            expected_step_count = after_matrialization_step_count
> +        else:
> +            self.assertEqual(step_count, expected_step_count)
>   
>           # Verify we hit the next state.
>           args["expected_g_c1"] = "0"
> 
> 
>          
> _______________________________________________
> lldb-commits mailing list
> lldb-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits



More information about the lldb-commits mailing list