* gdb.asm/m68hc11.inc: Setup the data section.
authorStephane Carrez <stcarrez@nerim.fr>
Fri, 11 Nov 2005 11:18:53 +0000 (11:18 +0000)
committerStephane Carrez <stcarrez@nerim.fr>
Fri, 11 Nov 2005 11:18:53 +0000 (11:18 +0000)
* gdb.asm/asm-source.exp (m6811-*-*): Don't use the target board linker
script for this test.
(m6812-*-*): Likewise.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.asm/asm-source.exp
gdb/testsuite/gdb.asm/m68hc11.inc

index 7edf6940fe1c01ca160dd46d320399c483d7bf71..bf009b47c7d1b0546b87283666f00a5ca97611b7 100644 (file)
@@ -1,3 +1,10 @@
+2005-11-11  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * gdb.asm/m68hc11.inc: Setup the data section.
+       * gdb.asm/asm-source.exp (m6811-*-*): Don't use the target board linker
+       script for this test.
+       (m6812-*-*): Likewise.
+
 2005-11-09  Randolph Chung <tausq@debian.org>
 
        * gdb.base/structs2.exp: Update xfail to only trigger for gcc-3.x.
index 5abe8eeae9ee1b4ae192448083202b190ef9a08e..ced0af7d0c2b716f0e49265f5b1bd167770c8ea5 100644 (file)
@@ -80,11 +80,25 @@ switch -glob -- [istarget] {
     }
     "m6811-*-*" {
         set asm-arch m68hc11
-        set asm-flags "-mshort-double -m68hc11 -gdwarf-2 --no-warn -I${srcdir}/${subdir} -I${objdir}/${subdir}"
+        set asm-flags "-mshort-double -m68hc11 --no-warn -I${srcdir}/${subdir} -I${objdir}/${subdir}"
+       set debug-flags "-gdwarf-2"
+       # This asm test is specific and uses the linker directly.
+       # We must not use the target board linker script defined for other
+       # tests.  Remove it and restore it later on.
+       set board [target_info name]
+       set old_ldscript [board_info $board ldscript]
+       unset_board_info "ldscript"
     }
     "m6812-*-*" {
         set asm-arch m68hc11
-        set asm-flags "-mshort-double -m68hc12 -gdwarf-2 --no-warn -I${srcdir}/${subdir} -I${objdir}/${subdir}"
+        set asm-flags "-mshort-double -m68hc12 --no-warn -I${srcdir}/${subdir} -I${objdir}/${subdir}"
+       set debug-flags "-gdwarf-2"
+       # This asm test is specific and uses the linker directly.
+       # We must not use the target board linker script defined for other
+       # tests.  Remove it and restore it later on.
+       set board [target_info name]
+       set old_ldscript [board_info $board ldscript]
+       set_board_info ldscript ""
     }
     "mips*-*" {
         set asm-arch mips
@@ -226,6 +240,11 @@ if {[target_link "asmsrc1.o asmsrc2.o" "${binfile}" ${link-flags}] != "" } then
      gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
 }
 
+# Restore the target board linker script for HC11/HC12.
+if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
+    set_board_info ldscript $old_ldscript
+}
+
 remote_exec build "mv asmsrc1.o asmsrc2.o ${objdir}/${subdir}"
 
 
index 820908b277ae1979ecc918a68e0a22b9c465fc9a..e8f5018c0b212808cf7ed19562de526464d81ed0 100644 (file)
 _.frame: .word 0
         .previous
         lds     #0x2000
+        ; the linker script maps the data section in ROM (LMA) for its initial
+        ; content and in RAM (VMA) for its runtime value.  We have to do
+        ; what the default crt0 does: copy the ROM part in RAM.
+        ; (otherwise any 'globalvar' appears uninitialized)
+       ldx     #__data_image
+       ldy     #__data_section_start
+       bra     Start_map
+Loop:
+       ldaa    0,x
+       staa    0,y
+       inx
+       iny
+Start_map:
+       cpx     #__data_image_end
+       blo     Loop
+Done:
         clr     _.frame
         clr     _.frame+1
        .endm
@@ -46,5 +62,5 @@ _.frame: .word 0
        .macro gdbasm_datavar name value
        .data
 \name:
-       .long   \value
+       .word   \value
        .endm