Addition of new test case to check rx generation with adds and subs instruction
authorNick Clifton <nickc@redhat.com>
Thu, 5 Aug 2004 09:09:02 +0000 (09:09 +0000)
committerNick Clifton <nickc@redhat.com>
Thu, 5 Aug 2004 09:09:02 +0000 (09:09 +0000)
for plain H8/300 target.

gas/testsuite/ChangeLog
gas/testsuite/gas/h8300/addsubrxcheck.s [new file with mode: 0644]
gas/testsuite/gas/h8300/h8300.exp

index 30ce2d66823290178a37f37012f8ad6f9542c8b5..f0679ebc33b56a4dba0304eab737988bdb860fd2 100644 (file)
@@ -1,3 +1,9 @@
+2004-08-05  Nitin Yewale  <nitiny@kpitcummins.com>
+
+       * h8300/h8300.exp: Addition of new test case to check rx
+       generation with adds and subs instruction for plain H8/300 target.
+       * h8300/addsubrxcheck.s: New test source file.
+
 2004-08-01  Stephane Carrez  <stcarrez@nerim.fr>
 
        * gas/m68hc11/m68hc11.exp: Fix tests for 2.15
diff --git a/gas/testsuite/gas/h8300/addsubrxcheck.s b/gas/testsuite/gas/h8300/addsubrxcheck.s
new file mode 100644 (file)
index 0000000..8ad1912
--- /dev/null
@@ -0,0 +1,16 @@
+       .section .text
+       .global _main
+_main:
+       mov.w   r6,@-r7
+       mov.w   r7,r6
+       subs    #2,r7
+       mov.w   @(-2,r6),r2
+       subs    #2,r2
+       mov.w   r2,@(-2,r6)
+       sub.w   r2,r2
+       mov.w   r2,r0
+       adds    #2,r7
+       mov.w   @r7+,r6
+       rts
+       .size   _main, .-_main
+       .end
index 10b30f49bf444acd5d3eee7bdca8f0794593c864..104a882513506d1565b8a51daf940faf79729b23 100644 (file)
@@ -2143,6 +2143,38 @@ proc do_h8300hn_addressgen {} {
     if [expr $x == 8] then { pass $testname } else { fail $testname }
 }
 
+proc do_h8300_addsubrxcheck {} {
+    set testname "addsubrxcheck.s: h8300 check rx generation for adds subs instructions"
+    set x 0
+
+    gas_start "addsubrxcheck.s" "-al"
+
+    # Check each instruction bit pattern to verify it got
+    # assembled correctly.
+    while 1 {
+       expect {
+           -re " +\[0-9\]+ .* 6DF6\[^\n\]*\n"       { set x [expr $x+1] }
+           -re " +\[0-9\]+ .* 0D76\[^\n\]*\n"       { set x [expr $x+1] }
+           -re " +\[0-9\]+ .* 1B87\[^\n\]*\n"       { set x [expr $x+1] }
+           -re " +\[0-9\]+ .* 6F62FFFE\[^\n\]*\n"   { set x [expr $x+1] }
+           -re " +\[0-9\]+ .* 1B82\[^\n\]*\n"       { set x [expr $x+1] }
+           -re " +\[0-9\]+ .* 6FE2FFFE\[^\n\]*\n"   { set x [expr $x+1] }
+           -re " +\[0-9\]+ .* 1922\[^\n\]*\n"       { set x [expr $x+1] }
+           -re " +\[0-9\]+ .* 0D20\[^\n\]*\n"       { set x [expr $x+1] }
+           -re " +\[0-9\]+ .* 0B87\[^\n\]*\n"       { set x [expr $x+1] }
+           -re " +\[0-9\]+ .* 6D76\[^\n\]*\n"       { set x [expr $x+1] }
+           -re " +\[0-9\]+ .* 5470\[^\n\]*\n"       { set x [expr $x+1] }
+
+           eof                                 { break }
+       }
+    }
+    # This was intended to do any cleanup necessary.  It kinda looks like it
+    # isn't needed, but just in case, please keep it in for now.
+    gas_finish
+    # Did we find what we were looking for?  If not, flunk it.
+    if [expr $x == 11] then { pass $testname } else { fail $testname }
+}
+
 if [istarget h8300*-*-*] then {
     # Test the basic h8300 instruction parser
     do_h8300_add_sub
@@ -2162,6 +2194,8 @@ if [istarget h8300*-*-*] then {
     do_h8300_rotate_shift
     do_h8300hn_addressgen
 
+    do_h8300_addsubrxcheck
+
     # Now test the h8300h instruction parser
     do_h8300h_add_sub
     do_h8300h_logical