Annotation of qemu/tests/cris/check_movmp.s, revision 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.