diff options
author | Niklas Hallqvist <niklas@cvs.openbsd.org> | 1997-05-29 09:30:28 +0000 |
---|---|---|
committer | Niklas Hallqvist <niklas@cvs.openbsd.org> | 1997-05-29 09:30:28 +0000 |
commit | 5e8c4117fd51ae22bed414c7358df77884a216cf (patch) | |
tree | 11a6818390376768cc2c91b0c9a929723b71bebe /gnu/usr.bin/binutils/gas/testsuite | |
parent | 0939272cc89838d2549c2e7bcd4c5cf92eba738c (diff) |
Import of binutils-2.8.1 from Cygnus/FSF
Diffstat (limited to 'gnu/usr.bin/binutils/gas/testsuite')
37 files changed, 3202 insertions, 0 deletions
diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/all/align.d b/gnu/usr.bin/binutils/gas/testsuite/gas/all/align.d new file mode 100644 index 00000000000..86ede6186a9 --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/all/align.d @@ -0,0 +1,12 @@ +#objdump: -s -j .text +#name: align + +# Test the alignment pseudo-op. + +.*: .* + +Contents of section .text: + 0000 ff00ff01 ff020202 ffff0303 04040404 ................ + 0010 ffffffff 05050505 ff090a0a 0a0a0a0a ................ + 0020 ff00ff01 ff020202 ffff0303 04040404 ................ + 0030 ffffffff 05050505 ff090a0a 0a0a0a0a ................ diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/all/align.s b/gnu/usr.bin/binutils/gas/testsuite/gas/all/align.s new file mode 100644 index 00000000000..9ccca130cc0 --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/all/align.s @@ -0,0 +1,61 @@ +/* Test the alignment pseudo-ops. */ + .text + + .byte 0xff + .p2align 1,0 + + .byte 0xff + .p2align 1,1 + + .byte 0xff + .p2align 2,2 + + .byte 0xff + .byte 0xff + .p2alignw 2,0x0303 + + .p2align 3,4 + .byte 0xff + .byte 0xff + .byte 0xff + .byte 0xff + .p2alignl 3,0x05050505 + + .p2align 1,6 + .p2align 1,7 + + .byte 0xff + .p2align 3,8,5 + .byte 9 + .p2align 3,0xa + + .byte 0xff + .balign 2,0 + + .byte 0xff + .balign 2,1 + + .byte 0xff + .balign 4,2 + + .byte 0xff + .byte 0xff + .balignw 4,0x0303 + + .balign 8,4 + .byte 0xff + .byte 0xff + .byte 0xff + .byte 0xff + .balignl 8,0x05050505 + + .balign 2,6 + .balign 2,7 + + .byte 0xff + .balign 8,8,5 + .byte 9 + .balign 8,0xa + + .p2align 5 + .balign 32 diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/all/cond.d b/gnu/usr.bin/binutils/gas/testsuite/gas/all/cond.d new file mode 100644 index 00000000000..4ee3942efb8 --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/all/cond.d @@ -0,0 +1,20 @@ +# This should match the output of gas -alc cond.s. + +.*cond.s.* + + + 1[ ]+.if 0 + 8[ ]+.else + 9[ ]+.if 1 + 10[ ]+.endc + 11 0000 0[02]00 ?000[02][ ]+.long[ ]+2 + 12[ ]+.if 0 + 14[ ]+.else + 15 0004 0[04]00 ?000[04][ ]+.long[ ]+4 + 16[ ]+.endc + 17[ ]+.endc + 18 0008 0000 ?0000[ ]+.p2align 5,0 + 18[ ]+0000 ?0000 + 18[ ]+0000 ?0000 + 18[ ]+0000 ?0000 + 18[ ]+0000 ?0000 diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/all/cond.s b/gnu/usr.bin/binutils/gas/testsuite/gas/all/cond.s new file mode 100644 index 00000000000..39583211e6f --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/all/cond.s @@ -0,0 +1,18 @@ + .if 0 + .if 1 + .endc + .long 0 + .if 0 + .long 1 + .endc + .else + .if 1 + .endc + .long 2 + .if 0 + .long 3 + .else + .long 4 + .endc + .endc + .p2align 5,0 diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/all/itbl b/gnu/usr.bin/binutils/gas/testsuite/gas/all/itbl new file mode 100644 index 00000000000..ac66dfbfe46 --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/all/itbl @@ -0,0 +1,20 @@ + + ; Test case for assembler option "itbl". + ; Run as "as --itbl itbl itbl.s" + ; or with stand-alone test case "itbl-test itbl itbl.s". + ; The "p<n>" represent processors of a multi-processor system. + + p1 dreg d1 1 ; data register "d1" for COP1 has value 1 + p1 creg c3 3 ; ctrl register "c3" for COP1 has value 3 + p3 insn fie 0x1e:24-20 ; function "fill" for COP3 has value 31 + p3 dreg d3 3 ; data register "d3" for COP3 has value 3 + p3 creg c2 22 ; control register "c2" for COP3 has value 22 + p3 insn fee 0x1e:24-20,dreg:17-13,creg:12-8,immed:7-0 + + p3 dreg d3 3 ; data register "d3" for COP3 has value 3 + p3 creg c2 22 ; control register "c2" for COP3 has value 22 + p3 insn fum 0x01e00001 dreg:17-13 creg:12-8 + p3 insn foh 0xf:24-21 dreg:20-16 immed:15-0 + + p3 insn pig 0x1:24-21*[0x100|0x2], dreg:20-16, immed:15-0*0x10000 + diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/all/itbl-test.c b/gnu/usr.bin/binutils/gas/testsuite/gas/all/itbl-test.c new file mode 100644 index 00000000000..023f5d95bee --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/all/itbl-test.c @@ -0,0 +1,129 @@ + + +/* itbl-test.c + + Copyright (C) 1997 Free Software Foundation, Inc. + + This file is part of GAS, the GNU Assembler. + + GAS is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + GAS is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GAS; see the file COPYING. If not, write to the Free + Software Foundation, 59 Temple Place - Suite 330, Boston, MA + 02111-1307, USA. */ + +/* Stand-alone test for instruction specification table support. + Run using "itbl-test <itbl> <asm.s>" + where <itbl> is the name of the instruction table, + and <asm.s> is the name of the assembler fie. */ + + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "itbl-ops.h" + +static int test_reg (e_processor processor, e_type type, char *name, + unsigned long val); + +int +main (int argc, char **argv) +{ + unsigned int insn; + FILE *fas; + int aline = 0; + char s[81], *name; + + if (argc < 3) + { + printf ("usage: %s itbl asm.s\n", argv[0]); + exit (0); + } + if (itbl_parse (argv[1]) != 0) + { + printf ("failed to parse itbl\n"); + exit (0); + } + + fas = fopen (argv[2], "r"); + if (fas == 0) + { + printf ("failed to open asm file %s\n", argv[2]); + exit (0); + } + while (fgets (s, 80, fas)) + { + char *p; + aline++; + + if (p = strchr (s, ';'), p) /* strip comments */ + *p = 0; + if (p = strchr (s, '#'), p) /* strip comments */ + *p = 0; + p = s + strlen (s) - 1; + while (p >= s && (*p == ' ' || *p == '\t' || *p == '\n')) /* strip trailing spaces */ + p--; + *(p + 1) = 0; + p = s; + while (*p && (*p == ' ' || *p == '\t' || *p == '\n')) /* strip leading spaces */ + p++; + if (!*p) + continue; + + name = itbl_get_field (&p); + insn = itbl_assemble (name, p); + if (insn == 0) + printf ("line %d: Invalid instruction (%s)\n", aline, s); + else + { + char buf[128]; + printf ("line %d: insn(%s) = 0x%x)\n", aline, s, insn); + if (!itbl_disassemble (buf, insn)) + printf ("line %d: Can't disassemble instruction " + "(0x%x)\n", aline, insn); + else + printf ("line %d: disasm(0x%x) = %s)\n", aline, insn, buf); + } + } + + test_reg (1, e_dreg, "d1", 1); + test_reg (3, e_creg, "c2", 22); + test_reg (3, e_dreg, "d3", 3); + + return 0; +} + +static int +test_reg (e_processor processor, e_type type, char *name, + unsigned long val) +{ + char *n; + unsigned long v; + + n = itbl_get_name (processor, type, val); + if (!n || strcmp (n, name)) + printf ("Error - reg name not found for proessor=%d, type=%d, val=%d\n", + processor, type, val); + else + printf ("name=%s found for processor=%d, type=%d, val=%d\n", + n, processor, type, val); + + /* We require that names be unique amoung processors and types. */ + v = itbl_get_reg_val (name); + if (!v || v != val) + printf ("Error - reg val not found for processor=%d, type=%d, name=%s\n", + processor, type, name); + else + printf ("val=0x%x found for processor=%d, type=%d, name=%s\n", + v, processor, type, name); + return 0; +} diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/all/itbl.s b/gnu/usr.bin/binutils/gas/testsuite/gas/all/itbl.s new file mode 100644 index 00000000000..9351aa4bb3c --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/all/itbl.s @@ -0,0 +1,13 @@ + + ; Test case for assembler option "itbl". + ; Run as "as --itbl itbl itbl.s" + ; or with stand-alone test case "itbl-test itbl itbl.s". + + ; Assemble processor instructions as defined in "itbl". + + fee $d3,$c2,0x1 ; 0x4ff07601 + fie ; 0x4ff00000 + foh $2,0x100 + fum $d3,$c2 ; 0x4ff07601 + pig $2,0x100 + diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/m32r/allinsn.d b/gnu/usr.bin/binutils/gas/testsuite/gas/m32r/allinsn.d new file mode 100644 index 00000000000..158ab9f4aad --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/m32r/allinsn.d @@ -0,0 +1,377 @@ +#as: +#objdump: -dr +#name: allinsn + +.*: +file format .* + +Disassembly of section .text: + +00000000 <add>: + 0: 0d ad f0 00 add fp,fp || nop + +00000004 <add3>: + 4: 8d ad 00 00 add3 fp,fp,0 + +00000008 <and>: + 8: 0d cd f0 00 and fp,fp || nop + +0000000c <and3>: + c: 8d cd 00 00 and3 fp,fp,0x0 + +00000010 <or>: + 10: 0d ed f0 00 or fp,fp || nop + +00000014 <or3>: + 14: 8d ed 00 00 or3 fp,fp,0x0 + +00000018 <xor>: + 18: 0d dd f0 00 xor fp,fp || nop + +0000001c <xor3>: + 1c: 8d dd 00 00 xor3 fp,fp,0x0 + +00000020 <addi>: + 20: 4d 00 f0 00 addi fp,0 || nop + +00000024 <addv>: + 24: 0d 8d f0 00 addv fp,fp || nop + +00000028 <addv3>: + 28: 8d 8d 00 00 addv3 fp,fp,0 + +0000002c <addx>: + 2c: 0d 9d f0 00 addx fp,fp || nop + +00000030 <bc8>: + 30: 7c f4 f0 00 bc 0 <add> || nop + +00000034 <bc8_s>: + 34: 7c f3 f0 00 bc 0 <add> || nop + +00000038 <bc24>: + 38: 7c f2 f0 00 bc 0 <add> || nop + +0000003c <bc24_l>: + 3c: fc ff ff f1 bc 0 <add> + +00000040 <beq>: + 40: bd 0d ff f0 beq fp,fp,0 <add> + +00000044 <beqz>: + 44: b0 8d ff ef beqz fp,0 <add> + +00000048 <bgez>: + 48: b0 bd ff ee bgez fp,0 <add> + +0000004c <bgtz>: + 4c: b0 dd ff ed bgtz fp,0 <add> + +00000050 <blez>: + 50: b0 cd ff ec blez fp,0 <add> + +00000054 <bltz>: + 54: b0 ad ff eb bltz fp,0 <add> + +00000058 <bnez>: + 58: b0 9d ff ea bnez fp,0 <add> + +0000005c <bl8>: + 5c: 7e e9 f0 00 bl 0 <add> || nop + +00000060 <bl8_s>: + 60: 7e e8 f0 00 bl 0 <add> || nop + +00000064 <bl24>: + 64: 7e e7 f0 00 bl 0 <add> || nop + +00000068 <bl24_l>: + 68: fe ff ff e6 bl 0 <add> + +0000006c <bnc8>: + 6c: 7d e5 f0 00 bnc 0 <add> || nop + +00000070 <bnc8_s>: + 70: 7d e4 f0 00 bnc 0 <add> || nop + +00000074 <bnc24>: + 74: 7d e3 f0 00 bnc 0 <add> || nop + +00000078 <bnc24_l>: + 78: fd ff ff e2 bnc 0 <add> + +0000007c <bne>: + 7c: bd 1d ff e1 bne fp,fp,0 <add> + +00000080 <bra8>: + 80: 7f e0 f0 00 bra 0 <add> || nop + +00000084 <bra8_s>: + 84: 7f df f0 00 bra 0 <add> || nop + +00000088 <bra24>: + 88: 7f de f0 00 bra 0 <add> || nop + +0000008c <bra24_l>: + 8c: ff ff ff dd bra 0 <add> + +00000090 <cmp>: + 90: 0d 4d f0 00 cmp fp,fp || nop + +00000094 <cmpi>: + 94: 80 4d 00 00 cmpi fp,0 + +00000098 <cmpu>: + 98: 0d 5d f0 00 cmpu fp,fp || nop + +0000009c <cmpui>: + 9c: 80 5d 00 00 cmpui fp,0 + +000000a0 <div>: + a0: 9d 0d 00 00 div fp,fp + +000000a4 <divu>: + a4: 9d 1d 00 00 divu fp,fp + +000000a8 <rem>: + a8: 9d 2d 00 00 rem fp,fp + +000000ac <remu>: + ac: 9d 3d 00 00 remu fp,fp + +000000b0 <jl>: + b0: 1e cd f0 00 jl fp || nop + +000000b4 <jmp>: + b4: 1f cd f0 00 jmp fp || nop + +000000b8 <ld>: + b8: 2d cd f0 00 ld fp,@fp || nop + +000000bc <ld_2>: + bc: 2d cd f0 00 ld fp,@fp || nop + +000000c0 <ld_d>: + c0: ad cd 00 00 ld fp,@\(0,fp\) + +000000c4 <ld_d2>: + c4: ad cd 00 00 ld fp,@\(0,fp\) + +000000c8 <ldb>: + c8: 2d 8d f0 00 ldb fp,@fp || nop + +000000cc <ldb_2>: + cc: 2d 8d f0 00 ldb fp,@fp || nop + +000000d0 <ldb_d>: + d0: ad 8d 00 00 ldb fp,@\(0,fp\) + +000000d4 <ldb_d2>: + d4: ad 8d 00 00 ldb fp,@\(0,fp\) + +000000d8 <ldh>: + d8: 2d ad f0 00 ldh fp,@fp || nop + +000000dc <ldh_2>: + dc: 2d ad f0 00 ldh fp,@fp || nop + +000000e0 <ldh_d>: + e0: ad ad 00 00 ldh fp,@\(0,fp\) + +000000e4 <ldh_d2>: + e4: ad ad 00 00 ldh fp,@\(0,fp\) + +000000e8 <ldub>: + e8: 2d 9d f0 00 ldub fp,@fp || nop + +000000ec <ldub_2>: + ec: 2d 9d f0 00 ldub fp,@fp || nop + +000000f0 <ldub_d>: + f0: ad 9d 00 00 ldub fp,@\(0,fp\) + +000000f4 <ldub_d2>: + f4: ad 9d 00 00 ldub fp,@\(0,fp\) + +000000f8 <lduh>: + f8: 2d bd f0 00 lduh fp,@fp || nop + +000000fc <lduh_2>: + fc: 2d bd f0 00 lduh fp,@fp || nop + +00000100 <lduh_d>: + 100: ad bd 00 00 lduh fp,@\(0,fp\) + +00000104 <lduh_d2>: + 104: ad bd 00 00 lduh fp,@\(0,fp\) + +00000108 <ld_plus>: + 108: 2d ed f0 00 ld fp,@fp\+ || nop + +0000010c <ld24>: + 10c: ed 00 00 00 ld24 fp,0 <add> + 10c: R_M32R_24 .data + +00000110 <ldi8>: + 110: 6d 00 f0 00 ldi fp,0 || nop + +00000114 <ldi8a>: + 114: 6d 00 f0 00 ldi fp,0 || nop + +00000118 <ldi16>: + 118: 6d 00 f0 00 ldi fp,0 || nop + +0000011c <ldi16a>: + 11c: 9d f0 00 00 ldi fp,0 + +00000120 <lock>: + 120: 2d dd f0 00 lock fp,@fp || nop + +00000124 <machi>: + 124: 3d 4d f0 00 machi fp,fp || nop + +00000128 <maclo>: + 128: 3d 5d f0 00 maclo fp,fp || nop + +0000012c <macwhi>: + 12c: 3d 6d f0 00 macwhi fp,fp || nop + +00000130 <macwlo>: + 130: 3d 7d f0 00 macwlo fp,fp || nop + +00000134 <mul>: + 134: 1d 6d f0 00 mul fp,fp || nop + +00000138 <mulhi>: + 138: 3d 0d f0 00 mulhi fp,fp || nop + +0000013c <mullo>: + 13c: 3d 1d f0 00 mullo fp,fp || nop + +00000140 <mulwhi>: + 140: 3d 2d f0 00 mulwhi fp,fp || nop + +00000144 <mulwlo>: + 144: 3d 3d f0 00 mulwlo fp,fp || nop + +00000148 <mv>: + 148: 1d 8d f0 00 mv fp,fp || nop + +0000014c <mvfachi>: + 14c: 5d f0 f0 00 mvfachi fp || nop + +00000150 <mvfaclo>: + 150: 5d f1 f0 00 mvfaclo fp || nop + +00000154 <mvfacmi>: + 154: 5d f2 f0 00 mvfacmi fp || nop + +00000158 <mvfc>: + 158: 1d 90 f0 00 mvfc fp,psw || nop + +0000015c <mvtachi>: + 15c: 5d 70 f0 00 mvtachi fp || nop + +00000160 <mvtaclo>: + 160: 5d 71 f0 00 mvtaclo fp || nop + +00000164 <mvtc>: + 164: 10 ad f0 00 mvtc fp,psw || nop + +00000168 <neg>: + 168: 0d 3d f0 00 neg fp,fp || nop + +0000016c <nop>: + 16c: 0d bd f0 00 not fp,fp || nop + +00000170 <rac>: + 170: dd c0 00 00 seth fp,0x0 + +00000174 <sll>: + 174: 1d 4d f0 00 sll fp,fp || nop + +00000178 <sll3>: + 178: 9d cd 00 00 sll3 fp,fp,0 + +0000017c <slli>: + 17c: 5d 40 f0 00 slli fp,0x0 || nop + +00000180 <sra>: + 180: 1d 2d f0 00 sra fp,fp || nop + +00000184 <sra3>: + 184: 9d ad 00 00 sra3 fp,fp,0 + +00000188 <srai>: + 188: 5d 20 f0 00 srai fp,0x0 || nop + +0000018c <srl>: + 18c: 1d 0d f0 00 srl fp,fp || nop + +00000190 <srl3>: + 190: 9d 8d 00 00 srl3 fp,fp,0 + +00000194 <srli>: + 194: 5d 00 f0 00 srli fp,0x0 || nop + +00000198 <st>: + 198: 2d 4d f0 00 st fp,@fp || nop + +0000019c <st_2>: + 19c: 2d 4d f0 00 st fp,@fp || nop + +000001a0 <st_d>: + 1a0: ad 4d 00 00 st fp,@\(0,fp\) + +000001a4 <st_d2>: + 1a4: ad 4d 00 00 st fp,@\(0,fp\) + +000001a8 <stb>: + 1a8: 2d 0d f0 00 stb fp,@fp || nop + +000001ac <stb_2>: + 1ac: 2d 0d f0 00 stb fp,@fp || nop + +000001b0 <stb_d>: + 1b0: ad 0d 00 00 stb fp,@\(0,fp\) + +000001b4 <stb_d2>: + 1b4: ad 0d 00 00 stb fp,@\(0,fp\) + +000001b8 <sth>: + 1b8: 2d 2d f0 00 sth fp,@fp || nop + +000001bc <sth_2>: + 1bc: 2d 2d f0 00 sth fp,@fp || nop + +000001c0 <sth_d>: + 1c0: ad 2d 00 00 sth fp,@\(0,fp\) + +000001c4 <sth_d2>: + 1c4: ad 2d 00 00 sth fp,@\(0,fp\) + +000001c8 <st_plus>: + 1c8: 2d 6d f0 00 st fp,@\+fp || nop + +000001cc <st_minus>: + 1cc: 2d 7d f0 00 st fp,@-fp || nop + +000001d0 <sub>: + 1d0: 0d 2d f0 00 sub fp,fp || nop + +000001d4 <subv>: + 1d4: 0d 0d f0 00 subv fp,fp || nop + +000001d8 <subx>: + 1d8: 0d 1d f0 00 subx fp,fp || nop + +000001dc <trap>: + 1dc: 10 f0 f0 00 trap 0x0 || nop + +000001e0 <unlock>: + 1e0: 2d 5d f0 00 unlock fp,@fp || nop + +000001e4 <push>: + 1e4: 2d 7f f0 00 st fp,@-sp || nop + +000001e8 <pop>: + 1e8: 2d ef f0 00 ld fp,@sp\+ || nop diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/m32r/allinsn.exp b/gnu/usr.bin/binutils/gas/testsuite/gas/m32r/allinsn.exp new file mode 100644 index 00000000000..c5ddd0eb3ff --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/m32r/allinsn.exp @@ -0,0 +1,5 @@ +# M32R assembler testsuite. + +if [istarget m32r*-*-*] { + run_dump_test "allinsn" +} diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/m32r/allinsn.s b/gnu/usr.bin/binutils/gas/testsuite/gas/m32r/allinsn.s new file mode 100644 index 00000000000..ce0df3ad08c --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/m32r/allinsn.s @@ -0,0 +1,508 @@ + .data +foodata: .word 42 + .text +footext: + .text + .global add +add: + add fp,fp + .text + .global add3 +add3: + add3 fp,fp,0 + .text + .global and +and: + and fp,fp + .text + .global and3 +and3: + and3 fp,fp,0 + .text + .global or +or: + or fp,fp + .text + .global or3 +or3: + or3 fp,fp,0 + .text + .global xor +xor: + xor fp,fp + .text + .global xor3 +xor3: + xor3 fp,fp,0 + .text + .global addi +addi: + addi fp,0 + .text + .global addv +addv: + addv fp,fp + .text + .global addv3 +addv3: + addv3 fp,fp,0 + .text + .global addx +addx: + addx fp,fp + .text + .global bc8 +bc8: + bc footext + .text + .global bc8_s +bc8_s: + bc.s footext + .text + .global bc24 +bc24: + bc footext + .text + .global bc24_l +bc24_l: + bc.l footext + .text + .global beq +beq: + beq fp,fp,footext + .text + .global beqz +beqz: + beqz fp,footext + .text + .global bgez +bgez: + bgez fp,footext + .text + .global bgtz +bgtz: + bgtz fp,footext + .text + .global blez +blez: + blez fp,footext + .text + .global bltz +bltz: + bltz fp,footext + .text + .global bnez +bnez: + bnez fp,footext + .text + .global bl8 +bl8: + bl footext + .text + .global bl8_s +bl8_s: + bl.s footext + .text + .global bl24 +bl24: + bl footext + .text + .global bl24_l +bl24_l: + bl.l footext + .text + .global bnc8 +bnc8: + bnc footext + .text + .global bnc8_s +bnc8_s: + bnc.s footext + .text + .global bnc24 +bnc24: + bnc footext + .text + .global bnc24_l +bnc24_l: + bnc.l footext + .text + .global bne +bne: + bne fp,fp,footext + .text + .global bra8 +bra8: + bra footext + .text + .global bra8_s +bra8_s: + bra.s footext + .text + .global bra24 +bra24: + bra footext + .text + .global bra24_l +bra24_l: + bra.l footext + .text + .global cmp +cmp: + cmp fp,fp + .text + .global cmpi +cmpi: + cmpi fp,0 + .text + .global cmpu +cmpu: + cmpu fp,fp + .text + .global cmpui +cmpui: + cmpui fp,0 + .text + .global div +div: + div fp,fp + .text + .global divu +divu: + divu fp,fp + .text + .global rem +rem: + rem fp,fp + .text + .global remu +remu: + remu fp,fp + .text + .global jl +jl: + jl fp + .text + .global jmp +jmp: + jmp fp + .text + .global ld +ld: + ld fp,@fp + .text + .global ld_2 +ld_2: + ld fp,@(fp) + .text + .global ld_d +ld_d: + ld fp,@(0,fp) + .text + .global ld_d2 +ld_d2: + ld fp,@(fp,0) + .text + .global ldb +ldb: + ldb fp,@fp + .text + .global ldb_2 +ldb_2: + ldb fp,@(fp) + .text + .global ldb_d +ldb_d: + ldb fp,@(0,fp) + .text + .global ldb_d2 +ldb_d2: + ldb fp,@(fp,0) + .text + .global ldh +ldh: + ldh fp,@fp + .text + .global ldh_2 +ldh_2: + ldh fp,@(fp) + .text + .global ldh_d +ldh_d: + ldh fp,@(0,fp) + .text + .global ldh_d2 +ldh_d2: + ldh fp,@(fp,0) + .text + .global ldub +ldub: + ldub fp,@fp + .text + .global ldub_2 +ldub_2: + ldub fp,@(fp) + .text + .global ldub_d +ldub_d: + ldub fp,@(0,fp) + .text + .global ldub_d2 +ldub_d2: + ldub fp,@(fp,0) + .text + .global lduh +lduh: + lduh fp,@fp + .text + .global lduh_2 +lduh_2: + lduh fp,@(fp) + .text + .global lduh_d +lduh_d: + lduh fp,@(0,fp) + .text + .global lduh_d2 +lduh_d2: + lduh fp,@(fp,0) + .text + .global ld_plus +ld_plus: + ld fp,@fp+ + .text + .global ld24 +ld24: + ld24 fp,foodata + .text + .global ldi8 +ldi8: + ldi fp,0 + .text + .global ldi8a +ldi8a: + ldi8 fp,0 + .text + .global ldi16 +ldi16: + ldi fp,0 + .text + .global ldi16a +ldi16a: + ldi16 fp,0 + .text + .global lock +lock: + lock fp,@fp + .text + .global machi +machi: + machi fp,fp + .text + .global maclo +maclo: + maclo fp,fp + .text + .global macwhi +macwhi: + macwhi fp,fp + .text + .global macwlo +macwlo: + macwlo fp,fp + .text + .global mul +mul: + mul fp,fp + .text + .global mulhi +mulhi: + mulhi fp,fp + .text + .global mullo +mullo: + mullo fp,fp + .text + .global mulwhi +mulwhi: + mulwhi fp,fp + .text + .global mulwlo +mulwlo: + mulwlo fp,fp + .text + .global mv +mv: + mv fp,fp + .text + .global mvfachi +mvfachi: + mvfachi fp + .text + .global mvfaclo +mvfaclo: + mvfaclo fp + .text + .global mvfacmi +mvfacmi: + mvfacmi fp + .text + .global mvfc +mvfc: + mvfc fp,psw + .text + .global mvtachi +mvtachi: + mvtachi fp + .text + .global mvtaclo +mvtaclo: + mvtaclo fp + .text + .global mvtc +mvtc: + mvtc fp,psw + .text + .global neg +neg: + neg fp,fp + .text + .global nop +nop: + .text + .global not +not: + not fp,fp + .text + .global rac +rac: + .text + .global rach +rach: + .text + .global rte +rte: + .text + .global seth +seth: + seth fp,0 + .text + .global sll +sll: + sll fp,fp + .text + .global sll3 +sll3: + sll3 fp,fp,0 + .text + .global slli +slli: + slli fp,0 + .text + .global sra +sra: + sra fp,fp + .text + .global sra3 +sra3: + sra3 fp,fp,0 + .text + .global srai +srai: + srai fp,0 + .text + .global srl +srl: + srl fp,fp + .text + .global srl3 +srl3: + srl3 fp,fp,0 + .text + .global srli +srli: + srli fp,0 + .text + .global st +st: + st fp,@fp + .text + .global st_2 +st_2: + st fp,@(fp) + .text + .global st_d +st_d: + st fp,@(0,fp) + .text + .global st_d2 +st_d2: + st fp,@(fp,0) + .text + .global stb +stb: + stb fp,@fp + .text + .global stb_2 +stb_2: + stb fp,@(fp) + .text + .global stb_d +stb_d: + stb fp,@(0,fp) + .text + .global stb_d2 +stb_d2: + stb fp,@(fp,0) + .text + .global sth +sth: + sth fp,@fp + .text + .global sth_2 +sth_2: + sth fp,@(fp) + .text + .global sth_d +sth_d: + sth fp,@(0,fp) + .text + .global sth_d2 +sth_d2: + sth fp,@(fp,0) + .text + .global st_plus +st_plus: + st fp,@+fp + .text + .global st_minus +st_minus: + st fp,@-fp + .text + .global sub +sub: + sub fp,fp + .text + .global subv +subv: + subv fp,fp + .text + .global subx +subx: + subx fp,fp + .text + .global trap +trap: + trap 0 + .text + .global unlock +unlock: + unlock fp,@fp + .text + .global push +push: + push fp + .text + .global pop +pop: + pop fp diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/macros/semi.d b/gnu/usr.bin/binutils/gas/testsuite/gas/macros/semi.d new file mode 100644 index 00000000000..ae89e738592 --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/macros/semi.d @@ -0,0 +1,8 @@ +#objdump: -s -j .text +#name: semi + +.*: .* + +Contents of section .text: + 0000 3b203b20 3a203a20 00000000 00000000 ; ; : : ........ + 0010 00000000 00000000 00000000 00000000 ................ diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/macros/semi.s b/gnu/usr.bin/binutils/gas/testsuite/gas/macros/semi.s new file mode 100644 index 00000000000..d6e0963a169 --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/macros/semi.s @@ -0,0 +1,14 @@ + .macro semicolon + .ascii "; " + .endm + + .macro colon + .ascii ": " + .endm + + semicolon + .ascii "; " + colon + .ascii ": " + + .p2align 5,0 diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mips/itbl b/gnu/usr.bin/binutils/gas/testsuite/gas/mips/itbl new file mode 100644 index 00000000000..30f8a79f60c --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mips/itbl @@ -0,0 +1,19 @@ + + ; Test case for assembler option "itbl". + ; Run as "as --itbl itbl itbl.s" + ; or with stand-alone test case "itbl-test itbl itbl.s". + ; Here, the processors represent mips coprocessors. + + p1 dreg d1 1 ; data register "d1" for COP1 has value 1 + p1 creg c3 3 ; ctrl register "c3" for COP1 has value 3 + p3 insn fie 0x1e:24-20 ; function "fill" for COP3 has value 31 + p3 dreg d3 3 ; data register "d3" for COP3 has value 3 + p3 creg c2 22 ; control register "c2" for COP3 has value 22 + p3 insn fee 0x1e:24-20,dreg:17-13,creg:12-8,immed:7-0 + + p3 dreg d3 3 ; data register "d3" for COP3 has value 3 + p3 creg c2 22 ; control register "c2" for COP3 has value 22 + p3 insn fum 0x01e00001 dreg:17-13 creg:12-8 + p3 insn foh 0xf:24-21 dreg:20-16 immed:15-0 + + p3 insn pig 0x1:24-21*[0x100|0x2], dreg:20-16, immed:15-0*0x10000 diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mips/itbl.s b/gnu/usr.bin/binutils/gas/testsuite/gas/mips/itbl.s new file mode 100644 index 00000000000..085545be1cb --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mips/itbl.s @@ -0,0 +1,18 @@ + + ; Test case for assembler option "itbl". + ; Run as "as --itbl itbl itbl.s" + ; or with stand-alone test case "itbl-test itbl itbl.s". + + ; Call mips coprocessor "cofun"s as defined in "itbl". + + fee $d3,$c2,0x1 ; 0x4ff07601 + fie ; 0x4ff00000 + foh $2,0x100 + fum $d3,$c2 ; 0x4ff07601 + pig $2,0x100 + + ; Call a mips coprocessor instruction with register "d1" + ; defined in "itbl". + + LWC1 $d1,0x100($2) + diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mips/mips16.d b/gnu/usr.bin/binutils/gas/testsuite/gas/mips/mips16.d new file mode 100644 index 00000000000..92a04ebd90c --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mips/mips16.d @@ -0,0 +1,683 @@ +#objdump: -dr +#as: -mips3 +#name: mips16 + +# Test the mips16 instruction set. + +.*: +file format .*mips.* + +Disassembly of section .text: + +0+000000 <data1>: + 0: 00000000 nop + +0+000004 <insns1>: + 4: 3b40 ld \$v0,0\(\$v1\) + 6: f000 3b41 ld \$v0,1\(\$v1\) + a: f000 3b42 ld \$v0,2\(\$v1\) + e: f000 3b43 ld \$v0,3\(\$v1\) + 12: f000 3b44 ld \$v0,4\(\$v1\) + 16: 3b41 ld \$v0,8\(\$v1\) + 18: 3b42 ld \$v0,16\(\$v1\) + 1a: 3b44 ld \$v0,32\(\$v1\) + 1c: 3b48 ld \$v0,64\(\$v1\) + 1e: 3b50 ld \$v0,128\(\$v1\) + 20: f100 3b40 ld \$v0,256\(\$v1\) + 24: f200 3b40 ld \$v0,512\(\$v1\) + 28: f400 3b40 ld \$v0,1024\(\$v1\) + 2c: f001 3b40 ld \$v0,2048\(\$v1\) + 30: f7ff 3b5f ld \$v0,-1\(\$v1\) + 34: f7ff 3b5e ld \$v0,-2\(\$v1\) + 38: f7ff 3b5d ld \$v0,-3\(\$v1\) + 3c: f7ff 3b5c ld \$v0,-4\(\$v1\) + 40: f7ff 3b58 ld \$v0,-8\(\$v1\) + 44: f7ff 3b50 ld \$v0,-16\(\$v1\) + 48: f7ff 3b40 ld \$v0,-32\(\$v1\) + 4c: f7df 3b40 ld \$v0,-64\(\$v1\) + 50: f79f 3b40 ld \$v0,-128\(\$v1\) + 54: f71f 3b40 ld \$v0,-256\(\$v1\) + 58: f61f 3b40 ld \$v0,-512\(\$v1\) + 5c: f41f 3b40 ld \$v0,-1024\(\$v1\) + 60: f01f 3b40 ld \$v0,-2048\(\$v1\) + 64: f7bf fc40 ld \$v0,0 <data1> + 68: f6a0 fc54 ld \$v0,71c <data2> + 6c: f001 fc40 ld \$v0,868 <bar> + 70: f0c1 fc40 ld \$v0,930 <quux> + 74: f840 ld \$v0,0\(\$sp\) + 76: f000 f841 ld \$v0,1\(\$sp\) + 7a: f000 f842 ld \$v0,2\(\$sp\) + 7e: f000 f843 ld \$v0,3\(\$sp\) + 82: f000 f844 ld \$v0,4\(\$sp\) + 86: f841 ld \$v0,8\(\$sp\) + 88: f842 ld \$v0,16\(\$sp\) + 8a: f844 ld \$v0,32\(\$sp\) + 8c: f848 ld \$v0,64\(\$sp\) + 8e: f850 ld \$v0,128\(\$sp\) + 90: f100 f840 ld \$v0,256\(\$sp\) + 94: f200 f840 ld \$v0,512\(\$sp\) + 98: f400 f840 ld \$v0,1024\(\$sp\) + 9c: f001 f840 ld \$v0,2048\(\$sp\) + a0: f7ff f85f ld \$v0,-1\(\$sp\) + a4: f7ff f85e ld \$v0,-2\(\$sp\) + a8: f7ff f85d ld \$v0,-3\(\$sp\) + ac: f7ff f85c ld \$v0,-4\(\$sp\) + b0: f7ff f858 ld \$v0,-8\(\$sp\) + b4: f7ff f850 ld \$v0,-16\(\$sp\) + b8: f7ff f840 ld \$v0,-32\(\$sp\) + bc: f7df f840 ld \$v0,-64\(\$sp\) + c0: f79f f840 ld \$v0,-128\(\$sp\) + c4: f71f f840 ld \$v0,-256\(\$sp\) + c8: f61f f840 ld \$v0,-512\(\$sp\) + cc: f41f f840 ld \$v0,-1024\(\$sp\) + d0: f01f f840 ld \$v0,-2048\(\$sp\) + d4: bb40 lwu \$v0,0\(\$v1\) + d6: f000 bb41 lwu \$v0,1\(\$v1\) + da: f000 bb42 lwu \$v0,2\(\$v1\) + de: f000 bb43 lwu \$v0,3\(\$v1\) + e2: bb41 lwu \$v0,4\(\$v1\) + e4: bb42 lwu \$v0,8\(\$v1\) + e6: bb44 lwu \$v0,16\(\$v1\) + e8: bb48 lwu \$v0,32\(\$v1\) + ea: bb50 lwu \$v0,64\(\$v1\) + ec: f080 bb40 lwu \$v0,128\(\$v1\) + f0: f100 bb40 lwu \$v0,256\(\$v1\) + f4: f200 bb40 lwu \$v0,512\(\$v1\) + f8: f400 bb40 lwu \$v0,1024\(\$v1\) + fc: f001 bb40 lwu \$v0,2048\(\$v1\) + 100: f7ff bb5f lwu \$v0,-1\(\$v1\) + 104: f7ff bb5e lwu \$v0,-2\(\$v1\) + 108: f7ff bb5d lwu \$v0,-3\(\$v1\) + 10c: f7ff bb5c lwu \$v0,-4\(\$v1\) + 110: f7ff bb58 lwu \$v0,-8\(\$v1\) + 114: f7ff bb50 lwu \$v0,-16\(\$v1\) + 118: f7ff bb40 lwu \$v0,-32\(\$v1\) + 11c: f7df bb40 lwu \$v0,-64\(\$v1\) + 120: f79f bb40 lwu \$v0,-128\(\$v1\) + 124: f71f bb40 lwu \$v0,-256\(\$v1\) + 128: f61f bb40 lwu \$v0,-512\(\$v1\) + 12c: f41f bb40 lwu \$v0,-1024\(\$v1\) + 130: f01f bb40 lwu \$v0,-2048\(\$v1\) + 134: 9b40 lw \$v0,0\(\$v1\) + 136: f000 9b41 lw \$v0,1\(\$v1\) + 13a: f000 9b42 lw \$v0,2\(\$v1\) + 13e: f000 9b43 lw \$v0,3\(\$v1\) + 142: 9b41 lw \$v0,4\(\$v1\) + 144: 9b42 lw \$v0,8\(\$v1\) + 146: 9b44 lw \$v0,16\(\$v1\) + 148: 9b48 lw \$v0,32\(\$v1\) + 14a: 9b50 lw \$v0,64\(\$v1\) + 14c: f080 9b40 lw \$v0,128\(\$v1\) + 150: f100 9b40 lw \$v0,256\(\$v1\) + 154: f200 9b40 lw \$v0,512\(\$v1\) + 158: f400 9b40 lw \$v0,1024\(\$v1\) + 15c: f001 9b40 lw \$v0,2048\(\$v1\) + 160: f7ff 9b5f lw \$v0,-1\(\$v1\) + 164: f7ff 9b5e lw \$v0,-2\(\$v1\) + 168: f7ff 9b5d lw \$v0,-3\(\$v1\) + 16c: f7ff 9b5c lw \$v0,-4\(\$v1\) + 170: f7ff 9b58 lw \$v0,-8\(\$v1\) + 174: f7ff 9b50 lw \$v0,-16\(\$v1\) + 178: f7ff 9b40 lw \$v0,-32\(\$v1\) + 17c: f7df 9b40 lw \$v0,-64\(\$v1\) + 180: f79f 9b40 lw \$v0,-128\(\$v1\) + 184: f71f 9b40 lw \$v0,-256\(\$v1\) + 188: f61f 9b40 lw \$v0,-512\(\$v1\) + 18c: f41f 9b40 lw \$v0,-1024\(\$v1\) + 190: f01f 9b40 lw \$v0,-2048\(\$v1\) + 194: f67f b20c lw \$v0,0 <data1> + 198: f580 b204 lw \$v0,71c <data2> + 19c: f6c0 b20c lw \$v0,868 <bar> + 1a0: f780 b210 lw \$v0,930 <quux> + 1a4: 9200 lw \$v0,0\(\$sp\) + 1a6: f000 9201 lw \$v0,1\(\$sp\) + 1aa: f000 9202 lw \$v0,2\(\$sp\) + 1ae: f000 9203 lw \$v0,3\(\$sp\) + 1b2: 9201 lw \$v0,4\(\$sp\) + 1b4: 9202 lw \$v0,8\(\$sp\) + 1b6: 9204 lw \$v0,16\(\$sp\) + 1b8: 9208 lw \$v0,32\(\$sp\) + 1ba: 9210 lw \$v0,64\(\$sp\) + 1bc: 9220 lw \$v0,128\(\$sp\) + 1be: 9240 lw \$v0,256\(\$sp\) + 1c0: 9280 lw \$v0,512\(\$sp\) + 1c2: f400 9200 lw \$v0,1024\(\$sp\) + 1c6: f001 9200 lw \$v0,2048\(\$sp\) + 1ca: f7ff 921f lw \$v0,-1\(\$sp\) + 1ce: f7ff 921e lw \$v0,-2\(\$sp\) + 1d2: f7ff 921d lw \$v0,-3\(\$sp\) + 1d6: f7ff 921c lw \$v0,-4\(\$sp\) + 1da: f7ff 9218 lw \$v0,-8\(\$sp\) + 1de: f7ff 9210 lw \$v0,-16\(\$sp\) + 1e2: f7ff 9200 lw \$v0,-32\(\$sp\) + 1e6: f7df 9200 lw \$v0,-64\(\$sp\) + 1ea: f79f 9200 lw \$v0,-128\(\$sp\) + 1ee: f71f 9200 lw \$v0,-256\(\$sp\) + 1f2: f61f 9200 lw \$v0,-512\(\$sp\) + 1f6: f41f 9200 lw \$v0,-1024\(\$sp\) + 1fa: f01f 9200 lw \$v0,-2048\(\$sp\) + 1fe: 8b40 lh \$v0,0\(\$v1\) + 200: f000 8b41 lh \$v0,1\(\$v1\) + 204: 8b41 lh \$v0,2\(\$v1\) + 206: f000 8b43 lh \$v0,3\(\$v1\) + 20a: 8b42 lh \$v0,4\(\$v1\) + 20c: 8b44 lh \$v0,8\(\$v1\) + 20e: 8b48 lh \$v0,16\(\$v1\) + 210: 8b50 lh \$v0,32\(\$v1\) + 212: f040 8b40 lh \$v0,64\(\$v1\) + 216: f080 8b40 lh \$v0,128\(\$v1\) + 21a: f100 8b40 lh \$v0,256\(\$v1\) + 21e: f200 8b40 lh \$v0,512\(\$v1\) + 222: f400 8b40 lh \$v0,1024\(\$v1\) + 226: f001 8b40 lh \$v0,2048\(\$v1\) + 22a: f7ff 8b5f lh \$v0,-1\(\$v1\) + 22e: f7ff 8b5e lh \$v0,-2\(\$v1\) + 232: f7ff 8b5d lh \$v0,-3\(\$v1\) + 236: f7ff 8b5c lh \$v0,-4\(\$v1\) + 23a: f7ff 8b58 lh \$v0,-8\(\$v1\) + 23e: f7ff 8b50 lh \$v0,-16\(\$v1\) + 242: f7ff 8b40 lh \$v0,-32\(\$v1\) + 246: f7df 8b40 lh \$v0,-64\(\$v1\) + 24a: f79f 8b40 lh \$v0,-128\(\$v1\) + 24e: f71f 8b40 lh \$v0,-256\(\$v1\) + 252: f61f 8b40 lh \$v0,-512\(\$v1\) + 256: f41f 8b40 lh \$v0,-1024\(\$v1\) + 25a: f01f 8b40 lh \$v0,-2048\(\$v1\) + 25e: ab40 lhu \$v0,0\(\$v1\) + 260: f000 ab41 lhu \$v0,1\(\$v1\) + 264: ab41 lhu \$v0,2\(\$v1\) + 266: f000 ab43 lhu \$v0,3\(\$v1\) + 26a: ab42 lhu \$v0,4\(\$v1\) + 26c: ab44 lhu \$v0,8\(\$v1\) + 26e: ab48 lhu \$v0,16\(\$v1\) + 270: ab50 lhu \$v0,32\(\$v1\) + 272: f040 ab40 lhu \$v0,64\(\$v1\) + 276: f080 ab40 lhu \$v0,128\(\$v1\) + 27a: f100 ab40 lhu \$v0,256\(\$v1\) + 27e: f200 ab40 lhu \$v0,512\(\$v1\) + 282: f400 ab40 lhu \$v0,1024\(\$v1\) + 286: f001 ab40 lhu \$v0,2048\(\$v1\) + 28a: f7ff ab5f lhu \$v0,-1\(\$v1\) + 28e: f7ff ab5e lhu \$v0,-2\(\$v1\) + 292: f7ff ab5d lhu \$v0,-3\(\$v1\) + 296: f7ff ab5c lhu \$v0,-4\(\$v1\) + 29a: f7ff ab58 lhu \$v0,-8\(\$v1\) + 29e: f7ff ab50 lhu \$v0,-16\(\$v1\) + 2a2: f7ff ab40 lhu \$v0,-32\(\$v1\) + 2a6: f7df ab40 lhu \$v0,-64\(\$v1\) + 2aa: f79f ab40 lhu \$v0,-128\(\$v1\) + 2ae: f71f ab40 lhu \$v0,-256\(\$v1\) + 2b2: f61f ab40 lhu \$v0,-512\(\$v1\) + 2b6: f41f ab40 lhu \$v0,-1024\(\$v1\) + 2ba: f01f ab40 lhu \$v0,-2048\(\$v1\) + 2be: 8340 lb \$v0,0\(\$v1\) + 2c0: 8341 lb \$v0,1\(\$v1\) + 2c2: 8342 lb \$v0,2\(\$v1\) + 2c4: 8343 lb \$v0,3\(\$v1\) + 2c6: 8344 lb \$v0,4\(\$v1\) + 2c8: 8348 lb \$v0,8\(\$v1\) + 2ca: 8350 lb \$v0,16\(\$v1\) + 2cc: f020 8340 lb \$v0,32\(\$v1\) + 2d0: f040 8340 lb \$v0,64\(\$v1\) + 2d4: f080 8340 lb \$v0,128\(\$v1\) + 2d8: f100 8340 lb \$v0,256\(\$v1\) + 2dc: f200 8340 lb \$v0,512\(\$v1\) + 2e0: f400 8340 lb \$v0,1024\(\$v1\) + 2e4: f001 8340 lb \$v0,2048\(\$v1\) + 2e8: f7ff 835f lb \$v0,-1\(\$v1\) + 2ec: f7ff 835e lb \$v0,-2\(\$v1\) + 2f0: f7ff 835d lb \$v0,-3\(\$v1\) + 2f4: f7ff 835c lb \$v0,-4\(\$v1\) + 2f8: f7ff 8358 lb \$v0,-8\(\$v1\) + 2fc: f7ff 8350 lb \$v0,-16\(\$v1\) + 300: f7ff 8340 lb \$v0,-32\(\$v1\) + 304: f7df 8340 lb \$v0,-64\(\$v1\) + 308: f79f 8340 lb \$v0,-128\(\$v1\) + 30c: f71f 8340 lb \$v0,-256\(\$v1\) + 310: f61f 8340 lb \$v0,-512\(\$v1\) + 314: f41f 8340 lb \$v0,-1024\(\$v1\) + 318: f01f 8340 lb \$v0,-2048\(\$v1\) + 31c: a340 lbu \$v0,0\(\$v1\) + 31e: a341 lbu \$v0,1\(\$v1\) + 320: a342 lbu \$v0,2\(\$v1\) + 322: a343 lbu \$v0,3\(\$v1\) + 324: a344 lbu \$v0,4\(\$v1\) + 326: a348 lbu \$v0,8\(\$v1\) + 328: a350 lbu \$v0,16\(\$v1\) + 32a: f020 a340 lbu \$v0,32\(\$v1\) + 32e: f040 a340 lbu \$v0,64\(\$v1\) + 332: f080 a340 lbu \$v0,128\(\$v1\) + 336: f100 a340 lbu \$v0,256\(\$v1\) + 33a: f200 a340 lbu \$v0,512\(\$v1\) + 33e: f400 a340 lbu \$v0,1024\(\$v1\) + 342: f001 a340 lbu \$v0,2048\(\$v1\) + 346: f7ff a35f lbu \$v0,-1\(\$v1\) + 34a: f7ff a35e lbu \$v0,-2\(\$v1\) + 34e: f7ff a35d lbu \$v0,-3\(\$v1\) + 352: f7ff a35c lbu \$v0,-4\(\$v1\) + 356: f7ff a358 lbu \$v0,-8\(\$v1\) + 35a: f7ff a350 lbu \$v0,-16\(\$v1\) + 35e: f7ff a340 lbu \$v0,-32\(\$v1\) + 362: f7df a340 lbu \$v0,-64\(\$v1\) + 366: f79f a340 lbu \$v0,-128\(\$v1\) + 36a: f71f a340 lbu \$v0,-256\(\$v1\) + 36e: f61f a340 lbu \$v0,-512\(\$v1\) + 372: f41f a340 lbu \$v0,-1024\(\$v1\) + 376: f01f a340 lbu \$v0,-2048\(\$v1\) + 37a: 7b40 sd \$v0,0\(\$v1\) + 37c: f000 7b41 sd \$v0,1\(\$v1\) + 380: f000 7b42 sd \$v0,2\(\$v1\) + 384: f000 7b43 sd \$v0,3\(\$v1\) + 388: f000 7b44 sd \$v0,4\(\$v1\) + 38c: 7b41 sd \$v0,8\(\$v1\) + 38e: 7b42 sd \$v0,16\(\$v1\) + 390: 7b44 sd \$v0,32\(\$v1\) + 392: 7b48 sd \$v0,64\(\$v1\) + 394: 7b50 sd \$v0,128\(\$v1\) + 396: f100 7b40 sd \$v0,256\(\$v1\) + 39a: f200 7b40 sd \$v0,512\(\$v1\) + 39e: f400 7b40 sd \$v0,1024\(\$v1\) + 3a2: f001 7b40 sd \$v0,2048\(\$v1\) + 3a6: f7ff 7b5f sd \$v0,-1\(\$v1\) + 3aa: f7ff 7b5e sd \$v0,-2\(\$v1\) + 3ae: f7ff 7b5d sd \$v0,-3\(\$v1\) + 3b2: f7ff 7b5c sd \$v0,-4\(\$v1\) + 3b6: f7ff 7b58 sd \$v0,-8\(\$v1\) + 3ba: f7ff 7b50 sd \$v0,-16\(\$v1\) + 3be: f7ff 7b40 sd \$v0,-32\(\$v1\) + 3c2: f7df 7b40 sd \$v0,-64\(\$v1\) + 3c6: f79f 7b40 sd \$v0,-128\(\$v1\) + 3ca: f71f 7b40 sd \$v0,-256\(\$v1\) + 3ce: f61f 7b40 sd \$v0,-512\(\$v1\) + 3d2: f41f 7b40 sd \$v0,-1024\(\$v1\) + 3d6: f01f 7b40 sd \$v0,-2048\(\$v1\) + 3da: f940 sd \$v0,0\(\$sp\) + 3dc: f000 f941 sd \$v0,1\(\$sp\) + 3e0: f000 f942 sd \$v0,2\(\$sp\) + 3e4: f000 f943 sd \$v0,3\(\$sp\) + 3e8: f000 f944 sd \$v0,4\(\$sp\) + 3ec: f941 sd \$v0,8\(\$sp\) + 3ee: f942 sd \$v0,16\(\$sp\) + 3f0: f944 sd \$v0,32\(\$sp\) + 3f2: f948 sd \$v0,64\(\$sp\) + 3f4: f950 sd \$v0,128\(\$sp\) + 3f6: f100 f940 sd \$v0,256\(\$sp\) + 3fa: f200 f940 sd \$v0,512\(\$sp\) + 3fe: f400 f940 sd \$v0,1024\(\$sp\) + 402: f001 f940 sd \$v0,2048\(\$sp\) + 406: f7ff f95f sd \$v0,-1\(\$sp\) + 40a: f7ff f95e sd \$v0,-2\(\$sp\) + 40e: f7ff f95d sd \$v0,-3\(\$sp\) + 412: f7ff f95c sd \$v0,-4\(\$sp\) + 416: f7ff f958 sd \$v0,-8\(\$sp\) + 41a: f7ff f950 sd \$v0,-16\(\$sp\) + 41e: f7ff f940 sd \$v0,-32\(\$sp\) + 422: f7df f940 sd \$v0,-64\(\$sp\) + 426: f79f f940 sd \$v0,-128\(\$sp\) + 42a: f71f f940 sd \$v0,-256\(\$sp\) + 42e: f61f f940 sd \$v0,-512\(\$sp\) + 432: f41f f940 sd \$v0,-1024\(\$sp\) + 436: f01f f940 sd \$v0,-2048\(\$sp\) + 43a: fa00 sd \$ra,0\(\$sp\) + 43c: f000 fa01 sd \$ra,1\(\$sp\) + 440: f000 fa02 sd \$ra,2\(\$sp\) + 444: f000 fa03 sd \$ra,3\(\$sp\) + 448: f000 fa04 sd \$ra,4\(\$sp\) + 44c: fa01 sd \$ra,8\(\$sp\) + 44e: fa02 sd \$ra,16\(\$sp\) + 450: fa04 sd \$ra,32\(\$sp\) + 452: fa08 sd \$ra,64\(\$sp\) + 454: fa10 sd \$ra,128\(\$sp\) + 456: fa20 sd \$ra,256\(\$sp\) + 458: fa40 sd \$ra,512\(\$sp\) + 45a: fa80 sd \$ra,1024\(\$sp\) + 45c: f001 fa00 sd \$ra,2048\(\$sp\) + 460: f7ff fa1f sd \$ra,-1\(\$sp\) + 464: f7ff fa1e sd \$ra,-2\(\$sp\) + 468: f7ff fa1d sd \$ra,-3\(\$sp\) + 46c: f7ff fa1c sd \$ra,-4\(\$sp\) + 470: f7ff fa18 sd \$ra,-8\(\$sp\) + 474: f7ff fa10 sd \$ra,-16\(\$sp\) + 478: f7ff fa00 sd \$ra,-32\(\$sp\) + 47c: f7df fa00 sd \$ra,-64\(\$sp\) + 480: f79f fa00 sd \$ra,-128\(\$sp\) + 484: f71f fa00 sd \$ra,-256\(\$sp\) + 488: f61f fa00 sd \$ra,-512\(\$sp\) + 48c: f41f fa00 sd \$ra,-1024\(\$sp\) + 490: f01f fa00 sd \$ra,-2048\(\$sp\) + 494: db40 sw \$v0,0\(\$v1\) + 496: f000 db41 sw \$v0,1\(\$v1\) + 49a: f000 db42 sw \$v0,2\(\$v1\) + 49e: f000 db43 sw \$v0,3\(\$v1\) + 4a2: db41 sw \$v0,4\(\$v1\) + 4a4: db42 sw \$v0,8\(\$v1\) + 4a6: db44 sw \$v0,16\(\$v1\) + 4a8: db48 sw \$v0,32\(\$v1\) + 4aa: db50 sw \$v0,64\(\$v1\) + 4ac: f080 db40 sw \$v0,128\(\$v1\) + 4b0: f100 db40 sw \$v0,256\(\$v1\) + 4b4: f200 db40 sw \$v0,512\(\$v1\) + 4b8: f400 db40 sw \$v0,1024\(\$v1\) + 4bc: f001 db40 sw \$v0,2048\(\$v1\) + 4c0: f7ff db5f sw \$v0,-1\(\$v1\) + 4c4: f7ff db5e sw \$v0,-2\(\$v1\) + 4c8: f7ff db5d sw \$v0,-3\(\$v1\) + 4cc: f7ff db5c sw \$v0,-4\(\$v1\) + 4d0: f7ff db58 sw \$v0,-8\(\$v1\) + 4d4: f7ff db50 sw \$v0,-16\(\$v1\) + 4d8: f7ff db40 sw \$v0,-32\(\$v1\) + 4dc: f7df db40 sw \$v0,-64\(\$v1\) + 4e0: f79f db40 sw \$v0,-128\(\$v1\) + 4e4: f71f db40 sw \$v0,-256\(\$v1\) + 4e8: f61f db40 sw \$v0,-512\(\$v1\) + 4ec: f41f db40 sw \$v0,-1024\(\$v1\) + 4f0: f01f db40 sw \$v0,-2048\(\$v1\) + 4f4: d200 sw \$v0,0\(\$sp\) + 4f6: f000 d201 sw \$v0,1\(\$sp\) + 4fa: f000 d202 sw \$v0,2\(\$sp\) + 4fe: f000 d203 sw \$v0,3\(\$sp\) + 502: d201 sw \$v0,4\(\$sp\) + 504: d202 sw \$v0,8\(\$sp\) + 506: d204 sw \$v0,16\(\$sp\) + 508: d208 sw \$v0,32\(\$sp\) + 50a: d210 sw \$v0,64\(\$sp\) + 50c: d220 sw \$v0,128\(\$sp\) + 50e: d240 sw \$v0,256\(\$sp\) + 510: d280 sw \$v0,512\(\$sp\) + 512: f400 d200 sw \$v0,1024\(\$sp\) + 516: f001 d200 sw \$v0,2048\(\$sp\) + 51a: f7ff d21f sw \$v0,-1\(\$sp\) + 51e: f7ff d21e sw \$v0,-2\(\$sp\) + 522: f7ff d21d sw \$v0,-3\(\$sp\) + 526: f7ff d21c sw \$v0,-4\(\$sp\) + 52a: f7ff d218 sw \$v0,-8\(\$sp\) + 52e: f7ff d210 sw \$v0,-16\(\$sp\) + 532: f7ff d200 sw \$v0,-32\(\$sp\) + 536: f7df d200 sw \$v0,-64\(\$sp\) + 53a: f79f d200 sw \$v0,-128\(\$sp\) + 53e: f71f d200 sw \$v0,-256\(\$sp\) + 542: f61f d200 sw \$v0,-512\(\$sp\) + 546: f41f d200 sw \$v0,-1024\(\$sp\) + 54a: f01f d200 sw \$v0,-2048\(\$sp\) + 54e: 6200 sw \$ra,0\(\$sp\) + 550: f000 6201 sw \$ra,1\(\$sp\) + 554: f000 6202 sw \$ra,2\(\$sp\) + 558: f000 6203 sw \$ra,3\(\$sp\) + 55c: 6201 sw \$ra,4\(\$sp\) + 55e: 6202 sw \$ra,8\(\$sp\) + 560: 6204 sw \$ra,16\(\$sp\) + 562: 6208 sw \$ra,32\(\$sp\) + 564: 6210 sw \$ra,64\(\$sp\) + 566: 6220 sw \$ra,128\(\$sp\) + 568: 6240 sw \$ra,256\(\$sp\) + 56a: 6280 sw \$ra,512\(\$sp\) + 56c: f400 6200 sw \$ra,1024\(\$sp\) + 570: f001 6200 sw \$ra,2048\(\$sp\) + 574: f7ff 621f sw \$ra,-1\(\$sp\) + 578: f7ff 621e sw \$ra,-2\(\$sp\) + 57c: f7ff 621d sw \$ra,-3\(\$sp\) + 580: f7ff 621c sw \$ra,-4\(\$sp\) + 584: f7ff 6218 sw \$ra,-8\(\$sp\) + 588: f7ff 6210 sw \$ra,-16\(\$sp\) + 58c: f7ff 6200 sw \$ra,-32\(\$sp\) + 590: f7df 6200 sw \$ra,-64\(\$sp\) + 594: f79f 6200 sw \$ra,-128\(\$sp\) + 598: f71f 6200 sw \$ra,-256\(\$sp\) + 59c: f61f 6200 sw \$ra,-512\(\$sp\) + 5a0: f41f 6200 sw \$ra,-1024\(\$sp\) + 5a4: f01f 6200 sw \$ra,-2048\(\$sp\) + 5a8: cb40 sh \$v0,0\(\$v1\) + 5aa: f000 cb41 sh \$v0,1\(\$v1\) + 5ae: cb41 sh \$v0,2\(\$v1\) + 5b0: f000 cb43 sh \$v0,3\(\$v1\) + 5b4: cb42 sh \$v0,4\(\$v1\) + 5b6: cb44 sh \$v0,8\(\$v1\) + 5b8: cb48 sh \$v0,16\(\$v1\) + 5ba: cb50 sh \$v0,32\(\$v1\) + 5bc: f040 cb40 sh \$v0,64\(\$v1\) + 5c0: f080 cb40 sh \$v0,128\(\$v1\) + 5c4: f100 cb40 sh \$v0,256\(\$v1\) + 5c8: f200 cb40 sh \$v0,512\(\$v1\) + 5cc: f400 cb40 sh \$v0,1024\(\$v1\) + 5d0: f001 cb40 sh \$v0,2048\(\$v1\) + 5d4: f7ff cb5f sh \$v0,-1\(\$v1\) + 5d8: f7ff cb5e sh \$v0,-2\(\$v1\) + 5dc: f7ff cb5d sh \$v0,-3\(\$v1\) + 5e0: f7ff cb5c sh \$v0,-4\(\$v1\) + 5e4: f7ff cb58 sh \$v0,-8\(\$v1\) + 5e8: f7ff cb50 sh \$v0,-16\(\$v1\) + 5ec: f7ff cb40 sh \$v0,-32\(\$v1\) + 5f0: f7df cb40 sh \$v0,-64\(\$v1\) + 5f4: f79f cb40 sh \$v0,-128\(\$v1\) + 5f8: f71f cb40 sh \$v0,-256\(\$v1\) + 5fc: f61f cb40 sh \$v0,-512\(\$v1\) + 600: f41f cb40 sh \$v0,-1024\(\$v1\) + 604: f01f cb40 sh \$v0,-2048\(\$v1\) + 608: c340 sb \$v0,0\(\$v1\) + 60a: c341 sb \$v0,1\(\$v1\) + 60c: c342 sb \$v0,2\(\$v1\) + 60e: c343 sb \$v0,3\(\$v1\) + 610: c344 sb \$v0,4\(\$v1\) + 612: c348 sb \$v0,8\(\$v1\) + 614: c350 sb \$v0,16\(\$v1\) + 616: f020 c340 sb \$v0,32\(\$v1\) + 61a: f040 c340 sb \$v0,64\(\$v1\) + 61e: f080 c340 sb \$v0,128\(\$v1\) + 622: f100 c340 sb \$v0,256\(\$v1\) + 626: f200 c340 sb \$v0,512\(\$v1\) + 62a: f400 c340 sb \$v0,1024\(\$v1\) + 62e: f001 c340 sb \$v0,2048\(\$v1\) + 632: f7ff c35f sb \$v0,-1\(\$v1\) + 636: f7ff c35e sb \$v0,-2\(\$v1\) + 63a: f7ff c35d sb \$v0,-3\(\$v1\) + 63e: f7ff c35c sb \$v0,-4\(\$v1\) + 642: f7ff c358 sb \$v0,-8\(\$v1\) + 646: f7ff c350 sb \$v0,-16\(\$v1\) + 64a: f7ff c340 sb \$v0,-32\(\$v1\) + 64e: f7df c340 sb \$v0,-64\(\$v1\) + 652: f79f c340 sb \$v0,-128\(\$v1\) + 656: f71f c340 sb \$v0,-256\(\$v1\) + 65a: f61f c340 sb \$v0,-512\(\$v1\) + 65e: f41f c340 sb \$v0,-1024\(\$v1\) + 662: f01f c340 sb \$v0,-2048\(\$v1\) + 666: 6a00 li \$v0,0 + 668: 6a01 li \$v0,1 + 66a: f100 6a00 li \$v0,256 + 66e: 675e move \$v0,\$s8 + 670: 6592 move \$s4,\$v0 + 672: 4350 daddiu \$v0,\$v1,0 + 674: 4351 daddiu \$v0,\$v1,1 + 676: 435f daddiu \$v0,\$v1,-1 + 678: f010 4350 daddiu \$v0,\$v1,16 + 67c: f7ff 4350 daddiu \$v0,\$v1,-16 + 680: e388 daddu \$v0,\$v1,\$a0 + 682: fd40 daddiu \$v0,0 + 684: fd41 daddiu \$v0,1 + 686: fd5f daddiu \$v0,-1 + 688: f020 fd40 daddiu \$v0,32 + 68c: f7ff fd40 daddiu \$v0,-32 + 690: f080 fd40 daddiu \$v0,128 + 694: f79f fd40 daddiu \$v0,-128 + 698: f17f fe48 dla \$v0,0 <data1> + 69c: f080 fe40 dla \$v0,71c <data2> + 6a0: f1c0 fe48 dla \$v0,868 <bar> + 6a4: f280 fe4c dla \$v0,930 <quux> + 6a8: fb00 daddiu \$sp,0 + 6aa: f000 fb01 daddiu \$sp,1 + 6ae: f7ff fb1f daddiu \$sp,-1 + 6b2: fb20 daddiu \$sp,256 + 6b4: fbe0 daddiu \$sp,-256 + 6b6: ff40 daddiu \$v0,\$sp,0 + 6b8: f000 ff41 daddiu \$v0,\$sp,1 + 6bc: f7ff ff5f daddiu \$v0,\$sp,-1 + 6c0: ff48 daddiu \$v0,\$sp,32 + 6c2: f7ff ff40 daddiu \$v0,\$sp,-32 + 6c6: f080 ff40 daddiu \$v0,\$sp,128 + 6ca: f79f ff40 daddiu \$v0,\$sp,-128 + 6ce: 4340 addiu \$v0,\$v1,0 + 6d0: 4341 addiu \$v0,\$v1,1 + 6d2: 434f addiu \$v0,\$v1,-1 + 6d4: f010 4340 addiu \$v0,\$v1,16 + 6d8: f7ff 4340 addiu \$v0,\$v1,-16 + 6dc: e389 addu \$v0,\$v1,\$a0 + 6de: 4a00 addiu \$v0,0 + 6e0: 4a01 addiu \$v0,1 + 6e2: 4aff addiu \$v0,-1 + 6e4: 4a20 addiu \$v0,32 + 6e6: 4ae0 addiu \$v0,-32 + 6e8: f080 4a00 addiu \$v0,128 + 6ec: 4a80 addiu \$v0,-128 + 6ee: f11f 0a14 la \$v0,0 <data1> + 6f2: 0a0b la \$v0,71c <data2> + 6f4: 0a5d la \$v0,868 <bar> + 6f6: 0a8f la \$v0,930 <quux> + 6f8: 6300 addiu \$sp,0 + 6fa: f000 6301 addiu \$sp,1 + 6fe: f7ff 631f addiu \$sp,-1 + 702: 6320 addiu \$sp,256 + 704: 63e0 addiu \$sp,-256 + 706: 0200 addiu \$v0,\$sp,0 + 708: f000 0201 addiu \$v0,\$sp,1 + 70c: f7ff 021f addiu \$v0,\$sp,-1 + 710: 0208 addiu \$v0,\$sp,32 + 712: f7ff 0200 addiu \$v0,\$sp,-32 + 716: 0220 addiu \$v0,\$sp,128 + 718: f79f 0200 addiu \$v0,\$sp,-128 + +0+00071c <data2>: + 71c: 00000000 nop + +0+000720 <insns2>: + 720: e38a dsubu \$v0,\$v1,\$a0 + 722: e38b subu \$v0,\$v1,\$a0 + 724: ea6b neg \$v0,\$v1 + 726: ea6c and \$v0,\$v1 + 728: ea6d or \$v0,\$v1 + 72a: ea6e xor \$v0,\$v1 + 72c: ea6f not \$v0,\$v1 + 72e: 5200 slti \$v0,0 + 730: 5201 slti \$v0,1 + 732: f7ff 521f slti \$v0,-1 + 736: 52ff slti \$v0,255 + 738: f100 5200 slti \$v0,256 + 73c: ea62 slt \$v0,\$v1 + 73e: 5a00 sltiu \$v0,0 + 740: 5a01 sltiu \$v0,1 + 742: f7ff 5a1f sltiu \$v0,-1 + 746: 5aff sltiu \$v0,255 + 748: f100 5a00 sltiu \$v0,256 + 74c: ea63 sltu \$v0,\$v1 + 74e: 7200 cmpi \$v0,0 + 750: 7201 cmpi \$v0,1 + 752: 72ff cmpi \$v0,255 + 754: f100 7200 cmpi \$v0,256 + 758: ea6a cmp \$v0,\$v1 + 75a: f000 3261 dsll \$v0,\$v1,0 + 75e: 3265 dsll \$v0,\$v1,1 + 760: 3261 dsll \$v0,\$v1,8 + 762: f240 3261 dsll \$v0,\$v1,9 + 766: f7e0 3261 dsll \$v0,\$v1,63 + 76a: eb54 dsllv \$v0,\$v1 + 76c: f000 e848 dsrl \$v0,0 + 770: e948 dsrl \$v0,1 + 772: e848 dsrl \$v0,0 + 774: f240 e848 dsrl \$v0,9 + 778: f7e0 e848 dsrl \$v0,63 + 77c: eb56 dsrlv \$v0,\$v1 + 77e: f000 e853 dsra \$v0,0 + 782: e953 dsra \$v0,1 + 784: e853 dsra \$v0,0 + 786: f240 e853 dsra \$v0,9 + 78a: f7e0 e853 dsra \$v0,63 + 78e: eb57 dsrav \$v0,\$v1 + 790: ea12 mflo \$v0 + 792: eb10 mfhi \$v1 + 794: f000 3260 sll \$v0,\$v1,0 + 798: 3264 sll \$v0,\$v1,1 + 79a: 3260 sll \$v0,\$v1,8 + 79c: f240 3260 sll \$v0,\$v1,9 + 7a0: f7c0 3260 sll \$v0,\$v1,31 + 7a4: eb44 sllv \$v0,\$v1 + 7a6: f000 3262 srl \$v0,\$v1,0 + 7aa: 3266 srl \$v0,\$v1,1 + 7ac: 3262 srl \$v0,\$v1,8 + 7ae: f240 3262 srl \$v0,\$v1,9 + 7b2: f7c0 3262 srl \$v0,\$v1,31 + 7b6: eb46 srlv \$v0,\$v1 + 7b8: f000 3263 sra \$v0,\$v1,0 + 7bc: 3267 sra \$v0,\$v1,1 + 7be: 3263 sra \$v0,\$v1,8 + 7c0: f240 3263 sra \$v0,\$v1,9 + 7c4: f7c0 3263 sra \$v0,\$v1,31 + 7c8: eb47 srav \$v0,\$v1 + 7ca: ea7c dmult \$v0,\$v1 + 7cc: ea7d dmultu \$v0,\$v1 + 7ce: ea7e ddiv \$zero,\$v0,\$v1 + 7d0: 2b01 bnez \$v1,7d4 <insns2\+b4> + 7d2: e8e5 break 7 + 7d4: ea12 mflo \$v0 + 7d6: 6500 nop + 7d8: 6500 nop + 7da: ea7f ddivu \$zero,\$v0,\$v1 + 7dc: 2b01 bnez \$v1,7e0 <insns2\+c0> + 7de: e8e5 break 7 + 7e0: ea12 mflo \$v0 + 7e2: 6500 nop + 7e4: 6500 nop + 7e6: ea78 mult \$v0,\$v1 + 7e8: ea79 multu \$v0,\$v1 + 7ea: ea7a div \$zero,\$v0,\$v1 + 7ec: 2b01 bnez \$v1,7f0 <insns2\+d0> + 7ee: e8e5 break 7 + 7f0: ea12 mflo \$v0 + 7f2: 6500 nop + 7f4: 6500 nop + 7f6: ea7b divu \$zero,\$v0,\$v1 + 7f8: 2b01 bnez \$v1,7fc <insns2\+dc> + 7fa: e8e5 break 7 + 7fc: ea12 mflo \$v0 + 7fe: ea00 jr \$v0 + 800: 6500 nop + 802: e820 jr \$ra + 804: 6500 nop + 806: ea40 jalr \$v0 + 808: 6500 nop + 80a: f3ff 221b beqz \$v0,4 <insns1> + 80e: 2288 beqz \$v0,720 <insns2> + 810: 222b beqz \$v0,868 <bar> + 812: f080 220d beqz \$v0,930 <quux> + 816: f3ff 2a15 bnez \$v0,4 <insns1> + 81a: 2a82 bnez \$v0,720 <insns2> + 81c: 2a25 bnez \$v0,868 <bar> + 81e: f080 2a07 bnez \$v0,930 <quux> + 822: f3ff 600f bteqz 4 <insns1> + 826: f77f 601b bteqz 720 <insns2> + 82a: 601e bteqz 868 <bar> + 82c: f080 6000 bteqz 930 <quux> + 830: f3ff 6108 btnez 4 <insns1> + 834: f77f 6114 btnez 720 <insns2> + 838: 6117 btnez 868 <bar> + 83a: 617a btnez 930 <quux> + 83c: f3ff 1002 b 4 <insns1> + 840: 176f b 720 <insns2> + 842: 1012 b 868 <bar> + 844: 1075 b 930 <quux> + 846: e805 break 0 + 848: e825 break 1 + 84a: efe5 break 63 + 84c: 1800 0000 jal 0 <data1> + 84c: R_MIPS16_26 extern + 850: 6500 nop + 852: e809 entry + 854: e909 entry \$a0 + 856: eb49 entry \$a0-\$a2,\$s0 + 858: e8a9 entry \$s0-\$s1,\$ra + 85a: e829 entry \$ra + 85c: ef09 exit + 85e: ef49 exit \$s0 + 860: efa9 exit \$s0-\$s1,\$ra + 862: ef29 exit \$ra + 864: 0000 addiu \$s0,\$sp,0 + ... + +0+000868 <bar>: + ... diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mips/mips16.s b/gnu/usr.bin/binutils/gas/testsuite/gas/mips/mips16.s new file mode 100644 index 00000000000..6268fb16506 --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mips/mips16.s @@ -0,0 +1,258 @@ +# Test the mips16 instruction set. + + .set mips16 + + .macro ldst op, reg, base + \op \reg,0(\base) + \op \reg,1(\base) + \op \reg,2(\base) + \op \reg,3(\base) + \op \reg,4(\base) + \op \reg,8(\base) + \op \reg,16(\base) + \op \reg,32(\base) + \op \reg,64(\base) + \op \reg,128(\base) + \op \reg,256(\base) + \op \reg,512(\base) + \op \reg,1024(\base) + \op \reg,2048(\base) + \op \reg,-1(\base) + \op \reg,-2(\base) + \op \reg,-3(\base) + \op \reg,-4(\base) + \op \reg,-8(\base) + \op \reg,-16(\base) + \op \reg,-32(\base) + \op \reg,-64(\base) + \op \reg,-128(\base) + \op \reg,-256(\base) + \op \reg,-512(\base) + \op \reg,-1024(\base) + \op \reg,-2048(\base) + .endm + + .p2align 3 +data1: + .word 0 +insns1: + ldst ld, $2, $3 + ld $2,data1 + ld $2,data2 + ld $2,bar + ld $2,quux + ldst ld, $2, $sp + ldst lwu, $2, $3 + ldst lw, $2, $3 + lw $2,data1 + lw $2,data2 + lw $2,bar + lw $2,quux + ldst lw, $2, $sp + ldst lh, $2, $3 + ldst lhu, $2, $3 + ldst lb, $2, $3 + ldst lbu, $2, $3 + ldst sd, $2, $3 + ldst sd, $2, $sp + ldst sd, $31, $sp + ldst sw, $2, $3 + ldst sw, $2, $sp + ldst sw, $31, $sp + ldst sh, $2, $3 + ldst sb, $2, $3 + + li $2,0 + li $2,1 + li $2,256 + + move $2,$30 + move $20,$2 + + daddu $2,$3,0 + daddu $2,$3,1 + daddu $2,$3,-1 + daddu $2,$3,16 + daddu $2,$3,-16 + daddu $2,$3,$4 + daddu $2,0 + daddu $2,1 + daddu $2,-1 + daddu $2,32 + daddu $2,-32 + daddu $2,128 + daddu $2,-128 + dla $2,data1 + dla $2,data2 + dla $2,bar + dla $2,quux + daddu $sp,0 + daddu $sp,1 + daddu $sp,-1 + daddu $sp,256 + daddu $sp,-256 + daddu $2,$sp,0 + daddu $2,$sp,1 + daddu $2,$sp,-1 + daddu $2,$sp,32 + daddu $2,$sp,-32 + daddu $2,$sp,128 + daddu $2,$sp,-128 + + addu $2,$3,0 + addu $2,$3,1 + addu $2,$3,-1 + addu $2,$3,16 + addu $2,$3,-16 + addu $2,$3,$4 + addu $2,0 + addu $2,1 + addu $2,-1 + addu $2,32 + addu $2,-32 + addu $2,128 + addu $2,-128 + la $2,data1 + la $2,data2 + la $2,bar + la $2,quux + addu $sp,0 + addu $sp,1 + addu $sp,-1 + addu $sp,256 + addu $sp,-256 + addu $2,$sp,0 + addu $2,$sp,1 + addu $2,$sp,-1 + addu $2,$sp,32 + addu $2,$sp,-32 + addu $2,$sp,128 + addu $2,$sp,-128 + +data2: + .word 0 +insns2: + dsubu $2,$3,$4 + subu $2,$3,$4 + neg $2,$3 + + and $2,$3 + or $2,$3 + xor $2,$3 + not $2,$3 + + slt $2,0 + slt $2,1 + slt $2,-1 + slt $2,255 + slt $2,256 + slt $2,$3 + sltu $2,0 + sltu $2,1 + sltu $2,-1 + sltu $2,255 + sltu $2,256 + sltu $2,$3 + cmp $2,0 + cmp $2,1 + cmp $2,255 + cmp $2,256 + cmp $2,$3 + + dsll $2,$3,0 + dsll $2,$3,1 + dsll $2,$3,8 + dsll $2,$3,9 + dsll $2,$3,63 + dsll $2,$3 + dsrl $2,0 + dsrl $2,1 + dsrl $2,8 + dsrl $2,9 + dsrl $2,63 + dsrl $2,$3 + dsra $2,0 + dsra $2,1 + dsra $2,8 + dsra $2,9 + dsra $2,63 + dsra $2,$3 + + mflo $2 + mfhi $3 + + sll $2,$3,0 + sll $2,$3,1 + sll $2,$3,8 + sll $2,$3,9 + sll $2,$3,31 + sll $2,$3 + srl $2,$3,0 + srl $2,$3,1 + srl $2,$3,8 + srl $2,$3,9 + srl $2,$3,31 + srl $2,$3 + sra $2,$3,0 + sra $2,$3,1 + sra $2,$3,8 + sra $2,$3,9 + sra $2,$3,31 + sra $2,$3 + + dmult $2,$3 + dmultu $2,$3 + ddiv $2,$3 + ddivu $2,$3 + + mult $2,$3 + multu $2,$3 + div $2,$3 + divu $2,$3 + + jr $2 + jr $31 + jalr $31,$2 + + beqz $2,insns1 + beqz $2,insns2 + beqz $2,bar + beqz $2,quux + bnez $2,insns1 + bnez $2,insns2 + bnez $2,bar + bnez $2,quux + bteqz insns1 + bteqz insns2 + bteqz bar + bteqz quux + btnez insns1 + btnez insns2 + btnez bar + btnez quux + b insns1 + b insns2 + b bar + b quux + + break 0 + break 1 + break 63 + + jal extern + + entry + entry $4 + entry $4-$6,$16 + entry $16-$17,$31 + entry $31 + exit + exit $16 + exit $16-$17,$31 + exit $31 + + .p2align 3 +bar: + + .skip 200 +quux: diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/add.s b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/add.s new file mode 100644 index 00000000000..ed251bc55ec --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/add.s @@ -0,0 +1,13 @@ + .text + add d1,d2 + add d2,a3 + add a2,d1 + add a3,a2 + add 16,d1 + add 256,d2 + add 131071,d3 + add 16,a1 + add 256,a2 + add 131071,a3 + addc d1,d2 + addnf 16,a2 diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/basic.exp b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/basic.exp new file mode 100644 index 00000000000..3793eb17ed3 --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/basic.exp @@ -0,0 +1,836 @@ +# Copyright (C) 1996 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +# Please email any bugs, comments, and/or additions to this file to: +# DejaGnu@cygnus.com + +# Written by Cygnus Support. + +proc do_add {} { + set testname "add.s: Add operations" + set x 0 + + gas_start "add.s" "-al" + + # Instead of having a variable for each match string just increment the + # total number of matches seen. That's simpler when testing large numbers + # of instructions (as these tests to). + while 1 { + expect { + -re "^ +\[0-9\]+ 0000 96\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0001 F20B\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0003 F2C9\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0005 F24E\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0007 D510\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0009 F71A0001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000d F463FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +8 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0012 D110\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0014 F70A0001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0018 F467FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +11 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 001d F286\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 001f F50E10\[^\n\]*\n" { set x [expr $x+1] } + -re "\[^\n\]*\n" { } + timeout { perror "timeout\n"; break } + 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==14] then { pass $testname } else { fail $testname } +} + +proc do_bcc {} { + set testname "bcc.s: Bcc tests" + set x 0 + + gas_start "bcc.s" "-al" + + # Instead of having a variable for each match string just increment the + # total number of matches seen. That's simpler when testing large numbers + # of instructions (as these tests to). + while 1 { + expect { + -re "^ +\[0-9\]+ 0000 E800\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0002 E900\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0004 E100\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0006 E200\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0008 E300\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000a E000\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000c E500\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000e E600\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0010 E700\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0012 E400\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0014 F5FC00\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0017 F5FD00\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 001a F5FE00\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 001d F5FF00\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0020 EA00\[^\n\]*\n" { set x [expr $x+1] } + -re "\[^\n\]*\n" { } + timeout { perror "timeout\n"; break } + 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==15] then { pass $testname } else { fail $testname } +} + +proc do_bccx {} { + set testname "bccx.s: Bccx tests" + set x 0 + + gas_start "bccx.s" "-al" + + # Instead of having a variable for each match string just increment the + # total number of matches seen. That's simpler when testing large numbers + # of instructions (as these tests to). + while 1 { + expect { + -re "^ +\[0-9\]+ 0000 F5E800\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0003 F5E900\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0006 F5E100\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0009 F5E200\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000c F5E300\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000f F5E000\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0012 F5E500\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0015 F5E600\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0018 F5E700\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 001b F5E400\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 001e F5EC00\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0021 F5ED00\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0024 F5EE00\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0027 F5EF00\[^\n\]*\n" { set x [expr $x+1] } + -re "\[^\n\]*\n" { } + timeout { perror "timeout\n"; break } + 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==14] then { pass $testname } else { fail $testname } +} + +proc do_bit {} { + set testname "bit.s: bit tests" + set x 0 + + gas_start "bit.s" "-al" + + # Instead of having a variable for each match string just increment the + # total number of matches seen. That's simpler when testing large numbers + # of instructions (as these tests to). + while 1 { + expect { + -re "^ +\[0-9\]+ 0000 F50540\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0003 F7060020\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0007 F029\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0009 F039\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +12 +FFFF40\[^\n\]*\n" { set x [expr $x+1] } + -re "\[^\n\]*\n" { } + timeout { perror "timeout\n"; break } + 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==4] then { pass $testname } else { fail $testname } +} + + +proc do_cmp {} { + set testname "cmp.s: cmp tests" + set x 0 + + gas_start "cmp.s" "-al" + + # Instead of having a variable for each match string just increment the + # total number of matches seen. That's simpler when testing large numbers + # of instructions (as these tests to). + while 1 { + expect { + -re "^ +\[0-9\]+ 0000 F396\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0002 F22B\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0004 F2EF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0006 F26E\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0008 DB10\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000a F74A0001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000e F479FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +8 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0013 EE0001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0016 F47DFFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +10 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "\[^\n\]*\n" { } + timeout { perror "timeout\n"; break } + 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 } +} + +proc do_ext {} { + set testname "ext.s: ext tests" + set x 0 + + gas_start "ext.s" "-al" + + # Instead of having a variable for each match string just increment the + # total number of matches seen. That's simpler when testing large numbers + # of instructions (as these tests to). + while 1 { + expect { + -re "^ +\[0-9\]+ 0000 F3C5\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0002 B2\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0003 B7\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0004 BA\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0005 BD\[^\n\]*\n" { set x [expr $x+1] } + -re "\[^\n\]*\n" { } + timeout { perror "timeout\n"; break } + 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==5] then { pass $testname } else { fail $testname } +} + +proc do_extend {} { + set testname "extend.s: extended instruction tests" + set x 0 + + gas_start "extend.s" "-al" + + # Instead of having a variable for each match string just increment the + # total number of matches seen. That's simpler when testing large numbers + # of instructions (as these tests to). + while 1 { + expect { + -re "^ +\[0-9\]+ 0000 F505\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0002 F6FA\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0004 F606\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0006 F90210\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0009 FB030100\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000d FD030001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +7 +FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0013 F616\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0015 F91610\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0018 FB170100\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 001c FD170001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +11 +FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0022 F64B\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0024 F65E\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0026 F676\[^\n\]*\n" { set x [expr $x+1] } + -re "\[^\n\]*\n" { } + timeout { perror "timeout\n"; break } + 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==15] then { pass $testname } else { fail $testname } +} + +proc do_logical {} { + set testname "logical.s: logical tests" + set x 0 + + gas_start "logical.s" "-al" + + # Instead of having a variable for each match string just increment the + # total number of matches seen. That's simpler when testing large numbers + # of instructions (as these tests to). + while 1 { + expect { + -re "^ +\[0-9\]+ 0000 F306\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0002 F5027F\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0005 F703FF7F\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0009 F710FF7F\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000d F316\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000f F50A7F\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0012 F743FF7F\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0016 F714FF7F\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 001a F326\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 001c F74FFF7F\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0020 F3E7\[^\n\]*\n" { set x [expr $x+1] } + -re "^\[^\n\]*\n" { } + timeout { perror "timeout\n"; break } + 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 } +} + +proc do_loop {} { + set testname "loop.s: loop tests" + set x 0 + + gas_start "loop.s" "-al" + + # Instead of having a variable for each match string just increment the + # total number of matches seen. That's simpler when testing large numbers + # of instructions (as these tests to). + while 1 { + expect { + -re "^ +\[0-9\]+ 0000 D8\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0001 D9\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0002 D1\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0003 D2\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0004 D3\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0005 D0\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0006 D5\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0007 D6\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0008 D7\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0009 D4\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000a DA\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000b DB\[^\n\]*\n" { set x [expr $x+1] } + -re "\[^\n\]*\n" { } + timeout { perror "timeout\n"; break } + 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==12] then { pass $testname } else { fail $testname } +} + +proc do_mov1 {} { + set testname "mov1.s: mov1 tests" + set x 0 + + gas_start "mov1.s" "-al" + + # Instead of having a variable for each match string just increment the + # total number of matches seen. That's simpler when testing large numbers + # of instructions (as these tests to). + while 1 { + expect { + -re "^ +\[0-9\]+ 0000 F236\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0002 F2F9\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0004 86\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0005 F279\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0007 F3F3\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0009 F3D8\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000b F3E1\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000d F3C8\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000f 29\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0010 6908\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0012 F7C90001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0016 F489FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +13 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "\[^\n\]*\n" { } + timeout { perror "timeout\n"; break } + 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==13] then { pass $testname } else { fail $testname } +} + +proc do_mov2 {} { + set testname "mov2.s: mov2 tests" + set x 0 + + gas_start "mov2.s" "-al" + + # Instead of having a variable for each match string just increment the + # total number of matches seen. That's simpler when testing large numbers + # of instructions (as these tests to). + while 1 { + expect { + -re "^ +\[0-9\]+ 0000 F156\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0002 C90080\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0005 F4C1FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +4 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000a 7908\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000c F7B90001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0010 F4F9FFFF \[^\n\]*\n" { set x [expr $x+1] } + -re "^ +7 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0015 F116\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0017 F7310080\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 001b F4D1FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +10 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "\[^\n\]*\n" { } + timeout { perror "timeout\n"; break } + 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==12] then { pass $testname } else { fail $testname } +} + +proc do_mov3 {} { + set testname "mov3.s: mov3 tests" + set x 0 + + gas_start "mov3.s" "-al" + + # Instead of having a variable for each match string just increment the + # total number of matches seen. That's simpler when testing large numbers + # of instructions (as these tests to). + while 1 { + expect { + -re "^ +\[0-9\]+ 0000 09\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0001 4920\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0003 F7890001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0007 F409FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +5 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000c F1E9\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000e C18000\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0011 F441FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +8 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0016 5920\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0018 F7A90001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 001c F419FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +11 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "\[^\n\]*\n" { } + timeout { perror "timeout\n"; break } + 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==13] then { pass $testname } else { fail $testname } +} + +proc do_mov4 {} { + set testname "mov4.s: mov4 tests" + set x 0 + + gas_start "mov4.s" "-al" + + # Instead of having a variable for each match string just increment the + # total number of matches seen. That's simpler when testing large numbers + # of instructions (as these tests to). + while 1 { + expect { + -re "^ +\[0-9\]+ 0000 F1A9\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0002 F7218000\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0006 F451FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +4 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000b 8508\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000d F90001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0010 F471FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +7 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0015 DD0001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0018 F475FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +9 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "\[^\n\]*\n" { } + timeout { perror "timeout\n"; break } + 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 } +} + +proc do_movx {} { + set testname "movx.s: movx tests" + set x 0 + + gas_start "movx.s" "-al" + + # Instead of having a variable for each match string just increment the + # total number of matches seen. That's simpler when testing large numbers + # of instructions (as these tests to). + while 1 { + expect { + -re "^ +\[0-9\]+ 0000 F57908\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0003 F7790001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0007 F4B9FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +4 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000c F55908\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000f F7690001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0013 F439FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +7 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "\[^\n\]*\n" { } + timeout { perror "timeout\n"; break } + 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==8] then { pass $testname } else { fail $testname } +} + +proc do_movb {} { + set testname "movb.s: movb tests" + set x 0 + + gas_start "movb.s" "-al" + + # Instead of having a variable for each match string just increment the + # total number of matches seen. That's simpler when testing large numbers + # of instructions (as these tests to). + while 1 { + expect { + -re "^ +\[0-9\]+ 0000 F52908\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0003 F7D90001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0007 F4A9FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +4 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000c F06B\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000e F4C6FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +6 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0013 19\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0014 F51908\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0017 F7990001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 001b F429FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +10 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0020 F0E9\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0022 C50001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0025 F445FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +13 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "\[^\n\]*\n" { } + timeout { perror "timeout\n"; break } + 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==16] then { pass $testname } else { fail $testname } +} + +proc do_movbu {} { + set testname "movbu.s: movbu tests" + set x 0 + + gas_start "movbu.s" "-al" + + # Instead of having a variable for each match string just increment the + # total number of matches seen. That's simpler when testing large numbers + # of instructions (as these tests to). + while 1 { + expect { + -re "^ +\[0-9\]+ 0000 39\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0001 F53908\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0004 F7590001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0008 F499FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +5 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000d F096\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000f CD0080\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0012 F4C9FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +8 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "\[^\n\]*\n" { } + timeout { perror "timeout\n"; break } + 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==9] then { pass $testname } else { fail $testname } +} + +proc do_movhu {} { + set testname "movhu.s: movhu tests" + set x 0 + + gas_start "movhu.s" "-al" + + # Instead of having a variable for each match string just increment the + # total number of matches seen. That's simpler when testing large numbers + # of instructions (as these tests to). + while 1 { + expect { + -re "^ +\[0-9\]+ 0000 F066\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0002 F86608\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0005 FA660100\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0009 FC660001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +5 +FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000f F8BD08\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0012 FABD0100\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0016 FCBD0001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +8 +FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 001c F4A5\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 001e 398000\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0021 FCAD0001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +11 +FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0027 F076\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0029 F87620\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 002c FA760100\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0030 FC760001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +15 +FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0036 F89720\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0039 FA978000\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 003d FC970001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +18 +FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0043 F4DA\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0045 070080\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0048 FC870001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +21 +FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "\[^\n\]*\n" { } + timeout { perror "timeout\n"; break } + 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==26] then { pass $testname } else { fail $testname } +} + +proc do_movm {} { + set testname "movm.s: movm tests" + set x 0 + + gas_start "movm.s" "-al" + + # Instead of having a variable for each match string just increment the + # total number of matches seen. That's simpler when testing large numbers + # of instructions (as these tests to). + while 1 { + expect { + -re "^ +\[0-9\]+ 0000 CE30\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0002 CEF8\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0004 CF30\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0006 CFF8\[^\n\]*\n" { set x [expr $x+1] } + -re "\[^\n\]*\n" { } + timeout { perror "timeout\n"; break } + 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==4] then { pass $testname } else { fail $testname } +} + +proc do_muldiv {} { + set testname "muldiv.s: muldiv tests" + set x 0 + + gas_start "muldiv.s" "-al" + + # Instead of having a variable for each match string just increment the + # total number of matches seen. That's simpler when testing large numbers + # of instructions (as these tests to). + while 1 { + expect { + -re "^ +\[0-9\]+ 0000 F346\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0002 F35B\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0004 F36E\[^\n\]*\n" { set x [expr $x+1] } + -re "\[^\n\]*\n" { } + timeout { perror "timeout\n"; break } + 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==3] then { pass $testname } else { fail $testname } +} + +proc do_other {} { + set testname "other.s: other tests" + set x 0 + + gas_start "other.s" "-al" + + # Instead of having a variable for each match string just increment the + # total number of matches seen. That's simpler when testing large numbers + # of instructions (as these tests to). + while 1 { + expect { + -re "^ +\[0-9\]+ 0000 FC0001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0003 F4E0FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +3 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0008 F008\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000a FD0001\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000d F4E1FFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +6 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0012 F009\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0014 FE\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0015 EB\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0016 F6\[^\n\]*\n" { set x [expr $x+1] } + -re "\[^\n\]*\n" { } + timeout { perror "timeout\n"; break } + 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 } +} + +proc do_shift {} { + set testname "shift.s: shift tests" + set x 0 + + gas_start "shift.s" "-al" + + # Instead of having a variable for each match string just increment the + # total number of matches seen. That's simpler when testing large numbers + # of instructions (as these tests to). + while 1 { + expect { + -re "^ +\[0-9\]+ 0000 F33A\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0002 F33F\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0004 F335\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0006 F332\[^\n\]*\n" { set x [expr $x+1] } + -re "\[^\n\]*\n" { } + timeout { perror "timeout\n"; break } + 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==4] then { pass $testname } else { fail $testname } +} + +proc do_sub {} { + set testname "sub.s: sub tests" + set x 0 + + gas_start "sub.s" "-al" + + # Instead of having a variable for each match string just increment the + # total number of matches seen. That's simpler when testing large numbers + # of instructions (as these tests to). + while 1 { + expect { + -re "^ +\[0-9\]+ 0000 A6\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0001 F21B\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0003 F2DF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0005 F25E\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0007 F71EFF7F \[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000b F46AFFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +7 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0010 F70EFF7F \[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0014 F46EFFFF\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +9 +01\[^\n\]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0019 F296 \[^\n\]*\n" { set x [expr $x+1] } + -re "\[^\n\]*\n" { } + timeout { perror "timeout\n"; break } + 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 mn10200*-*-*] then { + # Test the basic instruction parser. + do_add + do_bcc + do_bccx + do_bit + do_cmp + do_ext + do_logical + do_mov1 + do_mov2 + do_mov3 + do_mov4 + do_movb + do_movx + do_movbu + do_muldiv + do_other + do_shift + do_sub +} diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/bcc.s b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/bcc.s new file mode 100644 index 00000000000..8292dce04fd --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/bcc.s @@ -0,0 +1,17 @@ + .text +foo: + beq foo + bne foo + bgt foo + bge foo + ble foo + blt foo + bhi foo + bcc foo + bls foo + bcs foo + bvc foo + bvs foo + bnc foo + bns foo + bra foo diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/bccx.s b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/bccx.s new file mode 100644 index 00000000000..e4e7edf5e30 --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/bccx.s @@ -0,0 +1,16 @@ + .text +foo: + beqx foo + bnex foo + bgtx foo + bgex foo + blex foo + bltx foo + bhix foo + bccx foo + blsx foo + bcsx foo + bvcx foo + bvsx foo + bncx foo + bnsx foo diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/bit.s b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/bit.s new file mode 100644 index 00000000000..5db60d495bc --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/bit.s @@ -0,0 +1,5 @@ + .text + btst 64,d1 + btst 8192,d2 + bset d1,(a2) + bclr d1,(a2) diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/cmp.s b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/cmp.s new file mode 100644 index 00000000000..133925b38c5 --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/cmp.s @@ -0,0 +1,10 @@ + .text + cmp d1,d2 + cmp d2,a3 + cmp a3,d3 + cmp a3,a2 + cmp 16,d3 + cmp 256,d2 + cmp 131071,d1 + cmp 256,a2 + cmp 131071,a1 diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/ext.s b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/ext.s new file mode 100644 index 00000000000..1be01bac89c --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/ext.s @@ -0,0 +1,7 @@ + .text + ext d1 + extx d2 + extxu d3 + extxb d2 + extxbu d1 + diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/logical.s b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/logical.s new file mode 100644 index 00000000000..0809d7f387f --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/logical.s @@ -0,0 +1,12 @@ + .text + and d1,d2 + and 127,d2 + and 32767,d3 + and 32767,psw + or d1,d2 + or 127,d2 + or 32767,d3 + or 32767,psw + xor d1,d2 + xor 32767,d3 + not d3 diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/mov1.s b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/mov1.s new file mode 100644 index 00000000000..c828e32e59d --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/mov1.s @@ -0,0 +1,13 @@ + .text + mov d1,a2 + mov a2,d1 + mov d1,d2 + mov a2,a1 + mov psw,d3 + mov d2,psw + mov mdr,d1 + mov d2,mdr + mov (a2),d1 + mov (8,a2),d1 + mov (256,a2),d1 + mov (131071,a2),d1 diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/mov2.s b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/mov2.s new file mode 100644 index 00000000000..8df6e2544c4 --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/mov2.s @@ -0,0 +1,10 @@ + .text + mov (d1,a1),d2 + mov (32768),d1 + mov (131071),d1 + mov (8,a2),a1 + mov (256,a2),a1 + mov (131071,a2),a1 + mov (d1,a1),a2 + mov (32768),a1 + mov (131071),a1 diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/mov3.s b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/mov3.s new file mode 100644 index 00000000000..bd7490a35a6 --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/mov3.s @@ -0,0 +1,11 @@ + .text + mov d1,(a2) + mov d1,(32,a2) + mov d1,(256,a2) + mov d1,(131071,a2) + mov d1,(d2,a2) + mov d1,(128) + mov d1,(131071) + mov a1,(32,a2) + mov a1,(256,a2) + mov a1,(131071,a2) diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/mov4.s b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/mov4.s new file mode 100644 index 00000000000..f1187e01fe8 --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/mov4.s @@ -0,0 +1,9 @@ + .text + mov a1,(d2,a2) + mov a1,(128) + mov a1,(131071) + mov 8,d1 + mov 256,d1 + mov 131071,d1 + mov 256,a1 + mov 131071,a1 diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/movb.s b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/movb.s new file mode 100644 index 00000000000..25566147546 --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/movb.s @@ -0,0 +1,13 @@ + .text + movb (8,a2),d1 + movb (256,a2),d1 + movb (131071,a2),d1 + movb (d2,a2),d3 + movb (131071),d2 + movb d1,(a2) + movb d1,(8,a2) + movb d1,(256,a2) + movb d1,(131071,a2) + movb d1,(d2,a2) + movb d1,(256) + movb d1,(131071) diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/movbu.s b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/movbu.s new file mode 100644 index 00000000000..01d973a1b14 --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/movbu.s @@ -0,0 +1,8 @@ + .text + movbu (a2),d1 + movbu (8,a2),d1 + movbu (256,a2),d1 + movbu (131071,a2),d1 + movbu (d1,a1),d2 + movbu (32768),d1 + movbu (131071),d1 diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/movx.s b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/movx.s new file mode 100644 index 00000000000..70e1d714f5a --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/movx.s @@ -0,0 +1,7 @@ + .text + movx (8,a2),d1 + movx (256,a2),d1 + movx (131071,a2),d1 + movx d1,(8,a2) + movx d1,(256,a2) + movx d1,(131071,a2) diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/muldiv.s b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/muldiv.s new file mode 100644 index 00000000000..0f170265c8d --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/muldiv.s @@ -0,0 +1,4 @@ + .text + mul d1,d2 + mulu d2,d3 + divu d3,d2 diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/other.s b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/other.s new file mode 100644 index 00000000000..ecf94bdfd68 --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/other.s @@ -0,0 +1,10 @@ + .text + jmp 256 + jmp 131071 + jmp (a2) + jsr 256 + jsr 131071 + jsr (a2) + rts + rti + nop diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/shift.s b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/shift.s new file mode 100644 index 00000000000..568e769f6fa --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/shift.s @@ -0,0 +1,5 @@ + .text + asr d2 + lsr d3 + ror d1 + rol d2 diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/sub.s b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/sub.s new file mode 100644 index 00000000000..25516548f57 --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mn10200/sub.s @@ -0,0 +1,10 @@ + .text + sub d1,d2 + sub d2,a3 + sub a3,d3 + sub a3,a2 + sub 32767,d2 + sub 131071,d2 + sub 32767,a2 + sub 131071,a2 + subc d1,d2 diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mri/semi.d b/gnu/usr.bin/binutils/gas/testsuite/gas/mri/semi.d new file mode 100644 index 00000000000..0decce18472 --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mri/semi.d @@ -0,0 +1,9 @@ +#objdump: -s -j .text +#name: MRI semi +#as: -M + +.*: .* + +Contents of section .text: + 0000 3b203b20 3a203a20 00000000 00000000 ; ; : : ........ + 0010 00000000 00000000 00000000 00000000 ................ diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mri/semi.s b/gnu/usr.bin/binutils/gas/testsuite/gas/mri/semi.s new file mode 100644 index 00000000000..5b30677c470 --- /dev/null +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mri/semi.s @@ -0,0 +1,14 @@ +semicolon macro + dc.b '; ' + endm + +colon macro + dc.b ': ' + endm + + semicolon + dc.b '; ' + colon + dc.b ': ' + + p2align 5 |