diff options
Diffstat (limited to 'gas/testsuite/gas/hppa/basic/imem.s')
-rw-r--r-- | gas/testsuite/gas/hppa/basic/imem.s | 93 |
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) |