summaryrefslogtreecommitdiff
path: root/gas/testsuite/gas/hppa/basic/imem.s
diff options
context:
space:
mode:
Diffstat (limited to 'gas/testsuite/gas/hppa/basic/imem.s')
-rw-r--r--gas/testsuite/gas/hppa/basic/imem.s93
1 files changed, 93 insertions, 0 deletions
diff --git a/gas/testsuite/gas/hppa/basic/imem.s b/gas/testsuite/gas/hppa/basic/imem.s
new file mode 100644
index 00000000000..3c49c121d14
--- /dev/null
+++ b/gas/testsuite/gas/hppa/basic/imem.s
@@ -0,0 +1,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)