From 60204874f5a987b164f7f194d3f96729847fe329 Mon Sep 17 00:00:00 2001 From: Aditya Vidyadhar Kamath Date: Mon, 6 Mar 2023 01:31:34 -0600 Subject: [PATCH] Modify altivec-regs.exp testcase for AIX On AIX, the debugger cannot access vector registers before they are first used by the inferior. Hence we change the test case such that some vector registers are accessed by the variable 'x' in AIX and other targets are not affected as a consequence of the same. --- gdb/testsuite/gdb.arch/altivec-regs.c | 8 +++++++- gdb/testsuite/gdb.arch/altivec-regs.exp | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gdb/testsuite/gdb.arch/altivec-regs.c b/gdb/testsuite/gdb.arch/altivec-regs.c index 8f3b729fe3f..1411f15e358 100644 --- a/gdb/testsuite/gdb.arch/altivec-regs.c +++ b/gdb/testsuite/gdb.arch/altivec-regs.c @@ -20,12 +20,18 @@ main () vector unsigned int z; int a; + #ifdef _AIX + /* On AIX, the debugger cannot access vector registers before they + are first used by the inferior. Perform such an access here. */ + x = ((vector unsigned int) vec_splat_u8 (0)); + #endif + /* This line may look unnecessary but we do need it, because we want to have a line to do a next over (so that gdb refetches the registers) and we don't want the code to change any vector registers. The splat operations below modify the VRs,i so we don't want to execute them yet. */ - a = 9; + a = 9; /* start here */ x = ((vector unsigned int) vec_splat_u8 (-2)); y = ((vector unsigned int) vec_splat_u8 (1)); diff --git a/gdb/testsuite/gdb.arch/altivec-regs.exp b/gdb/testsuite/gdb.arch/altivec-regs.exp index 6cc32aeff22..b771a4df76f 100644 --- a/gdb/testsuite/gdb.arch/altivec-regs.exp +++ b/gdb/testsuite/gdb.arch/altivec-regs.exp @@ -52,6 +52,9 @@ if {![runto_main]} { return 0 } +gdb_breakpoint [gdb_get_line_number "start here"] +gdb_continue_to_breakpoint "start here" + gdb_test "set print frame-arguments all" # set all the registers integer portions to 1 -- 2.30.2