Annotation of qemu/tests/cris/check_movmp.s, revision 1.1.1.1

1.1       root        1: # mach: crisv3 crisv8 crisv10 crisv32
                      2: # output: ffffff00\nffff0000\n0\nffffff00\nffff0000\n0\nffffff00\nffff0000\n0\nbb113344\n664433aa\ncc557788\nabcde012\nabcde000\n77880000\n0\n
                      3: 
                      4: # Test generic "move Ps,[]" and "move [],Pd" insns; the ones with
                      5: # functionality common to all models.
                      6: 
                      7:  .include "testutils.inc"
                      8:  start
                      9: 
                     10:  .data
                     11: filler:
                     12:  .byte 0xaa
                     13:  .word 0x4433
                     14:  .dword 0x55778866
                     15:  .byte 0xcc
                     16: 
                     17:  .text
                     18: ; Test that writing to zero-registers is a nop
                     19:  .if 0
                     20:  ; We used to just ignore the writes, but now an error is emitted.  We
                     21:  ; keep the test-code but disabled, in case we need to change this again.
                     22:  move 0xaa,p0
                     23:  move 0x4433,p4
                     24:  move 0x55774433,p8
                     25:  .endif
                     26: 
                     27:  moveq -1,r3
                     28:  setf zcvn
                     29:  clear.b r3
                     30:  test_cc 1 1 1 1
                     31:  checkr3 ffffff00
                     32: 
                     33:  moveq -1,r3
                     34:  clearf zcvn
                     35:  clear.w r3
                     36:  test_cc 0 0 0 0
                     37:  checkr3 ffff0000
                     38: 
                     39:  moveq -1,r3
                     40:  clear.d r3
                     41:  checkr3 0
                     42: 
                     43: ; "Write" using ordinary memory references too.
                     44:  .if 0 ; See ".if 0" above.
                     45:  move.d filler,r6
                     46:  move [r6],p0
                     47:  move [r6],p4
                     48:  move [r6],p8
                     49:  .endif
                     50: 
                     51: # ffffff00\nffff0000\n0\nffffff00\nffff0000\n0\nbb113344\n664433aa\ncc557788\nabcde012\nabcde000\n77880000\n0\n
                     52: 
                     53:  moveq -1,r3
                     54:  clear.b r3
                     55:  checkr3 ffffff00
                     56: 
                     57:  moveq -1,r3
                     58:  clear.w r3
                     59:  checkr3 ffff0000
                     60: 
                     61:  moveq -1,r3
                     62:  clear.d r3
                     63:  checkr3 0
                     64: 
                     65: ; And postincremented.
                     66:  .if 0 ; See ".if 0" above.
                     67:  move [r6+],p0
                     68:  move [r6+],p4
                     69:  move [r6+],p8
                     70:  .endif
                     71: 
                     72: # ffffff00\nffff0000\n0\nbb113344\n664433aa\ncc557788\nabcde012\nabcde000\n77880000\n0\n
                     73: 
                     74:  moveq -1,r3
                     75:  clear.b r3
                     76:  checkr3 ffffff00
                     77: 
                     78:  moveq -1,r3
                     79:  clear.w r3
                     80:  checkr3 ffff0000
                     81: 
                     82:  moveq -1,r3
                     83:  clear.d r3
                     84:  checkr3 0
                     85: 
                     86: ; Now see that we can write to the registers too.
                     87: # bb113344\n664433aa\ncc557788\nabcde012\nabcde000\n77880000\n0\n
                     88: ; [PC+]
                     89:  move.d filler,r9
                     90:  move 0xbb113344,srp
                     91:  move srp,r3
                     92:  checkr3 bb113344
                     93: 
                     94: ; [R+]
                     95:  move [r9+],srp
                     96:  move srp,r3
                     97:  checkr3 664433aa
                     98: 
                     99: ; [R]
                    100:  move [r9],srp
                    101:  move srp,r3
                    102:  checkr3 cc557788
                    103: 
                    104: ; And check writing to memory, clear and srp.
                    105: 
                    106:  move.d filler,r9
                    107:  move 0xabcde012,srp
                    108:  setf zcvn
                    109:  move srp,[r9+]
                    110:  test_cc 1 1 1 1
                    111:  subq 4,r9
                    112:  move.d [r9],r3
                    113:  checkr3 abcde012
                    114: 
                    115:  clearf zcvn
                    116:  clear.b [r9]
                    117:  test_cc 0 0 0 0
                    118:  move.d [r9],r3
                    119:  checkr3 abcde000
                    120: 
                    121:  addq 2,r9
                    122:  clear.w [r9+]
                    123:  subq 2,r9
                    124:  move.d [r9],r3
                    125:  checkr3 77880000
                    126: 
                    127:  clear.d [r9]
                    128:  move.d [r9],r3
                    129:  checkr3 0
                    130: 
                    131:  quit

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.