8
8
9
9
#include "../../../../../runtime/textflag.h"
10
10
11
+ // In case of index mode instructions, usage of
12
+ // (Rx)(R0) is equivalent to (Rx+R0)
13
+ // In case of base+displacement mode instructions if
14
+ // the offset is 0, usage of (Rx) is equivalent to 0(Rx)
11
15
TEXT asmtest(SB),DUPOK|NOSPLIT,$0
12
16
// move constants
13
17
MOVD $1 , R3 // 38600001
@@ -26,58 +30,113 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$0
26
30
MOVW $1234567 , R5 // 6405001260a5d687
27
31
MOVD 8 (R3), R4 // e8830008
28
32
MOVD (R3)(R4), R5 // 7ca4182a
33
+ MOVD (R3)(R0), R5 // 7ca0182a
34
+ MOVD (R3), R5 // e8a30000
29
35
MOVW 4 (R3), R4 // e8830006
30
36
MOVW (R3)(R4), R5 // 7ca41aaa
37
+ MOVW (R3)(R0), R5 // 7ca01aaa
38
+ MOVW (R3), R5 // e8a30002
31
39
MOVWZ 4 (R3), R4 // 80830004
32
40
MOVWZ (R3)(R4), R5 // 7ca4182e
41
+ MOVWZ (R3)(R0), R5 // 7ca0182e
42
+ MOVWZ (R3), R5 // 80a30000
33
43
MOVH 4 (R3), R4 // a8830004
34
44
MOVH (R3)(R4), R5 // 7ca41aae
45
+ MOVH (R3)(R0), R5 // 7ca01aae
46
+ MOVH (R3), R5 // a8a30000
47
+
35
48
MOVHZ 2 (R3), R4 // a0830002
36
49
MOVHZ (R3)(R4), R5 // 7ca41a2e
50
+ MOVHZ (R3)(R0), R5 // 7ca01a2e
51
+ MOVHZ (R3), R5 // a0a30000
37
52
MOVB 1 (R3), R4 // 888300017c840774
38
53
MOVB (R3)(R4), R5 // 7ca418ae7ca50774
54
+ MOVB (R3)(R0), R5 // 7ca018ae7ca50774
55
+ MOVB (R3), R5 // 88a300007ca50774
39
56
MOVBZ 1 (R3), R4 // 88830001
40
57
MOVBZ (R3)(R4), R5 // 7ca418ae
58
+ MOVBZ (R3)(R0), R5 // 7ca018ae
59
+ MOVBZ (R3), R5 // 88a30000
41
60
MOVDBR (R3)(R4), R5 // 7ca41c28
61
+ MOVDBR (R3)(R0), R5 // 7ca01c28
62
+ MOVDBR (R3), R5 // 7ca01c28
42
63
MOVWBR (R3)(R4), R5 // 7ca41c2c
64
+ MOVWBR (R3)(R0), R5 // 7ca01c2c
65
+ MOVWBR (R3), R5 // 7ca01c2c
43
66
MOVHBR (R3)(R4), R5 // 7ca41e2c
67
+ MOVHBR (R3)(R0), R5 // 7ca01e2c
68
+ MOVHBR (R3), R5 // 7ca01e2c
44
69
MOVD $foo+4009806848 (FP), R5 // 3ca1ef0138a5cc40
45
70
MOVD $foo(SB), R5 // 3ca0000038a50000
46
71
47
72
MOVDU 8 (R3), R4 // e8830009
48
73
MOVDU (R3)(R4), R5 // 7ca4186a
74
+ MOVDU (R3)(R0), R5 // 7ca0186a
75
+ MOVDU (R3), R5 // e8a30001
49
76
MOVWU (R3)(R4), R5 // 7ca41aea
77
+ MOVWU (R3)(R0), R5 // 7ca01aea
50
78
MOVWZU 4 (R3), R4 // 84830004
51
79
MOVWZU (R3)(R4), R5 // 7ca4186e
80
+ MOVWZU (R3)(R0), R5 // 7ca0186e
81
+ MOVWZU (R3), R5 // 84a30000
52
82
MOVHU 2 (R3), R4 // ac830002
53
83
MOVHU (R3)(R4), R5 // 7ca41aee
84
+ MOVHU (R3)(R0), R5 // 7ca01aee
85
+ MOVHU (R3), R5 // aca30000
54
86
MOVHZU 2 (R3), R4 // a4830002
55
87
MOVHZU (R3)(R4), R5 // 7ca41a6e
88
+ MOVHZU (R3)(R0), R5 // 7ca01a6e
89
+ MOVHZU (R3), R5 // a4a30000
56
90
MOVBU 1 (R3), R4 // 8c8300017c840774
57
91
MOVBU (R3)(R4), R5 // 7ca418ee7ca50774
92
+ MOVBU (R3)(R0), R5 // 7ca018ee7ca50774
93
+ MOVBU (R3), R5 // 8ca300007ca50774
58
94
MOVBZU 1 (R3), R4 // 8c830001
59
95
MOVBZU (R3)(R4), R5 // 7ca418ee
96
+ MOVBZU (R3)(R0), R5 // 7ca018ee
97
+ MOVBZU (R3), R5 // 8ca30000
60
98
61
99
MOVD R4, 8 (R3) // f8830008
62
100
MOVD R5, (R3)(R4) // 7ca4192a
101
+ MOVD R5, (R3)(R0) // 7ca0192a
102
+ MOVD R5, (R3) // f8a30000
63
103
MOVW R4, 4 (R3) // 90830004
64
104
MOVW R5, (R3)(R4) // 7ca4192e
105
+ MOVW R5, (R3)(R0) // 7ca0192e
106
+ MOVW R5, (R3) // 90a30000
65
107
MOVH R4, 2 (R3) // b0830002
66
108
MOVH R5, (R3)(R4) // 7ca41b2e
109
+ MOVH R5, (R3)(R0) // 7ca01b2e
110
+ MOVH R5, (R3) // b0a30000
67
111
MOVB R4, 1 (R3) // 98830001
68
112
MOVB R5, (R3)(R4) // 7ca419ae
113
+ MOVB R5, (R3)(R0) // 7ca019ae
114
+ MOVB R5, (R3) // 98a30000
69
115
MOVDBR R5, (R3)(R4) // 7ca41d28
116
+ MOVDBR R5, (R3)(R0) // 7ca01d28
117
+ MOVDBR R5, (R3) // 7ca01d28
70
118
MOVWBR R5, (R3)(R4) // 7ca41d2c
119
+ MOVWBR R5, (R3)(R0) // 7ca01d2c
120
+ MOVWBR R5, (R3) // 7ca01d2c
71
121
MOVHBR R5, (R3)(R4) // 7ca41f2c
122
+ MOVHBR R5, (R3)(R0) // 7ca01f2c
123
+ MOVHBR R5, (R3) // 7ca01f2c
72
124
73
125
MOVDU R4, 8 (R3) // f8830009
74
126
MOVDU R5, (R3)(R4) // 7ca4196a
127
+ MOVDU R5, (R3)(R0) // 7ca0196a
128
+ MOVDU R5, (R3) // f8a30001
75
129
MOVWU R4, 4 (R3) // 94830004
76
130
MOVWU R5, (R3)(R4) // 7ca4196e
131
+ MOVWU R5, (R3)(R0) // 7ca0196e
77
132
MOVHU R4, 2 (R3) // b4830002
78
133
MOVHU R5, (R3)(R4) // 7ca41b6e
134
+ MOVHU R5, (R3)(R0) // 7ca01b6e
135
+ MOVHU R5, (R3) // b4a30000
79
136
MOVBU R4, 1 (R3) // 9c830001
80
137
MOVBU R5, (R3)(R4) // 7ca419ee
138
+ MOVBU R5, (R3)(R0) // 7ca019ee
139
+ MOVBU R5, (R3) // 9ca30000
81
140
82
141
MOVB $0 , R4 // 38800000
83
142
MOVBZ $0 , R4 // 38800000
@@ -372,23 +431,41 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$0
372
431
373
432
// load-and-reserve
374
433
LBAR (R4)(R3*1 ),$1 ,R5 // 7ca32069
434
+ LBAR (R4)(R0),$1 ,R5 // 7ca02069
375
435
LBAR (R4),$0 ,R5 // 7ca02068
376
436
LBAR (R3),R5 // 7ca01868
377
437
LHAR (R4)(R3*1 ),$1 ,R5 // 7ca320e9
438
+ LHAR (R4)(R0),$1 ,R5 // 7ca020e9
378
439
LHAR (R4),$0 ,R5 // 7ca020e8
379
440
LHAR (R3),R5 // 7ca018e8
380
441
LWAR (R4)(R3*1 ),$1 ,R5 // 7ca32029
442
+ LWAR (R4)(R0),$1 ,R5 // 7ca02029
381
443
LWAR (R4),$0 ,R5 // 7ca02028
382
444
LWAR (R3),R5 // 7ca01828
383
445
LDAR (R4)(R3*1 ),$1 ,R5 // 7ca320a9
446
+ LDAR (R4)(R0),$1 ,R5 // 7ca020a9
384
447
LDAR (R4),$0 ,R5 // 7ca020a8
385
448
LDAR (R3),R5 // 7ca018a8
386
449
450
+ LSW (R3)(R4), R5 // 7ca41c2a
451
+ LSW (R3)(R0), R5 // 7ca01c2a
452
+ LSW (R3), R5 // 7ca01c2a
453
+
387
454
STBCCC R3, (R4)(R5) // 7c65256d
455
+ STBCCC R3, (R4)(R0) // 7c60256d
456
+ STBCCC R3, (R4) // 7c60256d
388
457
STWCCC R3, (R4)(R5) // 7c65212d
458
+ STWCCC R3, (R4)(R0) // 7c60212d
459
+ STWCCC R3, (R4) // 7c60212d
389
460
STDCCC R3, (R4)(R5) // 7c6521ad
390
- STHCCC R3, (R4)(R5)
391
- STSW R3, (R4)(R5)
461
+ STDCCC R3, (R4)(R0) // 7c6021ad
462
+ STDCCC R3, (R4) // 7c6021ad
463
+ STHCCC R3, (R4)(R5) // 7c6525ad
464
+ STHCCC R3, (R4)(R0) // 7c6025ad
465
+ STHCCC R3, (R4) // 7c6025ad
466
+ STSW R3, (R4)(R5) // 7c65252a
467
+ STSW R3, (R4)(R0) // 7c60252a
468
+ STSW R3, (R4) // 7c60252a
392
469
393
470
SYNC // 7c0004ac
394
471
ISYNC // 4c00012c
@@ -397,33 +474,68 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$0
397
474
DARN $1 , R5 // 7ca105e6
398
475
399
476
DCBF (R3)(R4) // 7c0418ac
400
- DCBI (R3)(R4) // 7c041bac
477
+ DCBF (R3)(R0) // 7c0018ac
478
+ DCBF (R3) // 7c0018ac
479
+
401
480
DCBST (R3)(R4) // 7c04186c
481
+ DCBST (R3)(R0) // 7c00186c
482
+ DCBST (R3) // 7c00186c
402
483
DCBZ (R3)(R4) // 7c041fec
484
+ DCBZ (R3)(R0) // 7c001fec
485
+ DCBZ (R3) // 7c001fec
403
486
DCBT (R3)(R4) // 7c041a2c
487
+ DCBT (R3)(R0) // 7c001a2c
488
+ DCBT (R3) // 7c001a2c
404
489
ICBI (R3)(R4) // 7c041fac
490
+ ICBI (R3)(R0) // 7c001fac
491
+ ICBI (R3) // 7c001fac
405
492
406
493
// float constants
407
494
FMOVD $(0 .0 ), F1 // f0210cd0
408
495
FMOVD $(-0 .0 ), F1 // f0210cd0fc200850
409
496
410
497
FMOVD 8 (R3), F1 // c8230008
411
498
FMOVD (R3)(R4), F1 // 7c241cae
499
+ FMOVD (R3)(R0), F1 // 7c201cae
500
+ FMOVD (R3), F1 // c8230000
412
501
FMOVDU 8 (R3), F1 // cc230008
413
502
FMOVDU (R3)(R4), F1 // 7c241cee
503
+ FMOVDU (R3)(R0), F1 // 7c201cee
504
+ FMOVDU (R3), F1 // cc230000
414
505
FMOVS 4 (R3), F1 // c0230004
415
506
FMOVS (R3)(R4), F1 // 7c241c2e
507
+ FMOVS (R3)(R0), F1 // 7c201c2e
508
+ FMOVS (R3), F1 // c0230000
416
509
FMOVSU 4 (R3), F1 // c4230004
417
510
FMOVSU (R3)(R4), F1 // 7c241c6e
511
+ FMOVSU (R3)(R0), F1 // 7c201c6e
512
+ FMOVSU (R3), F1 // c4230000
513
+ FMOVSX (R3)(R4), F1 // 7c241eae
514
+ FMOVSX (R3)(R0), F1 // 7c201eae
515
+ FMOVSX (R3), F1 // 7c201eae
516
+ FMOVSZ (R3)(R4), F1 // 7c241eee
517
+ FMOVSZ (R3)(R0), F1 // 7c201eee
518
+ FMOVSZ (R3), F1 // 7c201eee
418
519
419
520
FMOVD F1, 8 (R3) // d8230008
420
521
FMOVD F1, (R3)(R4) // 7c241dae
522
+ FMOVD F1, (R3)(R0) // 7c201dae
523
+ FMOVD F1, (R3) // d8230000
421
524
FMOVDU F1, 8 (R3) // dc230008
422
525
FMOVDU F1, (R3)(R4) // 7c241dee
526
+ FMOVDU F1, (R3)(R0) // 7c201dee
527
+ FMOVDU F1, (R3) // dc230000
423
528
FMOVS F1, 4 (R3) // d0230004
424
529
FMOVS F1, (R3)(R4) // 7c241d2e
530
+ FMOVS F1, (R3)(R0) // 7c201d2e
531
+ FMOVS F1, (R3) // d0230000
425
532
FMOVSU F1, 4 (R3) // d4230004
426
533
FMOVSU F1, (R3)(R4) // 7c241d6e
534
+ FMOVSU F1, (R3)(R0) // 7c201d6e
535
+ FMOVSU F1, (R3) // d4230000
536
+ FMOVSX F1, (R3)(R4) // 7c241fae
537
+ FMOVSX F1, (R3)(R0) // 7c201fae
538
+ FMOVSX F1, (R3) // 7c201fae
427
539
FADD F1, F2 // fc42082a
428
540
FADD F1, F2, F3 // fc62082a
429
541
FADDCC F1, F2, F3 // fc62082b
@@ -507,17 +619,41 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$0
507
619
FCMPO F1, F2 // fc011040
508
620
FCMPU F1, F2 // fc011000
509
621
LVX (R3)(R4), V1 // 7c2418ce
622
+ LVX (R3)(R0), V1 // 7c2018ce
623
+ LVX (R3), V1 // 7c2018ce
510
624
LVXL (R3)(R4), V1 // 7c241ace
625
+ LVXL (R3)(R0), V1 // 7c201ace
626
+ LVXL (R3), V1 // 7c201ace
511
627
LVSL (R3)(R4), V1 // 7c24180c
628
+ LVSL (R3)(R0), V1 // 7c20180c
629
+ LVSL (R3), V1 // 7c20180c
512
630
LVSR (R3)(R4), V1 // 7c24184c
631
+ LVSR (R3)(R0), V1 // 7c20184c
632
+ LVSR (R3), V1 // 7c20184c
513
633
LVEBX (R3)(R4), V1 // 7c24180e
634
+ LVEBX (R3)(R0), V1 // 7c20180e
635
+ LVEBX (R3), V1 // 7c20180e
514
636
LVEHX (R3)(R4), V1 // 7c24184e
637
+ LVEHX (R3)(R0), V1 // 7c20184e
638
+ LVEHX (R3), V1 // 7c20184e
515
639
LVEWX (R3)(R4), V1 // 7c24188e
640
+ LVEWX (R3)(R0), V1 // 7c20188e
641
+ LVEWX (R3), V1 // 7c20188e
516
642
STVX V1, (R3)(R4) // 7c2419ce
643
+ STVX V1, (R3)(R0) // 7c2019ce
644
+ STVX V1, (R3) // 7c2019ce
517
645
STVXL V1, (R3)(R4) // 7c241bce
646
+ STVXL V1, (R3)(R0) // 7c201bce
647
+ STVXL V1, (R3) // 7c201bce
518
648
STVEBX V1, (R3)(R4) // 7c24190e
649
+ STVEBX V1, (R3)(R0) // 7c20190e
650
+ STVEBX V1, (R3) // 7c20190e
519
651
STVEHX V1, (R3)(R4) // 7c24194e
652
+ STVEHX V1, (R3)(R0) // 7c20194e
653
+ STVEHX V1, (R3) // 7c20194e
520
654
STVEWX V1, (R3)(R4) // 7c24198e
655
+ STVEWX V1, (R3)(R0) // 7c20198e
656
+ STVEWX V1, (R3) // 7c20198e
521
657
522
658
VAND V1, V2, V3 // 10611404
523
659
VANDC V1, V2, V3 // 10611444
@@ -651,28 +787,55 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$0
651
787
VSHASIGMAD $2 , V1, $15 , V2 // 104196c2
652
788
653
789
LXVD2X (R3)(R4), VS1 // 7c241e98
790
+ LXVD2X (R3)(R0), VS1 // 7c201e98
791
+ LXVD2X (R3), VS1 // 7c201e98
654
792
LXVDSX (R3)(R4), VS1 // 7c241a98
793
+ LXVDSX (R3)(R0), VS1 // 7c201a98
794
+ LXVDSX (R3), VS1 // 7c201a98
655
795
LXVH8X (R3)(R4), VS1 // 7c241e58
796
+ LXVH8X (R3)(R0), VS1 // 7c201e58
797
+ LXVH8X (R3), VS1 // 7c201e58
656
798
LXVB16X (R3)(R4), VS1 // 7c241ed8
799
+ LXVB16X (R3)(R0), VS1 // 7c201ed8
800
+ LXVB16X (R3), VS1 // 7c201ed8
657
801
LXVW4X (R3)(R4), VS1 // 7c241e18
802
+ LXVW4X (R3)(R0), VS1 // 7c201e18
803
+ LXVW4X (R3), VS1 // 7c201e18
658
804
LXV 16 (R3), VS1 // f4230011
805
+ LXV (R3), VS1 // f4230001
659
806
LXV 16 (R3), VS33 // f4230019
807
+ LXV (R3), VS33 // f4230009
660
808
LXV 16 (R3), V1 // f4230019
809
+ LXV (R3), V1 // f4230009
661
810
LXVL R3, R4, VS1 // 7c23221a
662
811
LXVLL R3, R4, VS1 // 7c23225a
663
812
LXVX R3, R4, VS1 // 7c232218
664
813
LXSDX (R3)(R4), VS1 // 7c241c98
814
+ LXSDX (R3)(R0), VS1 // 7c201c98
815
+ LXSDX (R3), VS1 // 7c201c98
665
816
STXVD2X VS1, (R3)(R4) // 7c241f98
817
+ STXVD2X VS1, (R3)(R0) // 7c201f98
818
+ STXVD2X VS1, (R3) // 7c201f98
666
819
STXV VS1,16 (R3) // f4230015
820
+ STXV VS1,(R3) // f4230005
667
821
STXVL VS1, R3, R4 // 7c23231a
668
822
STXVLL VS1, R3, R4 // 7c23235a
669
823
STXVX VS1, R3, R4 // 7c232318
670
824
STXVB16X VS1, (R4)(R5) // 7c2527d8
825
+ STXVB16X VS1, (R4)(R0) // 7c2027d8
826
+ STXVB16X VS1, (R4) // 7c2027d8
671
827
STXVH8X VS1, (R4)(R5) // 7c252758
672
-
828
+ STXVH8X VS1, (R4)(R0) // 7c202758
829
+ STXVH8X VS1, (R4) // 7c202758
673
830
STXSDX VS1, (R3)(R4) // 7c241d98
831
+ STXSDX VS1, (R4)(R0) // 7c202598
832
+ STXSDX VS1, (R4) // 7c202598
674
833
LXSIWAX (R3)(R4), VS1 // 7c241898
834
+ LXSIWAX (R3)(R0), VS1 // 7c201898
835
+ LXSIWAX (R3), VS1 // 7c201898
675
836
STXSIWX VS1, (R3)(R4) // 7c241918
837
+ STXSIWX VS1, (R3)(R0) // 7c201918
838
+ STXSIWX VS1, (R3) // 7c201918
676
839
MFVSRD VS1, R3 // 7c230066
677
840
MTFPRD R3, F0 // 7c030166
678
841
MFVRD V0, R3 // 7c030067
0 commit comments