[AArch64] Mark LR clobbered by BL in inline asm

Message ID 1509114547-20114-1-git-send-email-yao.qi@linaro.org
State New, archived
Headers

Commit Message

Yao Qi Oct. 27, 2017, 2:29 p.m. UTC
  LR is a caller-save register, so, if inline asm does BL (which touches
LR), we should mark LR clobbered.

I'll push it in.

gdb/testsuite:

2017-10-27  Yao Qi  <yao.qi@linaro.org>

	* gdb.arch/insn-reloc.c (can_relocate_bl): Mark "x30" clobbered.
---
 gdb/testsuite/ChangeLog             | 4 ++++
 gdb/testsuite/gdb.arch/insn-reloc.c | 3 ++-
 2 files changed, 6 insertions(+), 1 deletion(-)
  

Patch

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 0e2bc23..46552b0 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,7 @@ 
+2017-10-27  Yao Qi  <yao.qi@linaro.org>
+
+	* gdb.arch/insn-reloc.c (can_relocate_bl): Mark "x30" clobbered.
+
 2017-10-26  Patrick Frants  <osscontribute@gmail.com>
 
 	* gdb.cp/classes.exp (test_static_members): Test printing
diff --git a/gdb/testsuite/gdb.arch/insn-reloc.c b/gdb/testsuite/gdb.arch/insn-reloc.c
index c19d0be..5cf9cca 100644
--- a/gdb/testsuite/gdb.arch/insn-reloc.c
+++ b/gdb/testsuite/gdb.arch/insn-reloc.c
@@ -508,7 +508,8 @@  can_relocate_bl (void)
 {
   asm ("set_point11:\n"
        "  bl foo\n"
-       "  bl pass\n"); /* Test that LR is updated correctly.  */
+       "  bl pass\n"
+       : : : "x30"); /* Test that LR is updated correctly.  */
 }
 
 #endif