summaryrefslogtreecommitdiff
path: root/gas/testsuite/gas/hppa/basic/imem.s
blob: 3c49c121d14decbc079dac2c3f88d83b02324172 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
	.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 integer_memory_tests,CODE
	.EXPORT integer_indexing_load,CODE
	.EXPORT integer_load_short_memory,CODE
	.EXPORT integer_store_short_memory,CODE
	.EXPORT main,CODE
	.EXPORT main,ENTRY,PRIV_LEV=3,RTNVAL=GR
; Basic integer memory tests which also test the various 
; addressing modes and completers.
;
; 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.
; 
integer_memory_tests: 
	ldw 0(%sr0,%r4),%r26
	ldh 0(%sr0,%r4),%r26
	ldb 0(%sr0,%r4),%r26
	stw %r26,0(%sr0,%r4)
	sth %r26,0(%sr0,%r4)
	stb %r26,0(%sr0,%r4)

; Should make sure pre/post modes are recognized correctly.
	ldwm 0(%sr0,%r4),%r26
	stwm %r26,0(%sr0,%r4)

integer_indexing_load: 
	ldwx %r5(%sr0,%r4),%r26
	ldwx,s %r5(%sr0,%r4),%r26
	ldwx,m %r5(%sr0,%r4),%r26
	ldwx,sm %r5(%sr0,%r4),%r26
	ldhx %r5(%sr0,%r4),%r26
	ldhx,s %r5(%sr0,%r4),%r26
	ldhx,m %r5(%sr0,%r4),%r26
	ldhx,sm %r5(%sr0,%r4),%r26
	ldbx %r5(%sr0,%r4),%r26
	ldbx,s %r5(%sr0,%r4),%r26
	ldbx,m %r5(%sr0,%r4),%r26
	ldbx,sm %r5(%sr0,%r4),%r26
	ldwax %r5(%r4),%r26
	ldwax,s %r5(%r4),%r26
	ldwax,m %r5(%r4),%r26
	ldwax,sm %r5(%r4),%r26
	ldcwx %r5(%sr0,%r4),%r26
	ldcwx,s %r5(%sr0,%r4),%r26
	ldcwx,m %r5(%sr0,%r4),%r26
	ldcwx,sm %r5(%sr0,%r4),%r26

integer_load_short_memory: 
	ldws 0(%sr0,%r4),%r26
	ldws,mb 0(%sr0,%r4),%r26
	ldws,ma 0(%sr0,%r4),%r26
	ldhs 0(%sr0,%r4),%r26
	ldhs,mb 0(%sr0,%r4),%r26
	ldhs,ma 0(%sr0,%r4),%r26
	ldbs 0(%sr0,%r4),%r26
	ldbs,mb 0(%sr0,%r4),%r26
	ldbs,ma 0(%sr0,%r4),%r26
	ldwas 0(%r4),%r26
	ldwas,mb 0(%r4),%r26
	ldwas,ma 0(%r4),%r26
	ldcws 0(%sr0,%r4),%r26
	ldcws,mb 0(%sr0,%r4),%r26
	ldcws,ma 0(%sr0,%r4),%r26

integer_store_short_memory: 
	stws %r26,0(%sr0,%r4)
	stws,mb %r26,0(%sr0,%r4)
	stws,ma %r26,0(%sr0,%r4)
	sths %r26,0(%sr0,%r4)
	sths,mb %r26,0(%sr0,%r4)
	sths,ma %r26,0(%sr0,%r4)
	stbs %r26,0(%sr0,%r4)
	stbs,mb %r26,0(%sr0,%r4)
	stbs,ma %r26,0(%sr0,%r4)
	stwas %r26,0(%r4)
	stwas,mb %r26,0(%r4)
	stwas,ma %r26,0(%r4)
	stbys %r26,0(%sr0,%r4)
	stbys,b %r26,0(%sr0,%r4)
	stbys,e %r26,0(%sr0,%r4)
	stbys,b,m %r26,0(%sr0,%r4)
	stbys,e,m %r26,0(%sr0,%r4)