mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-09 04:21:49 +08:00
Additional parsing tests for PA gas.
This commit is contained in:
parent
64285e8321
commit
7b5b8e5117
53
gas/testsuite/gas/hppa/more.parse/.Sanitize
Normal file
53
gas/testsuite/gas/hppa/more.parse/.Sanitize
Normal file
@ -0,0 +1,53 @@
|
||||
# Sanitize.in for devo.
|
||||
# $Id$
|
||||
#
|
||||
|
||||
# Each directory to survive it's way into a release will need a file
|
||||
# like this one called "./.Sanitize". All keyword lines must exist,
|
||||
# and must exist in the order specified by this file. Each directory
|
||||
# in the tree will be processed, top down, in the following order.
|
||||
|
||||
# Hash started lines like this one are comments and will be deleted
|
||||
# before anything else is done. Blank lines will also be squashed
|
||||
# out.
|
||||
|
||||
# The lines between the "Do-first:" line and the "Things-to-keep:"
|
||||
# line are executed as a /bin/sh shell script before anything else is
|
||||
# done in this
|
||||
|
||||
Do-first:
|
||||
|
||||
|
||||
# All files listed between the "Things-to-keep:" line and the
|
||||
# "Files-to-sed:" line will be kept. All other files will be removed.
|
||||
# Directories listed in this section will have their own Sanitize
|
||||
# called. Directories not listed will be removed in their entirety
|
||||
# with rm -rf.
|
||||
|
||||
Things-to-keep:
|
||||
|
||||
align1.s
|
||||
align2.s
|
||||
block1.s
|
||||
block2.s
|
||||
calldatabug.s
|
||||
entrybug.s
|
||||
exportbug.s
|
||||
exprbug.s
|
||||
fixup7bug.s
|
||||
global.s
|
||||
linesepbug.s
|
||||
lselbug.s
|
||||
nosubspace.s
|
||||
parse.exp
|
||||
procbug.s
|
||||
spacebug.s
|
||||
stringer.s
|
||||
undefbug.s
|
||||
versionbug.s
|
||||
|
||||
Things-to-lose:
|
||||
|
||||
Do-last:
|
||||
|
||||
# End of file.
|
41
gas/testsuite/gas/hppa/more.parse/align1.s
Executable file
41
gas/testsuite/gas/hppa/more.parse/align1.s
Executable file
@ -0,0 +1,41 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $CODE$
|
||||
|
||||
.align 1
|
||||
.align 8
|
||||
nop
|
||||
; "8" assumed if no alignment given.
|
||||
.align
|
||||
nop
|
||||
.align 4096
|
||||
nop
|
||||
|
||||
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $BSS$
|
||||
|
||||
.ALIGN 8
|
||||
$L00BSS:
|
||||
home_buff:
|
||||
.BLOCK 1024
|
||||
.ALIGN 8
|
||||
current_buff:
|
||||
.BLOCK 1024
|
||||
.ALIGN 4
|
||||
lock_file:
|
||||
.BLOCK 4
|
||||
.ALIGN 8
|
||||
L332.name:
|
||||
.BLOCK 30
|
||||
.ALIGN 4
|
||||
L352.last_case_wa:
|
||||
.BLOCK 4
|
||||
|
||||
|
15
gas/testsuite/gas/hppa/more.parse/align2.s
Executable file
15
gas/testsuite/gas/hppa/more.parse/align2.s
Executable file
@ -0,0 +1,15 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $CODE$
|
||||
|
||||
.align 3
|
||||
|
||||
|
||||
|
||||
|
18
gas/testsuite/gas/hppa/more.parse/block1.s
Executable file
18
gas/testsuite/gas/hppa/more.parse/block1.s
Executable file
@ -0,0 +1,18 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $DATA$
|
||||
|
||||
foo:
|
||||
.block
|
||||
bar:
|
||||
.block 0x7fffffff
|
||||
com:
|
||||
|
||||
|
||||
|
15
gas/testsuite/gas/hppa/more.parse/block2.s
Executable file
15
gas/testsuite/gas/hppa/more.parse/block2.s
Executable file
@ -0,0 +1,15 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $DATA$
|
||||
|
||||
foo:
|
||||
.block -1
|
||||
|
||||
|
||||
|
189
gas/testsuite/gas/hppa/more.parse/calldatabug.s
Executable file
189
gas/testsuite/gas/hppa/more.parse/calldatabug.s
Executable file
@ -0,0 +1,189 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
.IMPORT $global$,DATA
|
||||
.IMPORT $$dyncall,MILLICODE
|
||||
; gcc_compiled.:
|
||||
.IMPORT printf,CODE
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $CODE$
|
||||
|
||||
.align 4
|
||||
LC$0000
|
||||
.STRING "%d %lf %d\x0a\x00"
|
||||
.align 4
|
||||
.EXPORT error__3AAAiidi
|
||||
.EXPORT error__3AAAiidi,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=FR,ARGW4=FU,RTNVAL=GR
|
||||
error__3AAAiidi
|
||||
.PROC
|
||||
.CALLINFO FRAME=128,CALLS,SAVE_RP
|
||||
.ENTRY
|
||||
stw 2,-20(0,30)
|
||||
copy 4,1
|
||||
copy 30,4
|
||||
stwm 1,128(0,30)
|
||||
stw 9,8(0,4)
|
||||
stw 8,12(0,4)
|
||||
stw 7,16(0,4)
|
||||
stw 6,20(0,4)
|
||||
stw 5,24(0,4)
|
||||
copy %r26,%r5
|
||||
ldo -8(0),%r6
|
||||
ldo -32(%r4),%r19
|
||||
add %r19,%r6,%r7
|
||||
stw %r25,0(0,%r7)
|
||||
ldo -12(0),%r8
|
||||
ldo -32(%r4),%r19
|
||||
add %r19,%r8,%r9
|
||||
stw %r24,0(0,%r9)
|
||||
ldo -8(0),%r19
|
||||
ldo -32(%r4),%r20
|
||||
add %r20,%r19,%r19
|
||||
ldo -24(0),%r20
|
||||
ldo -32(%r4),%r21
|
||||
add %r21,%r20,%r20
|
||||
ldo -28(0),%r21
|
||||
ldo -32(%r4),%r22
|
||||
add %r22,%r21,%r21
|
||||
ldw 0(0,%r21),%r22
|
||||
stw %r22,-52(0,%r30)
|
||||
ldil L'LC$0000,%r26
|
||||
ldo R'LC$0000(%r26),%r26
|
||||
ldw 0(0,%r19),%r25
|
||||
fldds 0(0,%r20),%fr7
|
||||
.CALL ARGW0=GR,ARGW1=GR,ARGW2=FR,ARGW3=FU
|
||||
bl printf,2
|
||||
nop
|
||||
bl,n L$0002,0
|
||||
bl,n L$0001,0
|
||||
L$0002
|
||||
L$0001
|
||||
ldw 8(0,4),9
|
||||
ldw 12(0,4),8
|
||||
ldw 16(0,4),7
|
||||
ldw 20(0,4),6
|
||||
ldw 24(0,4),5
|
||||
ldo 8(4),30
|
||||
ldw -28(0,30),2
|
||||
bv 0(2)
|
||||
ldwm -8(30),4
|
||||
.EXIT
|
||||
.PROCEND
|
||||
.align 4
|
||||
.EXPORT ok__3AAAidi
|
||||
.EXPORT ok__3AAAidi,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,ARGW2=FR,ARGW3=FU,RTNVAL=GR
|
||||
ok__3AAAidi
|
||||
.PROC
|
||||
.CALLINFO FRAME=128,CALLS,SAVE_RP
|
||||
.ENTRY
|
||||
stw 2,-20(0,30)
|
||||
copy 4,1
|
||||
copy 30,4
|
||||
stwm 1,128(0,30)
|
||||
stw 9,8(0,4)
|
||||
stw 8,12(0,4)
|
||||
stw 7,16(0,4)
|
||||
stw 6,20(0,4)
|
||||
stw 5,24(0,4)
|
||||
copy %r26,%r5
|
||||
ldo -8(0),%r6
|
||||
ldo -32(%r4),%r19
|
||||
add %r19,%r6,%r7
|
||||
stw %r25,0(0,%r7)
|
||||
ldo -16(0),%r8
|
||||
ldo -32(%r4),%r19
|
||||
add %r19,%r8,%r9
|
||||
fstds %fr7,0(0,%r9)
|
||||
ldo -8(0),%r19
|
||||
ldo -32(%r4),%r20
|
||||
add %r20,%r19,%r19
|
||||
ldo -16(0),%r20
|
||||
ldo -32(%r4),%r21
|
||||
add %r21,%r20,%r20
|
||||
ldo -20(0),%r21
|
||||
ldo -32(%r4),%r22
|
||||
add %r22,%r21,%r21
|
||||
ldw 0(0,%r21),%r22
|
||||
stw %r22,-52(0,%r30)
|
||||
ldil L'LC$0000,%r26
|
||||
ldo R'LC$0000(%r26),%r26
|
||||
ldw 0(0,%r19),%r25
|
||||
fldds 0(0,%r20),%fr7
|
||||
.CALL ARGW0=GR,ARGW1=GR,ARGW2=FR,ARGW3=FU
|
||||
bl printf,2
|
||||
nop
|
||||
bl,n L$0004,0
|
||||
bl,n L$0003,0
|
||||
L$0004
|
||||
L$0003
|
||||
ldw 8(0,4),9
|
||||
ldw 12(0,4),8
|
||||
ldw 16(0,4),7
|
||||
ldw 20(0,4),6
|
||||
ldw 24(0,4),5
|
||||
ldo 8(4),30
|
||||
ldw -28(0,30),2
|
||||
bv 0(2)
|
||||
ldwm -8(30),4
|
||||
.EXIT
|
||||
.PROCEND
|
||||
.IMPORT __main,CODE
|
||||
.align 8
|
||||
LC$0001
|
||||
; .double 5.50000000000000000000e+00
|
||||
.word 1075183616 ; = 0x40160000
|
||||
.word 0 ; = 0x0
|
||||
.align 4
|
||||
.EXPORT main
|
||||
.EXPORT main,PRIV_LEV=3,RTNVAL=GR
|
||||
main
|
||||
.PROC
|
||||
.CALLINFO FRAME=128,CALLS,SAVE_RP
|
||||
.ENTRY
|
||||
stw 2,-20(0,30)
|
||||
copy 4,1
|
||||
copy 30,4
|
||||
stwm 1,128(0,30)
|
||||
.CALL
|
||||
bl __main,2
|
||||
nop
|
||||
ldo -24(0),%r19
|
||||
ldo -32(%r30),%r20
|
||||
add %r20,%r19,%r19
|
||||
ldil L'LC$0001,%r20
|
||||
ldo R'LC$0001(%r20),%r21
|
||||
ldw 0(0,%r21),%r22
|
||||
ldw 4(0,%r21),%r23
|
||||
stw %r22,0(0,%r19)
|
||||
stw %r23,4(0,%r19)
|
||||
ldo 3(0),%r19
|
||||
stw %r19,-60(0,%r30)
|
||||
ldo 8(%r4),%r26
|
||||
ldo 1(0),%r25
|
||||
ldo 4(0),%r24
|
||||
.CALL ARGW0=GR,ARGW1=GR,ARGW2=GR
|
||||
bl error__3AAAiidi,2
|
||||
nop
|
||||
ldo 3(0),%r19
|
||||
stw %r19,-52(0,%r30)
|
||||
ldo 8(%r4),%r26
|
||||
ldo 1(0),%r25
|
||||
ldil L'LC$0001,%r19
|
||||
ldo R'LC$0001(%r19),%r20
|
||||
fldds 0(0,%r20),%fr7
|
||||
.CALL ARGW0=GR,ARGW1=GR,ARGW2=FR,ARGW3=FU
|
||||
bl ok__3AAAidi,2
|
||||
nop
|
||||
copy 0,%r28
|
||||
bl,n L$0005,0
|
||||
bl,n L$0005,0
|
||||
L$0005
|
||||
ldo 8(4),30
|
||||
ldw -28(0,30),2
|
||||
bv 0(2)
|
||||
ldwm -8(30),4
|
||||
.EXIT
|
||||
.PROCEND
|
||||
|
24
gas/testsuite/gas/hppa/more.parse/entrybug.s
Executable file
24
gas/testsuite/gas/hppa/more.parse/entrybug.s
Executable file
@ -0,0 +1,24 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
.IMPORT $global$,DATA
|
||||
.IMPORT $$dyncall,MILLICODE
|
||||
; gcc_compiled.:
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $CODE$
|
||||
|
||||
.align 4
|
||||
.PARAM foo,RTNVAL=GR
|
||||
foo:
|
||||
.PROC
|
||||
.CALLINFO FRAME=128,NO_CALLS,ENTRY_GR=1,ENTRY_FR=11
|
||||
.ENTRY
|
||||
bv,n 0(%r2)
|
||||
.EXIT
|
||||
.PROCEND
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$
|
||||
|
14
gas/testsuite/gas/hppa/more.parse/exportbug.s
Executable file
14
gas/testsuite/gas/hppa/more.parse/exportbug.s
Executable file
@ -0,0 +1,14 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $CODE$
|
||||
|
||||
.align 4
|
||||
.EXPORT main,ENTRY,PRIV_LEV=3,RTNVAL=GR
|
||||
|
||||
|
39
gas/testsuite/gas/hppa/more.parse/exprbug.s
Normal file
39
gas/testsuite/gas/hppa/more.parse/exprbug.s
Normal file
@ -0,0 +1,39 @@
|
||||
.space $TEXT$
|
||||
.subspa $CODE$
|
||||
|
||||
.align 8
|
||||
.export icode,data
|
||||
icode:
|
||||
.proc
|
||||
.callinfo frame=0,no_calls
|
||||
.entry
|
||||
bv,n 0(2)
|
||||
.exit
|
||||
nop
|
||||
.procend
|
||||
|
||||
;
|
||||
; FIRST, argv array of pointers to args, 1st is same as path.
|
||||
;
|
||||
.align 8
|
||||
ic_argv:
|
||||
.word ic_argv1-icode ; second, pointer to 1st argument
|
||||
.word ic_path-icode ; first, pointer to init path
|
||||
.word 0 ; fourth, NULL argv terminator (pad)
|
||||
.word 0 ; third, NULL argv terminator
|
||||
|
||||
ic_path:
|
||||
.blockz 4096 ; must be multiple of 4 bytes
|
||||
.word 0 ; in case full string is used
|
||||
.word 0 ; this will be the string terminator
|
||||
|
||||
ic_argv1:
|
||||
.blockz 4096 ; must be multiple of 4 bytes
|
||||
.word 0 ; in case full string is used
|
||||
.word 0 ; this will be the string terminator
|
||||
|
||||
.export szicode,data
|
||||
szicode:
|
||||
.word szicode-icode
|
||||
.word 0 ; must have at least one filler at end
|
||||
|
6192
gas/testsuite/gas/hppa/more.parse/fixup7bug.s
Executable file
6192
gas/testsuite/gas/hppa/more.parse/fixup7bug.s
Executable file
File diff suppressed because it is too large
Load Diff
15
gas/testsuite/gas/hppa/more.parse/global.s
Executable file
15
gas/testsuite/gas/hppa/more.parse/global.s
Executable file
@ -0,0 +1,15 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $CODE$
|
||||
.IMPORT foo,data
|
||||
|
||||
.align 4
|
||||
; Official gas code will not accept sym-$global$.
|
||||
addil L%foo-$global$,%r27
|
||||
|
20
gas/testsuite/gas/hppa/more.parse/linesepbug.s
Executable file
20
gas/testsuite/gas/hppa/more.parse/linesepbug.s
Executable file
@ -0,0 +1,20 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $CODE$
|
||||
|
||||
.align 4
|
||||
; Basic immediate instruction tests.
|
||||
;
|
||||
; We could/should test some of the corner cases for register and
|
||||
; immediate fields. We should also check the assorted field
|
||||
; selectors to make sure they're handled correctly.
|
||||
|
||||
foo:
|
||||
.WORD 0 !.IMPORT $bar$,DATA
|
||||
|
18
gas/testsuite/gas/hppa/more.parse/lselbug.s
Executable file
18
gas/testsuite/gas/hppa/more.parse/lselbug.s
Executable file
@ -0,0 +1,18 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $CODE$
|
||||
|
||||
.align 4
|
||||
; In gas-1.36 the ldil instruction using parenthesis generated
|
||||
; garbage bits while the one without parens worked fine.
|
||||
ldil L%(0x00040000 | 0x00000008 | 0x00000002),%r21
|
||||
ldo L%(0x00040000 | 0x00000008 | 0x00000002) (%r21),%r21
|
||||
ldil L%0x00040000 | 0x00000008 | 0x00000002,%r21
|
||||
ldo L%0x00040000 | 0x00000008 | 0x00000002 (%r21),%r21
|
||||
|
21
gas/testsuite/gas/hppa/more.parse/nosubspace.s
Executable file
21
gas/testsuite/gas/hppa/more.parse/nosubspace.s
Executable file
@ -0,0 +1,21 @@
|
||||
.SPACE $TEXT$
|
||||
|
||||
.align 4
|
||||
.EXPORT mpn_add_n
|
||||
.EXPORT mpn_add_n,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR
|
||||
mpn_add_n:
|
||||
.PROC
|
||||
.CALLINFO FRAME=0,NO_CALLS
|
||||
.ENTRY
|
||||
|
||||
add %r0,%r0,%r0 ; reset cy
|
||||
Loop:
|
||||
ldws,ma 4(0,%r25),%r20
|
||||
ldws,ma 4(0,%r24),%r19
|
||||
|
||||
addc %r19,%r20,%r19
|
||||
addib,<> -1,%r23,Loop
|
||||
stws,ma %r19,4(0,%r26)
|
||||
|
||||
bv 0(2)
|
||||
addc %r0,%r0,%r28
|
188
gas/testsuite/gas/hppa/more.parse/parse.exp
Executable file
188
gas/testsuite/gas/hppa/more.parse/parse.exp
Executable file
@ -0,0 +1,188 @@
|
||||
# Copyright (C) 1993 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., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
|
||||
# Please email any bugs, comments, and/or additions to this file to:
|
||||
# DejaGnu@cygnus.com
|
||||
|
||||
# Written by the Center for Software Science at the University of Utah
|
||||
# and by Cygnus Support.
|
||||
|
||||
proc do_string_tests {} {
|
||||
set testname "stringer.s: Test embedded quotes and octal escapes in strings"
|
||||
set x 0
|
||||
|
||||
gas_start "stringer.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 23696E63\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 6C756465\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 6B2E6465\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 66220A00\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 0014 09307831\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 3233\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "\[^\n\]*\n" { }
|
||||
timeout { error "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==6] then { pass $testname } else { fail $testname }
|
||||
}
|
||||
|
||||
proc do_lsel_test {} {
|
||||
set testname "lselbugs.s: lselbug"
|
||||
set x 0
|
||||
|
||||
gas_start "lselbug.s" "-al"
|
||||
|
||||
# Make sure we correctly handle field selectors.
|
||||
while 1 {
|
||||
expect {
|
||||
-re "^ +\[0-9\]+ 0000 22A04000\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 0004 36B50100\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 0008 22A04000\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 000c 36B50100\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "\[^\n\]*\n" { }
|
||||
timeout { error "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_valid_align_tests {} {
|
||||
set testname "align1.s: valid alignment tests"
|
||||
set x 0
|
||||
|
||||
gas_start "align1.s" "-al"
|
||||
|
||||
# Make sure we correctly handle field selectors.
|
||||
while 1 {
|
||||
expect {
|
||||
-re "^ +\[0-9\]+ 0000 08000240\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 0008 08000240\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 1000 08000240\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 0000\[^\n\]*BLOCK\[^\n\]*1024\[^\n\]*\n"
|
||||
{ set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 0400\[^\n\]*BLOCK\[^\n\]*1024\[^\n\]*\n"
|
||||
{ set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 0800\[^\n\]*BLOCK\[^\n\]*4\[^\n\]*\n"
|
||||
{ set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 0804\[^\n\]*ALIGN\[^\n\]*8\[^\n\]*\n"
|
||||
{ set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 0808\[^\n\]*BLOCK\[^\n\]*30\[^\n\]*\n"
|
||||
{ set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 0826\[^\n\]*ALIGN\[^\n\]*4\[^\n\]*\n"
|
||||
{ set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 0828\[^\n\]*BLOCK\[^\n\]*4\[^\n\]*\n"
|
||||
{ set x [expr $x+1] }
|
||||
-re "\[^\n\]*\n" { }
|
||||
timeout { error "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==10] then { pass $testname } else { fail $testname }
|
||||
}
|
||||
|
||||
if [istarget hppa*-*-*] then {
|
||||
# GAS-2.0 does not always parse ! as a line separator when it should.
|
||||
setup_xfail hppa*-*-*
|
||||
gas_test "linesepbug.s" "" "" "line separator bug"
|
||||
|
||||
# Make sure GAS accepts syntax for accessing static data.
|
||||
gas_test "global.s" "" "" "check for sym-\$global\$ acceptance"
|
||||
|
||||
# GAS-2.0 (and 1.36 for that matter) can not handle a .proc which
|
||||
# has no label before it.
|
||||
setup_xfail hppa*-*-*
|
||||
gas_test "procbug.s" "" "" "Label following .proc"
|
||||
|
||||
# One is required to explicitly IMPORT any non-local symbol used
|
||||
# in an assembly file. Make sure we give an error if we use
|
||||
# an undefined symbol.
|
||||
setup_xfail hppa*-*-*
|
||||
gas_test_error "undefbug.s" "" "Check for error when using undefined symbol"
|
||||
|
||||
# This file has code and assembler directives before switching into any
|
||||
# space/subspace pair. This should report an error.
|
||||
gas_test_error "nosubspace.s" "" "Check for error if no subspace directive"
|
||||
|
||||
# This file should return errors for both the ENTRY_GR and ENTRY_FR
|
||||
# directives (they are out-of-range)
|
||||
gas_test_error "entrybug.s" "" "Check for error on entry_gr and entry_fr"
|
||||
|
||||
# Make sure embedded quotes and octal escapes in strings work
|
||||
do_string_tests
|
||||
|
||||
# Make sure we do not die on a .version directive
|
||||
gas_test "versionbug.s" "" "" ".version directive"
|
||||
|
||||
# Make sure we give an error on a bogus .space directive.
|
||||
# recent version of gas2 went into infinite loops printing
|
||||
# errors on this test.
|
||||
gas_test_error "spacebug.s" "" "Check for error on bogus .space directive"
|
||||
|
||||
# GAS should give an error for this test.
|
||||
gas_test_error "calldatabug.s" "" "Check for invalid aguments on .call"
|
||||
|
||||
# Old versions of gas incorrectly gave errors on some valid .EXPORT lines
|
||||
gas_test "exportbug.s" "" "" "syntax check for an old .EXPORT bug"
|
||||
|
||||
# Old versions of gas choked on this file for some reason
|
||||
gas_test "fixup7bug.s" "" "" "check for old \"fixup7\" gas bug"
|
||||
|
||||
# Test an L% selector parsing bug which existed in gas-1.36
|
||||
do_lsel_test
|
||||
|
||||
# First check how some valid alignments are handled.
|
||||
do_valid_align_tests
|
||||
|
||||
# Now check to make sure an invalid argument is flagged as an error.
|
||||
gas_test_error "align2.s" "" "Check for error on bogus argument to .align"
|
||||
|
||||
# GAS can't handle upper bound for a PA .block[z] directive
|
||||
setup_xfail hppa*-*-*
|
||||
gas_test "block.s" "" "" "Check min/max values for .block"
|
||||
|
||||
# Now check for an invalid argument
|
||||
gas_test_error "block2" "" "Check for error on bogus argument to .block"
|
||||
|
||||
# GAS-1.36 choked on this file.
|
||||
# FIXME. Should check relocations made for this test!
|
||||
gas_test "exprbug.s" "" "" "Check for sym1-sym2 acceptance"
|
||||
}
|
||||
|
7
gas/testsuite/gas/hppa/more.parse/procbug.s
Executable file
7
gas/testsuite/gas/hppa/more.parse/procbug.s
Executable file
@ -0,0 +1,7 @@
|
||||
.space $TEXT$
|
||||
.subspa $CODE$
|
||||
.align 4
|
||||
.export divu,entry
|
||||
.proc
|
||||
.callinfo
|
||||
divu: stws,ma %r4,4(%r5) ; save registers on stack
|
3
gas/testsuite/gas/hppa/more.parse/spacebug.s
Normal file
3
gas/testsuite/gas/hppa/more.parse/spacebug.s
Normal file
@ -0,0 +1,3 @@
|
||||
start: .long 0, 1, 2, 3, 4, 5, 6, 7
|
||||
.space 0x20 - (. - start)
|
||||
foo: .long 42
|
19
gas/testsuite/gas/hppa/more.parse/stringer.s
Executable file
19
gas/testsuite/gas/hppa/more.parse/stringer.s
Executable file
@ -0,0 +1,19 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$
|
||||
|
||||
|
||||
; GAS used to mis-parse the embedded quotes
|
||||
.STRING "#include \"awk.def\"\x0a\x00"
|
||||
|
||||
; Octal escapes used to consume > 3 chars which led to this
|
||||
; string being screwed in a big way.
|
||||
.STRING "\0110x123"
|
||||
|
||||
|
14
gas/testsuite/gas/hppa/more.parse/undefbug.s
Executable file
14
gas/testsuite/gas/hppa/more.parse/undefbug.s
Executable file
@ -0,0 +1,14 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $CODE$
|
||||
|
||||
.align 4
|
||||
bl somewhere,%r2
|
||||
nop
|
||||
|
9
gas/testsuite/gas/hppa/more.parse/versionbug.s
Executable file
9
gas/testsuite/gas/hppa/more.parse/versionbug.s
Executable file
@ -0,0 +1,9 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
|
||||
.VERSION "abc123"
|
||||
|
53
gas/testsuite/gas/hppa/parse/.Sanitize
Normal file
53
gas/testsuite/gas/hppa/parse/.Sanitize
Normal file
@ -0,0 +1,53 @@
|
||||
# Sanitize.in for devo.
|
||||
# $Id$
|
||||
#
|
||||
|
||||
# Each directory to survive it's way into a release will need a file
|
||||
# like this one called "./.Sanitize". All keyword lines must exist,
|
||||
# and must exist in the order specified by this file. Each directory
|
||||
# in the tree will be processed, top down, in the following order.
|
||||
|
||||
# Hash started lines like this one are comments and will be deleted
|
||||
# before anything else is done. Blank lines will also be squashed
|
||||
# out.
|
||||
|
||||
# The lines between the "Do-first:" line and the "Things-to-keep:"
|
||||
# line are executed as a /bin/sh shell script before anything else is
|
||||
# done in this
|
||||
|
||||
Do-first:
|
||||
|
||||
|
||||
# All files listed between the "Things-to-keep:" line and the
|
||||
# "Files-to-sed:" line will be kept. All other files will be removed.
|
||||
# Directories listed in this section will have their own Sanitize
|
||||
# called. Directories not listed will be removed in their entirety
|
||||
# with rm -rf.
|
||||
|
||||
Things-to-keep:
|
||||
|
||||
align1.s
|
||||
align2.s
|
||||
block1.s
|
||||
block2.s
|
||||
calldatabug.s
|
||||
entrybug.s
|
||||
exportbug.s
|
||||
exprbug.s
|
||||
fixup7bug.s
|
||||
global.s
|
||||
linesepbug.s
|
||||
lselbug.s
|
||||
nosubspace.s
|
||||
parse.exp
|
||||
procbug.s
|
||||
spacebug.s
|
||||
stringer.s
|
||||
undefbug.s
|
||||
versionbug.s
|
||||
|
||||
Things-to-lose:
|
||||
|
||||
Do-last:
|
||||
|
||||
# End of file.
|
41
gas/testsuite/gas/hppa/parse/align1.s
Executable file
41
gas/testsuite/gas/hppa/parse/align1.s
Executable file
@ -0,0 +1,41 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $CODE$
|
||||
|
||||
.align 1
|
||||
.align 8
|
||||
nop
|
||||
; "8" assumed if no alignment given.
|
||||
.align
|
||||
nop
|
||||
.align 4096
|
||||
nop
|
||||
|
||||
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $BSS$
|
||||
|
||||
.ALIGN 8
|
||||
$L00BSS:
|
||||
home_buff:
|
||||
.BLOCK 1024
|
||||
.ALIGN 8
|
||||
current_buff:
|
||||
.BLOCK 1024
|
||||
.ALIGN 4
|
||||
lock_file:
|
||||
.BLOCK 4
|
||||
.ALIGN 8
|
||||
L332.name:
|
||||
.BLOCK 30
|
||||
.ALIGN 4
|
||||
L352.last_case_wa:
|
||||
.BLOCK 4
|
||||
|
||||
|
15
gas/testsuite/gas/hppa/parse/align2.s
Executable file
15
gas/testsuite/gas/hppa/parse/align2.s
Executable file
@ -0,0 +1,15 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $CODE$
|
||||
|
||||
.align 3
|
||||
|
||||
|
||||
|
||||
|
18
gas/testsuite/gas/hppa/parse/block1.s
Executable file
18
gas/testsuite/gas/hppa/parse/block1.s
Executable file
@ -0,0 +1,18 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $DATA$
|
||||
|
||||
foo:
|
||||
.block
|
||||
bar:
|
||||
.block 0x7fffffff
|
||||
com:
|
||||
|
||||
|
||||
|
15
gas/testsuite/gas/hppa/parse/block2.s
Executable file
15
gas/testsuite/gas/hppa/parse/block2.s
Executable file
@ -0,0 +1,15 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $DATA$
|
||||
|
||||
foo:
|
||||
.block -1
|
||||
|
||||
|
||||
|
189
gas/testsuite/gas/hppa/parse/calldatabug.s
Executable file
189
gas/testsuite/gas/hppa/parse/calldatabug.s
Executable file
@ -0,0 +1,189 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
.IMPORT $global$,DATA
|
||||
.IMPORT $$dyncall,MILLICODE
|
||||
; gcc_compiled.:
|
||||
.IMPORT printf,CODE
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $CODE$
|
||||
|
||||
.align 4
|
||||
LC$0000
|
||||
.STRING "%d %lf %d\x0a\x00"
|
||||
.align 4
|
||||
.EXPORT error__3AAAiidi
|
||||
.EXPORT error__3AAAiidi,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=FR,ARGW4=FU,RTNVAL=GR
|
||||
error__3AAAiidi
|
||||
.PROC
|
||||
.CALLINFO FRAME=128,CALLS,SAVE_RP
|
||||
.ENTRY
|
||||
stw 2,-20(0,30)
|
||||
copy 4,1
|
||||
copy 30,4
|
||||
stwm 1,128(0,30)
|
||||
stw 9,8(0,4)
|
||||
stw 8,12(0,4)
|
||||
stw 7,16(0,4)
|
||||
stw 6,20(0,4)
|
||||
stw 5,24(0,4)
|
||||
copy %r26,%r5
|
||||
ldo -8(0),%r6
|
||||
ldo -32(%r4),%r19
|
||||
add %r19,%r6,%r7
|
||||
stw %r25,0(0,%r7)
|
||||
ldo -12(0),%r8
|
||||
ldo -32(%r4),%r19
|
||||
add %r19,%r8,%r9
|
||||
stw %r24,0(0,%r9)
|
||||
ldo -8(0),%r19
|
||||
ldo -32(%r4),%r20
|
||||
add %r20,%r19,%r19
|
||||
ldo -24(0),%r20
|
||||
ldo -32(%r4),%r21
|
||||
add %r21,%r20,%r20
|
||||
ldo -28(0),%r21
|
||||
ldo -32(%r4),%r22
|
||||
add %r22,%r21,%r21
|
||||
ldw 0(0,%r21),%r22
|
||||
stw %r22,-52(0,%r30)
|
||||
ldil L'LC$0000,%r26
|
||||
ldo R'LC$0000(%r26),%r26
|
||||
ldw 0(0,%r19),%r25
|
||||
fldds 0(0,%r20),%fr7
|
||||
.CALL ARGW0=GR,ARGW1=GR,ARGW2=FR,ARGW3=FU
|
||||
bl printf,2
|
||||
nop
|
||||
bl,n L$0002,0
|
||||
bl,n L$0001,0
|
||||
L$0002
|
||||
L$0001
|
||||
ldw 8(0,4),9
|
||||
ldw 12(0,4),8
|
||||
ldw 16(0,4),7
|
||||
ldw 20(0,4),6
|
||||
ldw 24(0,4),5
|
||||
ldo 8(4),30
|
||||
ldw -28(0,30),2
|
||||
bv 0(2)
|
||||
ldwm -8(30),4
|
||||
.EXIT
|
||||
.PROCEND
|
||||
.align 4
|
||||
.EXPORT ok__3AAAidi
|
||||
.EXPORT ok__3AAAidi,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,ARGW2=FR,ARGW3=FU,RTNVAL=GR
|
||||
ok__3AAAidi
|
||||
.PROC
|
||||
.CALLINFO FRAME=128,CALLS,SAVE_RP
|
||||
.ENTRY
|
||||
stw 2,-20(0,30)
|
||||
copy 4,1
|
||||
copy 30,4
|
||||
stwm 1,128(0,30)
|
||||
stw 9,8(0,4)
|
||||
stw 8,12(0,4)
|
||||
stw 7,16(0,4)
|
||||
stw 6,20(0,4)
|
||||
stw 5,24(0,4)
|
||||
copy %r26,%r5
|
||||
ldo -8(0),%r6
|
||||
ldo -32(%r4),%r19
|
||||
add %r19,%r6,%r7
|
||||
stw %r25,0(0,%r7)
|
||||
ldo -16(0),%r8
|
||||
ldo -32(%r4),%r19
|
||||
add %r19,%r8,%r9
|
||||
fstds %fr7,0(0,%r9)
|
||||
ldo -8(0),%r19
|
||||
ldo -32(%r4),%r20
|
||||
add %r20,%r19,%r19
|
||||
ldo -16(0),%r20
|
||||
ldo -32(%r4),%r21
|
||||
add %r21,%r20,%r20
|
||||
ldo -20(0),%r21
|
||||
ldo -32(%r4),%r22
|
||||
add %r22,%r21,%r21
|
||||
ldw 0(0,%r21),%r22
|
||||
stw %r22,-52(0,%r30)
|
||||
ldil L'LC$0000,%r26
|
||||
ldo R'LC$0000(%r26),%r26
|
||||
ldw 0(0,%r19),%r25
|
||||
fldds 0(0,%r20),%fr7
|
||||
.CALL ARGW0=GR,ARGW1=GR,ARGW2=FR,ARGW3=FU
|
||||
bl printf,2
|
||||
nop
|
||||
bl,n L$0004,0
|
||||
bl,n L$0003,0
|
||||
L$0004
|
||||
L$0003
|
||||
ldw 8(0,4),9
|
||||
ldw 12(0,4),8
|
||||
ldw 16(0,4),7
|
||||
ldw 20(0,4),6
|
||||
ldw 24(0,4),5
|
||||
ldo 8(4),30
|
||||
ldw -28(0,30),2
|
||||
bv 0(2)
|
||||
ldwm -8(30),4
|
||||
.EXIT
|
||||
.PROCEND
|
||||
.IMPORT __main,CODE
|
||||
.align 8
|
||||
LC$0001
|
||||
; .double 5.50000000000000000000e+00
|
||||
.word 1075183616 ; = 0x40160000
|
||||
.word 0 ; = 0x0
|
||||
.align 4
|
||||
.EXPORT main
|
||||
.EXPORT main,PRIV_LEV=3,RTNVAL=GR
|
||||
main
|
||||
.PROC
|
||||
.CALLINFO FRAME=128,CALLS,SAVE_RP
|
||||
.ENTRY
|
||||
stw 2,-20(0,30)
|
||||
copy 4,1
|
||||
copy 30,4
|
||||
stwm 1,128(0,30)
|
||||
.CALL
|
||||
bl __main,2
|
||||
nop
|
||||
ldo -24(0),%r19
|
||||
ldo -32(%r30),%r20
|
||||
add %r20,%r19,%r19
|
||||
ldil L'LC$0001,%r20
|
||||
ldo R'LC$0001(%r20),%r21
|
||||
ldw 0(0,%r21),%r22
|
||||
ldw 4(0,%r21),%r23
|
||||
stw %r22,0(0,%r19)
|
||||
stw %r23,4(0,%r19)
|
||||
ldo 3(0),%r19
|
||||
stw %r19,-60(0,%r30)
|
||||
ldo 8(%r4),%r26
|
||||
ldo 1(0),%r25
|
||||
ldo 4(0),%r24
|
||||
.CALL ARGW0=GR,ARGW1=GR,ARGW2=GR
|
||||
bl error__3AAAiidi,2
|
||||
nop
|
||||
ldo 3(0),%r19
|
||||
stw %r19,-52(0,%r30)
|
||||
ldo 8(%r4),%r26
|
||||
ldo 1(0),%r25
|
||||
ldil L'LC$0001,%r19
|
||||
ldo R'LC$0001(%r19),%r20
|
||||
fldds 0(0,%r20),%fr7
|
||||
.CALL ARGW0=GR,ARGW1=GR,ARGW2=FR,ARGW3=FU
|
||||
bl ok__3AAAidi,2
|
||||
nop
|
||||
copy 0,%r28
|
||||
bl,n L$0005,0
|
||||
bl,n L$0005,0
|
||||
L$0005
|
||||
ldo 8(4),30
|
||||
ldw -28(0,30),2
|
||||
bv 0(2)
|
||||
ldwm -8(30),4
|
||||
.EXIT
|
||||
.PROCEND
|
||||
|
24
gas/testsuite/gas/hppa/parse/entrybug.s
Executable file
24
gas/testsuite/gas/hppa/parse/entrybug.s
Executable file
@ -0,0 +1,24 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
.IMPORT $global$,DATA
|
||||
.IMPORT $$dyncall,MILLICODE
|
||||
; gcc_compiled.:
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $CODE$
|
||||
|
||||
.align 4
|
||||
.PARAM foo,RTNVAL=GR
|
||||
foo:
|
||||
.PROC
|
||||
.CALLINFO FRAME=128,NO_CALLS,ENTRY_GR=1,ENTRY_FR=11
|
||||
.ENTRY
|
||||
bv,n 0(%r2)
|
||||
.EXIT
|
||||
.PROCEND
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$
|
||||
|
14
gas/testsuite/gas/hppa/parse/exportbug.s
Executable file
14
gas/testsuite/gas/hppa/parse/exportbug.s
Executable file
@ -0,0 +1,14 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $CODE$
|
||||
|
||||
.align 4
|
||||
.EXPORT main,ENTRY,PRIV_LEV=3,RTNVAL=GR
|
||||
|
||||
|
39
gas/testsuite/gas/hppa/parse/exprbug.s
Normal file
39
gas/testsuite/gas/hppa/parse/exprbug.s
Normal file
@ -0,0 +1,39 @@
|
||||
.space $TEXT$
|
||||
.subspa $CODE$
|
||||
|
||||
.align 8
|
||||
.export icode,data
|
||||
icode:
|
||||
.proc
|
||||
.callinfo frame=0,no_calls
|
||||
.entry
|
||||
bv,n 0(2)
|
||||
.exit
|
||||
nop
|
||||
.procend
|
||||
|
||||
;
|
||||
; FIRST, argv array of pointers to args, 1st is same as path.
|
||||
;
|
||||
.align 8
|
||||
ic_argv:
|
||||
.word ic_argv1-icode ; second, pointer to 1st argument
|
||||
.word ic_path-icode ; first, pointer to init path
|
||||
.word 0 ; fourth, NULL argv terminator (pad)
|
||||
.word 0 ; third, NULL argv terminator
|
||||
|
||||
ic_path:
|
||||
.blockz 4096 ; must be multiple of 4 bytes
|
||||
.word 0 ; in case full string is used
|
||||
.word 0 ; this will be the string terminator
|
||||
|
||||
ic_argv1:
|
||||
.blockz 4096 ; must be multiple of 4 bytes
|
||||
.word 0 ; in case full string is used
|
||||
.word 0 ; this will be the string terminator
|
||||
|
||||
.export szicode,data
|
||||
szicode:
|
||||
.word szicode-icode
|
||||
.word 0 ; must have at least one filler at end
|
||||
|
6192
gas/testsuite/gas/hppa/parse/fixup7bug.s
Executable file
6192
gas/testsuite/gas/hppa/parse/fixup7bug.s
Executable file
File diff suppressed because it is too large
Load Diff
15
gas/testsuite/gas/hppa/parse/global.s
Executable file
15
gas/testsuite/gas/hppa/parse/global.s
Executable file
@ -0,0 +1,15 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $CODE$
|
||||
.IMPORT foo,data
|
||||
|
||||
.align 4
|
||||
; Official gas code will not accept sym-$global$.
|
||||
addil L%foo-$global$,%r27
|
||||
|
20
gas/testsuite/gas/hppa/parse/linesepbug.s
Executable file
20
gas/testsuite/gas/hppa/parse/linesepbug.s
Executable file
@ -0,0 +1,20 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $CODE$
|
||||
|
||||
.align 4
|
||||
; Basic immediate instruction tests.
|
||||
;
|
||||
; We could/should test some of the corner cases for register and
|
||||
; immediate fields. We should also check the assorted field
|
||||
; selectors to make sure they're handled correctly.
|
||||
|
||||
foo:
|
||||
.WORD 0 !.IMPORT $bar$,DATA
|
||||
|
18
gas/testsuite/gas/hppa/parse/lselbug.s
Executable file
18
gas/testsuite/gas/hppa/parse/lselbug.s
Executable file
@ -0,0 +1,18 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $CODE$
|
||||
|
||||
.align 4
|
||||
; In gas-1.36 the ldil instruction using parenthesis generated
|
||||
; garbage bits while the one without parens worked fine.
|
||||
ldil L%(0x00040000 | 0x00000008 | 0x00000002),%r21
|
||||
ldo L%(0x00040000 | 0x00000008 | 0x00000002) (%r21),%r21
|
||||
ldil L%0x00040000 | 0x00000008 | 0x00000002,%r21
|
||||
ldo L%0x00040000 | 0x00000008 | 0x00000002 (%r21),%r21
|
||||
|
21
gas/testsuite/gas/hppa/parse/nosubspace.s
Executable file
21
gas/testsuite/gas/hppa/parse/nosubspace.s
Executable file
@ -0,0 +1,21 @@
|
||||
.SPACE $TEXT$
|
||||
|
||||
.align 4
|
||||
.EXPORT mpn_add_n
|
||||
.EXPORT mpn_add_n,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR
|
||||
mpn_add_n:
|
||||
.PROC
|
||||
.CALLINFO FRAME=0,NO_CALLS
|
||||
.ENTRY
|
||||
|
||||
add %r0,%r0,%r0 ; reset cy
|
||||
Loop:
|
||||
ldws,ma 4(0,%r25),%r20
|
||||
ldws,ma 4(0,%r24),%r19
|
||||
|
||||
addc %r19,%r20,%r19
|
||||
addib,<> -1,%r23,Loop
|
||||
stws,ma %r19,4(0,%r26)
|
||||
|
||||
bv 0(2)
|
||||
addc %r0,%r0,%r28
|
188
gas/testsuite/gas/hppa/parse/parse.exp
Executable file
188
gas/testsuite/gas/hppa/parse/parse.exp
Executable file
@ -0,0 +1,188 @@
|
||||
# Copyright (C) 1993 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., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
|
||||
# Please email any bugs, comments, and/or additions to this file to:
|
||||
# DejaGnu@cygnus.com
|
||||
|
||||
# Written by the Center for Software Science at the University of Utah
|
||||
# and by Cygnus Support.
|
||||
|
||||
proc do_string_tests {} {
|
||||
set testname "stringer.s: Test embedded quotes and octal escapes in strings"
|
||||
set x 0
|
||||
|
||||
gas_start "stringer.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 23696E63\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 6C756465\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 6B2E6465\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 66220A00\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 0014 09307831\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 3233\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "\[^\n\]*\n" { }
|
||||
timeout { error "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==6] then { pass $testname } else { fail $testname }
|
||||
}
|
||||
|
||||
proc do_lsel_test {} {
|
||||
set testname "lselbugs.s: lselbug"
|
||||
set x 0
|
||||
|
||||
gas_start "lselbug.s" "-al"
|
||||
|
||||
# Make sure we correctly handle field selectors.
|
||||
while 1 {
|
||||
expect {
|
||||
-re "^ +\[0-9\]+ 0000 22A04000\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 0004 36B50100\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 0008 22A04000\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 000c 36B50100\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "\[^\n\]*\n" { }
|
||||
timeout { error "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_valid_align_tests {} {
|
||||
set testname "align1.s: valid alignment tests"
|
||||
set x 0
|
||||
|
||||
gas_start "align1.s" "-al"
|
||||
|
||||
# Make sure we correctly handle field selectors.
|
||||
while 1 {
|
||||
expect {
|
||||
-re "^ +\[0-9\]+ 0000 08000240\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 0008 08000240\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 1000 08000240\[^\n\]*\n" { set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 0000\[^\n\]*BLOCK\[^\n\]*1024\[^\n\]*\n"
|
||||
{ set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 0400\[^\n\]*BLOCK\[^\n\]*1024\[^\n\]*\n"
|
||||
{ set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 0800\[^\n\]*BLOCK\[^\n\]*4\[^\n\]*\n"
|
||||
{ set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 0804\[^\n\]*ALIGN\[^\n\]*8\[^\n\]*\n"
|
||||
{ set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 0808\[^\n\]*BLOCK\[^\n\]*30\[^\n\]*\n"
|
||||
{ set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 0826\[^\n\]*ALIGN\[^\n\]*4\[^\n\]*\n"
|
||||
{ set x [expr $x+1] }
|
||||
-re "^ +\[0-9\]+ 0828\[^\n\]*BLOCK\[^\n\]*4\[^\n\]*\n"
|
||||
{ set x [expr $x+1] }
|
||||
-re "\[^\n\]*\n" { }
|
||||
timeout { error "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==10] then { pass $testname } else { fail $testname }
|
||||
}
|
||||
|
||||
if [istarget hppa*-*-*] then {
|
||||
# GAS-2.0 does not always parse ! as a line separator when it should.
|
||||
setup_xfail hppa*-*-*
|
||||
gas_test "linesepbug.s" "" "" "line separator bug"
|
||||
|
||||
# Make sure GAS accepts syntax for accessing static data.
|
||||
gas_test "global.s" "" "" "check for sym-\$global\$ acceptance"
|
||||
|
||||
# GAS-2.0 (and 1.36 for that matter) can not handle a .proc which
|
||||
# has no label before it.
|
||||
setup_xfail hppa*-*-*
|
||||
gas_test "procbug.s" "" "" "Label following .proc"
|
||||
|
||||
# One is required to explicitly IMPORT any non-local symbol used
|
||||
# in an assembly file. Make sure we give an error if we use
|
||||
# an undefined symbol.
|
||||
setup_xfail hppa*-*-*
|
||||
gas_test_error "undefbug.s" "" "Check for error when using undefined symbol"
|
||||
|
||||
# This file has code and assembler directives before switching into any
|
||||
# space/subspace pair. This should report an error.
|
||||
gas_test_error "nosubspace.s" "" "Check for error if no subspace directive"
|
||||
|
||||
# This file should return errors for both the ENTRY_GR and ENTRY_FR
|
||||
# directives (they are out-of-range)
|
||||
gas_test_error "entrybug.s" "" "Check for error on entry_gr and entry_fr"
|
||||
|
||||
# Make sure embedded quotes and octal escapes in strings work
|
||||
do_string_tests
|
||||
|
||||
# Make sure we do not die on a .version directive
|
||||
gas_test "versionbug.s" "" "" ".version directive"
|
||||
|
||||
# Make sure we give an error on a bogus .space directive.
|
||||
# recent version of gas2 went into infinite loops printing
|
||||
# errors on this test.
|
||||
gas_test_error "spacebug.s" "" "Check for error on bogus .space directive"
|
||||
|
||||
# GAS should give an error for this test.
|
||||
gas_test_error "calldatabug.s" "" "Check for invalid aguments on .call"
|
||||
|
||||
# Old versions of gas incorrectly gave errors on some valid .EXPORT lines
|
||||
gas_test "exportbug.s" "" "" "syntax check for an old .EXPORT bug"
|
||||
|
||||
# Old versions of gas choked on this file for some reason
|
||||
gas_test "fixup7bug.s" "" "" "check for old \"fixup7\" gas bug"
|
||||
|
||||
# Test an L% selector parsing bug which existed in gas-1.36
|
||||
do_lsel_test
|
||||
|
||||
# First check how some valid alignments are handled.
|
||||
do_valid_align_tests
|
||||
|
||||
# Now check to make sure an invalid argument is flagged as an error.
|
||||
gas_test_error "align2.s" "" "Check for error on bogus argument to .align"
|
||||
|
||||
# GAS can't handle upper bound for a PA .block[z] directive
|
||||
setup_xfail hppa*-*-*
|
||||
gas_test "block.s" "" "" "Check min/max values for .block"
|
||||
|
||||
# Now check for an invalid argument
|
||||
gas_test_error "block2" "" "Check for error on bogus argument to .block"
|
||||
|
||||
# GAS-1.36 choked on this file.
|
||||
# FIXME. Should check relocations made for this test!
|
||||
gas_test "exprbug.s" "" "" "Check for sym1-sym2 acceptance"
|
||||
}
|
||||
|
7
gas/testsuite/gas/hppa/parse/procbug.s
Executable file
7
gas/testsuite/gas/hppa/parse/procbug.s
Executable file
@ -0,0 +1,7 @@
|
||||
.space $TEXT$
|
||||
.subspa $CODE$
|
||||
.align 4
|
||||
.export divu,entry
|
||||
.proc
|
||||
.callinfo
|
||||
divu: stws,ma %r4,4(%r5) ; save registers on stack
|
3
gas/testsuite/gas/hppa/parse/spacebug.s
Normal file
3
gas/testsuite/gas/hppa/parse/spacebug.s
Normal file
@ -0,0 +1,3 @@
|
||||
start: .long 0, 1, 2, 3, 4, 5, 6, 7
|
||||
.space 0x20 - (. - start)
|
||||
foo: .long 42
|
19
gas/testsuite/gas/hppa/parse/stringer.s
Executable file
19
gas/testsuite/gas/hppa/parse/stringer.s
Executable file
@ -0,0 +1,19 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$
|
||||
|
||||
|
||||
; GAS used to mis-parse the embedded quotes
|
||||
.STRING "#include \"awk.def\"\x0a\x00"
|
||||
|
||||
; Octal escapes used to consume > 3 chars which led to this
|
||||
; string being screwed in a big way.
|
||||
.STRING "\0110x123"
|
||||
|
||||
|
14
gas/testsuite/gas/hppa/parse/undefbug.s
Executable file
14
gas/testsuite/gas/hppa/parse/undefbug.s
Executable file
@ -0,0 +1,14 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $CODE$
|
||||
|
||||
.align 4
|
||||
bl somewhere,%r2
|
||||
nop
|
||||
|
9
gas/testsuite/gas/hppa/parse/versionbug.s
Executable file
9
gas/testsuite/gas/hppa/parse/versionbug.s
Executable file
@ -0,0 +1,9 @@
|
||||
.SPACE $PRIVATE$
|
||||
.SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
|
||||
.SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
|
||||
.SPACE $TEXT$
|
||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
|
||||
.SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
|
||||
|
||||
.VERSION "abc123"
|
||||
|
Loading…
Reference in New Issue
Block a user