[AArch64] Mark LR clobbered by BL in inline asm
authorYao Qi <yao.qi@linaro.org>
Fri, 27 Oct 2017 14:29:24 +0000 (15:29 +0100)
committerYao Qi <yao.qi@linaro.org>
Fri, 27 Oct 2017 14:29:24 +0000 (15:29 +0100)
LR is a caller-save register, so, if inline asm does BL (which touches
LR), we should mark LR clobbered.

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
gdb/testsuite/gdb.arch/insn-reloc.c

index 0e2bc23..46552b0 100644 (file)
@@ -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
index c19d0be..5cf9cca 100644 (file)
@@ -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