📄 movxy.s
字号:
# sh testcase for movxy# mach: shdsp# as(shdsp): -defsym sim_cpu=1 -dsp .include "testutils.inc" .align 2src1: .word 1src2: .word 2src3: .word 3src4: .word 4src5: .word 5src6: .word 6src7: .word 7src8: .word 8src9: .word 9 .word 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0dst1: .word 0dst2: .word 0dst3: .word 0dst4: .word 0dst5: .word 0dst6: .word 0dst7: .word 0dst8: .word 0dst9: .word 0 .word 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 startmovxw_nopy: set_grs_a5a5 # load up pointers mov.l srcp1, r4 mov.l dstp1, r5 # perform moves movx.w @r4, x0 pcopy x0, a0 movx.w a0, @r5 # verify pointers unchanged mov.l srcp1, r0 cmp/eq r0, r4 bt .L0 fail.L0: mov.l dstp1, r1 cmp/eq r1, r5 bt .L1 fail.L1: # verify copied values mov.w @r0, r0 mov.w @r1, r1 cmp/eq r0, r1 bt .L2 fail.L2: test_gr_a5a5 r2 test_gr_a5a5 r3 test_gr_a5a5 r6 test_gr_a5a5 r7 test_gr_a5a5 r8 test_gr_a5a5 r9 test_gr_a5a5 r10 test_gr_a5a5 r11 test_gr_a5a5 r12 test_gr_a5a5 r13 test_gr_a5a5 r14movyw_nopx: set_grs_a5a5 # load up pointers mov.l srcp2, r6 mov.l dstp2, r7 # perform moves movy.w @r6, y0 pcopy y0, a0 movy.w a0, @r7 # verify pointers unchanged mov.l srcp2, r2 cmp/eq r2, r6 bt .L3 fail.L3: mov.l dstp2, r3 cmp/eq r3, r7 bt .L4 fail.L4: # verify copied values mov.w @r2, r2 mov.w @r3, r3 cmp/eq r2, r3 bt .L5 fail.L5: test_gr_a5a5 r0 test_gr_a5a5 r1 test_gr_a5a5 r4 test_gr_a5a5 r5 test_gr_a5a5 r8 test_gr_a5a5 r9 test_gr_a5a5 r10 test_gr_a5a5 r11 test_gr_a5a5 r12 test_gr_a5a5 r13 test_gr_a5a5 r14movxw_movyw: set_grs_a5a5 # load up pointers mov.l srcp3, r4 mov.l dstp3, r5 mov.l srcp4, r6 mov.l dstp4, r7 # perform moves movx.w @r4, x1 movy.w @r6, y1 pcopy x1, a0 pcopy y1, a1 movx.w a0, @r5 movy.w a1, @r7 # verify pointers unchanged mov.l srcp3, r0 cmp/eq r0, r4 bt .L6 fail.L6: mov.l dstp3, r1 cmp/eq r1, r5 bt .L7 fail.L7: mov.l srcp4, r2 cmp/eq r2, r6 bt .L8 fail.L8: mov.l dstp4, r3 cmp/eq r3, r7 bt .L9 fail.L9: # verify copied values mov.w @r0, r0 mov.w @r1, r1 cmp/eq r0, r1 bt .L10 fail.L10: mov.w @r2, r2 mov.w @r3, r3 cmp/eq r2, r3 bt .L11 fail.L11: test_gr_a5a5 r8 test_gr_a5a5 r9 test_gr_a5a5 r10 test_gr_a5a5 r11 test_gr_a5a5 r12 test_gr_a5a5 r13 test_gr_a5a5 r14 bra movxw_movyw_new nop .align 2srcp1: .long src1srcp2: .long src2srcp3: .long src3srcp4: .long src4srcp5: .long src5srcp6: .long src6srcp7: .long src7srcp8: .long src8srcp9: .long src9dstp1: .long dst1dstp2: .long dst2dstp3: .long dst3dstp4: .long dst4dstp5: .long dst5dstp6: .long dst6dstp7: .long dst7dstp8: .long dst8dstp9: .long dst9movxw_movyw_new: set_grs_a5a5 # load up pointers mov.l srcp5b, r0 mov.l dstp5b, r1 mov.l srcp6b, r2 mov.l dstp6b, r3 # perform moves movx.w @r0, x1 movy.w @r2, y1 movx.w x1, @r1 movy.w y1, @r3 # verify pointers unchanged mov.l srcp5b, r4 cmp/eq r0, r4 bt .L12 fail.L12: mov.l dstp5b, r5 cmp/eq r1, r5 bt .L13 fail.L13: mov.l srcp6b, r6 cmp/eq r2, r6 bt .L14 fail.L14: mov.l dstp6b, r7 cmp/eq r3, r7 bt .L15 fail.L15: # verify copied values mov.w @r0, r0 mov.w @r1, r1 cmp/eq r0, r1 bt .L16 fail.L16: mov.w @r2, r2 mov.w @r3, r3 cmp/eq r2, r3 bt .L17 fail.L17: test_gr_a5a5 r8 test_gr_a5a5 r9 test_gr_a5a5 r10 test_gr_a5a5 r11 test_gr_a5a5 r12 test_gr_a5a5 r13 test_gr_a5a5 r14 mov.l srcp1b, r0 mov.l dstp1b, r1 mov.l srcp2b, r2 mov.l dstp2b, r3 mov.l srcp1b, r4 mov.l dstp1b, r5 mov.l srcp2b, r6 mov.l dstp2b, r7 mov #4, r8 mov #4, r9 bra .L18 nop .align 2srcp1b: .long src1srcp2b: .long src2srcp3b: .long src3srcp4b: .long src4srcp5b: .long src5srcp6b: .long src6srcp7b: .long src7srcp8b: .long src8srcp9b: .long src9dstp1b: .long dst1dstp2b: .long dst2dstp3b: .long dst3dstp4b: .long dst4dstp5b: .long dst5dstp6b: .long dst6dstp7b: .long dst7dstp8b: .long dst8dstp9b: .long dst9.L18: # movx.w @Ax{}, Dx | nopy movxwaxdx_nopy: movx.w @r4,x0 ! .word 0xf004 movx.w @r4,x1 ! .word 0xf084 movx.w @r5,x0 ! .word 0xf204 movx.w @r5,x1 ! .word 0xf284 movx.w @r4+,x0 ! .word 0xf008 movx.w @r4+,x1 ! .word 0xf088 movx.w @r5+,x0 ! .word 0xf208 movx.w @r5+,x1 ! .word 0xf288 movx.w @r4+r8,x0 ! .word 0xf00c movx.w @r4+r8,x1 ! .word 0xf08c movx.w @r5+r8,x0 ! .word 0xf20c movx.w @r5+r8,x1 ! .word 0xf28c # movx.w Da, @Ax{} | nopymovxwdaax_nopy: movx.w a0,@r4 ! .word 0xf024 movx.w a1,@r4 ! .word 0xf0a4 movx.w a0,@r5 ! .word 0xf224 movx.w a1,@r5 ! .word 0xf2a4 movx.w a0,@r4+ ! .word 0xf028 movx.w a1,@r4+ ! .word 0xf0a8 movx.w a0,@r5+ ! .word 0xf228 movx.w a1,@r5+ ! .word 0xf2a8 movx.w a0,@r4+r8 ! .word 0xf02c movx.w a1,@r4+r8 ! .word 0xf0ac movx.w a0,@r5+r8 ! .word 0xf22c movx.w a1,@r5+r8 ! .word 0xf2ac # movy.w @Ay{}, Dy | nopx movywaydy_nopx: movy.w @r6,y0 ! .word 0xf001 movy.w @r6,y1 ! .word 0xf041 movy.w @r7,y0 ! .word 0xf101 movy.w @r7,y1 ! .word 0xf141 movy.w @r6+,y0 ! .word 0xf002 movy.w @r6+,y1 ! .word 0xf042 movy.w @r7+,y0 ! .word 0xf102 movy.w @r7+,y1 ! .word 0xf142 movy.w @r6+r9,y0 ! .word 0xf003 movy.w @r6+r9,y1 ! .word 0xf043 movy.w @r7+r9,y0 ! .word 0xf103 movy.w @r7+r9,y1 ! .word 0xf143 # movy.w Da, @Ay{} | nopxmovywdaay_nopx: movy.w a0,@r6 ! .word 0xf011 movy.w a1,@r6 ! .word 0xf051 movy.w a0,@r7 ! .word 0xf111 movy.w a1,@r7 ! .word 0xf151 movy.w a0,@r6+ ! .word 0xf012 movy.w a1,@r6+ ! .word 0xf052 movy.w a0,@r7+ ! .word 0xf112 movy.w a1,@r7+ ! .word 0xf152 movy.w a0,@r6+r9 ! .word 0xf013 movy.w a1,@r6+r9 ! .word 0xf053 movy.w a0,@r7+r9 ! .word 0xf113 movy.w a1,@r7+r9 ! .word 0xf153 # movx {} || movy {} movx_movy: movx.w @r4,x0 movy.w @r6,y0 ! .word 0xf005 movx.w @r4,x0 movy.w @r6,y1 ! .word 0xf045 movx.w @r4,x1 movy.w @r6,y0 ! .word 0xf085 movx.w @r4,x1 movy.w @r6,y1 ! .word 0xf0c5 movx.w @r4,x0 movy.w @r7,y0 ! .word 0xf105 movx.w @r4,x0 movy.w @r7,y1 ! .word 0xf145 movx.w @r4,x1 movy.w @r7,y0 ! .word 0xf185 movx.w @r4,x1 movy.w @r7,y1 ! .word 0xf1c5 movx.w @r5,x0 movy.w @r6,y0 ! .word 0xf205 movx.w @r5,x0 movy.w @r6,y1 ! .word 0xf245 movx.w @r5,x1 movy.w @r6,y0 ! .word 0xf285 movx.w @r5,x1 movy.w @r6,y1 ! .word 0xf2c5 movx.w @r5,x0 movy.w @r7,y0 ! .word 0xf305 movx.w @r5,x0 movy.w @r7,y1 ! .word 0xf345 movx.w @r5,x1 movy.w @r7,y0 ! .word 0xf385 movx.w @r5,x1 movy.w @r7,y1 ! .word 0xf3c5 movx.w @r4,x0 movy.w @r6+,y0 ! .word 0xf006 movx.w @r4,x0 movy.w @r6+,y1 ! .word 0xf046 movx.w @r4,x1 movy.w @r6+,y0 ! .word 0xf086 movx.w @r4,x1 movy.w @r6+,y1 ! .word 0xf0c6 movx.w @r4,x0 movy.w @r7+,y0 ! .word 0xf106 movx.w @r4,x0 movy.w @r7+,y1 ! .word 0xf146 movx.w @r4,x1 movy.w @r7+,y0 ! .word 0xf186 movx.w @r4,x1 movy.w @r7+,y1 ! .word 0xf1c6 movx.w @r5,x0 movy.w @r6+,y0 ! .word 0xf206 movx.w @r5,x0 movy.w @r6+,y1 ! .word 0xf246 movx.w @r5,x1 movy.w @r6+,y0 ! .word 0xf286 movx.w @r5,x1 movy.w @r6+,y1 ! .word 0xf2c6 movx.w @r5,x0 movy.w @r7+,y0 ! .word 0xf306 movx.w @r5,x0 movy.w @r7+,y1 ! .word 0xf346 movx.w @r5,x1 movy.w @r7+,y0 ! .word 0xf386 movx.w @r5,x1 movy.w @r7+,y1 ! .word 0xf3c6 movx.w @r4,x0 movy.w @r6+r9,y0 ! .word 0xf007 movx.w @r4,x0 movy.w @r6+r9,y1 ! .word 0xf047 movx.w @r4,x1 movy.w @r6+r9,y0 ! .word 0xf087 movx.w @r4,x1 movy.w @r6+r9,y1 ! .word 0xf0c7 movx.w @r4,x0 movy.w @r7+r9,y0 ! .word 0xf107 movx.w @r4,x0 movy.w @r7+r9,y1 ! .word 0xf147 movx.w @r4,x1 movy.w @r7+r9,y0 ! .word 0xf187 movx.w @r4,x1 movy.w @r7+r9,y1 ! .word 0xf1c7 movx.w @r5,x0 movy.w @r6+r9,y0 ! .word 0xf207 movx.w @r5,x0 movy.w @r6+r9,y1 ! .word 0xf247 movx.w @r5,x1 movy.w @r6+r9,y0 ! .word 0xf287 movx.w @r5,x1 movy.w @r6+r9,y1 ! .word 0xf2c7 movx.w @r5,x0 movy.w @r7+r9,y0 ! .word 0xf307 movx.w @r5,x0 movy.w @r7+r9,y1 ! .word 0xf347 movx.w @r5,x1 movy.w @r7+r9,y0 ! .word 0xf387 movx.w @r5,x1 movy.w @r7+r9,y1 ! .word 0xf3c7 movx.w @r4+,x0 movy.w @r6,y0 ! .word 0xf009 movx.w @r4+,x0 movy.w @r6,y1 ! .word 0xf049 movx.w @r4+,x1 movy.w @r6,y0 ! .word 0xf089 movx.w @r4+,x1 movy.w @r6,y1 ! .word 0xf0c9 movx.w @r4+,x0 movy.w @r7,y0 ! .word 0xf109
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -