]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
* gas/m68hc11/malis.s: New test to verify compliance with Motorola
authorStephane Carrez <stcarrez@nerim.fr>
Sun, 4 Feb 2001 13:53:49 +0000 (13:53 +0000)
committerStephane Carrez <stcarrez@nerim.fr>
Sun, 4 Feb 2001 13:53:49 +0000 (13:53 +0000)
Assembly Language Input Standard.
* gas/m68hc11/malis.d: New file.
* gas/m68hc11/malis-include.s: New file.
* gas/m68hc11/all.exp: Add the new test.

gas/testsuite/ChangeLog
gas/testsuite/gas/m68hc11/all.exp
gas/testsuite/gas/m68hc11/malis-include.s [new file with mode: 0644]
gas/testsuite/gas/m68hc11/malis.d [new file with mode: 0644]
gas/testsuite/gas/m68hc11/malis.s [new file with mode: 0644]

index 1d8f6c8dbf0253fc283c004d7d09038ec5c37202..55f3bfd2ea89366038ec73aeea7088af65ebbd12 100644 (file)
@@ -1,3 +1,11 @@
+2001-02-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+       * gas/m68hc11/malis.s: New test to verify compliance with Motorola
+       Assembly Language Input Standard.
+       * gas/m68hc11/malis.d: New file.
+       * gas/m68hc11/malis-include.s: New file.
+       * gas/m68hc11/all.exp: Add the new test.
+
 2001-01-12  Alan Modra  <alan@linuxcare.com.au>
 
        * gas/i386/i386.exp (gas_64_check): Correct target string.
index 2c6c292f431251d4d53bbe6f76458e4527c2ccdd..9fe5bf466dcb5263022edfcdf2e2ec1aff5dd06e 100644 (file)
@@ -16,6 +16,9 @@ run_dump_test all_insns
 run_dump_test insns-dwarf2
 run_dump_test lbranch-dwarf2
 
+# Compliance with Motorola Assembly Language Input Standard
+run_dump_test malis
+
 # Some 68HC12 tests
 run_dump_test opers12
 run_dump_test opers12-dwarf2
\ No newline at end of file
diff --git a/gas/testsuite/gas/m68hc11/malis-include.s b/gas/testsuite/gas/m68hc11/malis-include.s
new file mode 100644 (file)
index 0000000..5ee6580
--- /dev/null
@@ -0,0 +1,19 @@
+;;
+;; This file verifies the compliance with the Motorola specification:
+;; 
+;; MOTOROLA STANDARDS
+;; Document #1001, Version 1.0
+;; SPECIFICATION FOR Motorola 8- and 16-Bit ASSEMBLY LANGUAGE INPUT STANDARD
+;; 26, October 1999
+;;
+;; Available at:
+;; 
+;; http://www.mcu.motsps.com/dev_tools/hc12/eabi/m8-16alis.pdf
+;;
+;; Lines starting with '#' represent instructions that fail in GAS.
+;;
+;;
+;;     Section 8.2.12.6 Include File - include
+       section .text
+value: set     1
+       ldy     #value
diff --git a/gas/testsuite/gas/m68hc11/malis.d b/gas/testsuite/gas/m68hc11/malis.d
new file mode 100644 (file)
index 0000000..73993c8
--- /dev/null
@@ -0,0 +1,37 @@
+#objdump: -d --prefix-addresses
+#as: -m68hc11 --mri -I../testsuite/gas/m68hc11/
+#name: Motorola Assembly Language Input Standard
+
+# Test compliance with MALIS
+
+.*: +file format elf32\-m68hc11
+
+Disassembly of section .text:
+0+000 <L0> ldaa        1,x
+0+002 <L1> ldaa        #44
+0+004 <L_txt2> ldx     #0+000 <L0>
+0+007 <L_constant> ldaa        #123
+0+009 <L_constant\+0x2> ldaa   #233
+0+00b <L_constant\+0x4> ldab   #138
+0+00d <L_constant\+0x6> ldab   #7
+0+00f <L_constant\+0x8> ldaa   #60
+0+011 <L_constant\+0xa> ldaa   #255
+0+013 <L12> ldaa       #174
+0+015 <L13> ldaa       #178
+0+017 <L11> ldx        #0+0af <entry\+0x6c>
+0+01a <L11\+0x3> ldx   #0+001 <L0\+0x1>
+0+01d <L11\+0x6> ldx   #0+001 <L0\+0x1>
+0+020 <L11\+0x9> ldx   #0+000 <L0>
+0+023 <L11\+0xc> ldab  #210
+0+025 <L_if> ldx       #0+001 <L0\+0x1>
+0+028 <L_if\+0x3> ldaa #31
+0+02a <L_if\+0x5> ldaa #4
+0+02c <L_if\+0x7> ldx  #0+017 <L11>
+0+02f <L_if\+0xa> ldx  #0+004 <L_txt2>
+0+032 <L_if\+0xd> ldy  #0+001 <L0\+0x1>
+0+036 <L_if\+0x11> ldy #0+001 <L0\+0x1>
+0+03a <L_if\+0x15> ldaa        #23
+0+03c <L_if\+0x17> staa        0+018 <L11\+0x1>
+0+03f <L_if\+0x1a> rts
+0+040 <L_if\+0x1b> ldaa        0+017 <L11>
+0+043 <entry> rts
diff --git a/gas/testsuite/gas/m68hc11/malis.s b/gas/testsuite/gas/m68hc11/malis.s
new file mode 100644 (file)
index 0000000..c35db9c
--- /dev/null
@@ -0,0 +1,240 @@
+;;
+;; This file verifies the compliance with the Motorola specification:
+;; 
+;; MOTOROLA STANDARDS
+;; Document #1001, Version 1.0
+;; SPECIFICATION FOR Motorola 8- and 16-Bit ASSEMBLY LANGUAGE INPUT STANDARD
+;; 26, October 1999
+;;
+;; Available at:
+;; 
+;; http://www.mcu.motsps.com/dev_tools/hc12/eabi/m8-16alis.pdf
+;;
+;; Lines starting with '#' represent instructions that fail in GAS.
+;;
+;;
+;; Section 8.2 INPUTS
+       ;; Validated within the whole file
+       
+;; Section 8.2.1 Character Set
+       ;; TBD
+
+;; Section 8.2.2 Assembly Language Statement
+       ;; Validated within the whole file
+
+;; Section 8.2.3 Comments
+       ; Motorola comment
+       ;; This file is full of comments
+
+;; Section 8.2.5 Location Counter
+       section .text
+
+_start:
+L0:    *                       ; L0 set to 0 (relative to text)
+       ldaa    1,x
+L1:    equ     *               ; L1 set to 2 (relative to text)
+
+;; Section 8.2.6 Sections
+       section .data
+       section .text
+       section empty
+       section .text
+
+;; Section 8.2.7 Expressions
+L2:    equ     23              ; Absolute = 0x17
+L3:    equ     L0-23           ; Simple relocatable
+
+;; Section 8.2.7.1 Primary Expression
+L4:    equ     45              ; Numeric  = 0x2d
+L5:    equ     L0              ; Symbolic
+
+;; Section 8.2.7.2 Absolute Expression
+L_txt: ldaa    #44
+L_txt2:
+L6:    equ     -L4             ; unary expr            0xffffffd3
+L7:    equ     L6+1000         ; binary expr           0x03bb
+L8:    equ     L6-12           ;                       0xffffffc7
+L9:    equ     L_txt2-L_txt    ; reloc - reloc         2 = sizeof(ldaa #44)
+
+;; Section 8.2.7.3 Simple Relocatable Expressions
+L10:   equ     _start          ; symbol                0 + text
+L11:   equ     L10+23          ; reloc+abs             0x17 + text
+L12:   equ     L11-4           ; reloc-abs             0x13 + text
+L13:   equ     L12+L9          ; reloc+abs             0x15 + text
+
+;; Section 8.2.8 Symbols
+       section .text
+Text_Symbol:
+       ldx     #Data_Symbol
+
+       section .data
+Data_Symbol:
+
+;; Section 8.2.8.1 Labels
+L_label_shall_be_significant_to_at_least_32_chars:
+       dc.b    1
+L_label_lower:                 ; Labels are case sensitive
+       dc.b    2
+L_Label_Lower:
+       dc.b    3
+
+;; Section 8.2.9 Constants
+;
+;      Section 8.2.9.1 Decimal Constants
+       section .text
+L_constant:
+       ldaa    #123            ; -> ldaa #0x7b
+       ldaa    #-23            ; -> ldaa #0xe9
+       
+;;     Section 8.2.9.2 Binary Constants
+       ldab    #%10001010      ; -> ldab #0x8A
+       ldab    #%0111          ; -> ldab #0x07
+
+;;     Section 8.2.9.3 Octal Constants
+       ldaa    #@74            ; -> ldaa 0x3c
+       ldaa    #@377           ; -> ldaa 0xff
+
+;;     Section 8.2.9.4 Hexadecimal Constants
+       ldaa    #$ae            ; -> ldaa 0xae
+       ldaa    #$B2            ; -> ldaa 0xb2
+
+;;     Section 8.2.9.5 String Constants
+       section .data
+#      ascii   '"Single quote string"'
+       ascii   "'Double quote string'"
+
+;;     Section 8.2.9.6 Floating Point Constants
+;;     No specification
+L_float:       float   3.241592e-2
+
+;;     Section 8.2.10  Operators
+       section .text
+L_operator:
+       ldx     #(((1<<3)&(1<<3)|2)<<4)+(4*4-1)
+       ldx     #(L2>=23)&1-(L2<=23)&1+(L2==23)&1 ; -> ldx #1
+       ldx     #(L2>23)&1-(L2<23)&1+(L2==23)&1   ; -> ldx #0
+       ldx     #1-1+1-1+1-1
+       ldab    #~L4            ; -> ldab #0xd2
+#      ldab    #<_start        ; force to 8-bit
+#      ldx     #>_start        ; force to 16-bit
+#      ldab    #page(_start)   ; 68HC12 page number of symbol
+
+;; Section 8.2.11 Instructions
+;;     Defined by other tests
+
+;; Section 8.2.12 Assembler Directives
+;; 
+;; Section 8.2.12.1 Conditional Directives
+;;
+# The specification says we are allowed to have spaces in expressions.
+# This does not work with GAS in mri mode, the instruction 'if L2 < 24'
+# is in fact treated as 'if L2'.
+L_if:
+       if L2<24                ; true
+       ldx     #1              ; -> ldx #1
+       else
+       ldx     #2
+       endif
+       if L2<23||L2>23||L2==22+1 ; true
+       if L2<23                ; false
+       ldaa    #0
+       endif
+       if L2>23                ; false
+       ldaa    #1
+       endif
+       if L2 == 23             ; true
+       ldaa    #L2+8           ; -> ldaa #31
+       endif
+       if L2+2<23+2            ; false
+       if L2+4>23+4
+       ldaa    #1
+       elseif L2==23
+       ldaa    #2
+       else
+       ldaa    #3
+       endif
+       elseif L2==23           ; true
+       ldaa    #4              ; -> ldaa #4
+       else
+       ldaa    #5
+       endif
+       endif
+       ifdef L1                ; true
+       ldx     #23             ; -> ldx #0x17
+       endif
+       ifndef L_undef          ; true
+       ldx     #4              ; -> ldx #4
+       endif
+
+;;     Section 8.2.12.2 Define Constant -dc
+       section .data
+L_const_data:
+       dc.b    (1<<3)|2        ; 0x0a
+       dc.w    (1<<9)+2        ; 0x02 0x02
+       dc.l    $12345678
+       dc.b    10
+       dc.l    (1<<9)*(3<<12)
+#      dc.b    "Hello"
+#      dc.w    "World"
+#      dc.l    "!!!"
+
+;;     Section 8.2.12.3 Define Constant Block -dcb
+       dcb.b   3,2
+       dcb.w   2,$55AA
+       dcb.l   2,$12345678
+       dcb.b   10,2
+       dcb.w   5,$55AA
+       dcb.l   2,$12345678
+#      dcb.b   4, 12           ; Fails in GAS due to space
+
+;;     Section 8.2.12.4 Define Storage - ds
+       ds.b    4
+       ds.w    2
+       ds.l    1
+       ds      2
+
+;;     Section 8.2.12.5 Equate Symbol Value - equ
+L_equ1:        equ     (1<<8)+3
+L_equ2:        equ     L_equ1*3
+L_equ3:        equ     L_equ2-L_equ1
+
+;;     Section 8.2.12.6 Include File - include
+#      include 'malis-include.s'
+#      include "malis-include.s"
+       include malis-include.s
+       include malis-include.s
+
+;;     Section 8.2.12.7 Origin - org
+       section .text
+#      org     $100
+       ldaa    #23
+#      org     $200
+       staa    24
+#      org     $0
+       rts
+
+;;     Section 8.2.12.8 Define Section - section
+       section .text
+       ldaa    23
+
+       section .data
+       dc.b    23
+
+;;     Section 8.2.12.9 Set Value of Symbol - set
+s1:    set     3
+s1:    set     4
+s2:    set     s1+2
+s3:    set     s2+4
+
+;; Section 8.2.12.10 External Symbol Definition - xdef
+       xdef    s1
+       xdef    s2
+       xdef    entry
+
+;; Section 8.2.12.11 External Symbol Reference - xref
+       section .text
+       xref    printf
+       xrefb   write
+entry:
+       rts
+