2
; Generic binary operations supporting all sizes and their various
5
; Some fairly big pseudorandom numbers we don't want to compute
6
; as differences in actual data or code.
8
.set const_int_32, 0x1b94452b
9
.set const_int_m32, -3513208907
10
.set two701867, 2701867
12
; Other constants that are not differences
20
.syntax no_register_prefix
96
@OC@.w three2767+2,r13
98
@OC@.w -(three2767+1),r13
100
@OC@.w externalsym,r5
119
@OC@.d -0x7ec0cead,r1
120
@OC@.d const_int_m32,r1
121
@OC@.d const_int_32,r1
131
@OC@.d three2767+1,r5
132
@OC@.d three2767+2,r5
134
@OC@.d -(three2767+1),r13
135
@OC@.d -(three2767+2),r13
141
@OC@.d externalsym,r5
157
@OC@.b [r2+[r0].b],r5
158
@OC@.w [r2+[r5].b],r13
159
@OC@.d [r2+[r10].b],r1
165
@OC@.b [r2+[r0+].b],r5
166
@OC@.w [r2+[r5+].b],r13
167
@OC@.d [r2+[r10+].b],r1
169
@OC@.w [r2+[r5+].b],r13
171
@OC@.d [r2+[r10+].b],r1
174
@OC@ r12,[r2+[r10+].b]
183
@OC@.b [r2+[r0].w],r5
184
@OC@.w [r2+[r5].w],r13
185
@OC@.d [r2+[r10].w],r1
191
@OC@.b [r2+[r0+].w],r5
192
@OC@.w [r2+[r5+].w],r13
193
@OC@.d [r2+[r10+].w],r1
195
@OC@.w [r2+[r5+].w],r13
197
@OC@.d [r2+[r10+].w],r1
200
@OC@ r8,[r2+[r10+].w]
212
@OC@.b [r2+[r0].d],r5
213
@OC@.w [r2+[r5].d],r13
214
@OC@.d [r2+[r10].d],r1
220
@OC@.b [r2+[r0+].d],r5
221
@OC@.w [r2+[r5+].d],r13
222
@OC@.d [r2+[r10+].d],r1
224
@OC@.w [r2+[r5+].d],r13
226
@OC@.d [r2+[r10+].d],r1
229
@OC@ r5,[r2+[r10+].d]
233
; Note that I forgot 16-bit offsets and 32-bit offsets here and later.
234
; Maybe add them later if it feels necessary.
248
@OC@.b [r2+forty2],r5
249
@OC@.b [r2+mforty2],r5
250
@OC@.b [r2+-forty2],r5
251
@OC@.b [r2+-mforty2],r5
252
@OC@.b [r2-forty2],r5
253
@OC@.b [r2-mforty2],r5
254
@OC@.b [r2+externalsym],r5
256
; Note that I missed 32-bit offsets (except -32769) here and later.
257
; Maybe add them later if it feels necessary.
276
@OC@.w [r2+-8856],r13
283
@OC@.w [r2+forty2],r13
284
@OC@.w [r2+mforty2],r13
285
@OC@.w [r2+-forty2],r5
286
@OC@.w [r2-forty2],r5
287
@OC@.w [r2+-mforty2],r5
289
@OC@.w [r2+three2767],r5
290
@OC@.w [r2+three2767+1],r5
291
@OC@.w [r2+three2767+2],r13
292
@OC@.w [r2+-three2767],r13
293
@OC@.w [r2+-(three2767+1)],r13
294
@OC@.w [r2+-(three2767+2)],r5
295
@OC@.w [r2-three2767],r13
296
@OC@.w [r2-(three2767+1)],r13
297
@OC@.w [r2-(three2767+2)],r5
298
@OC@.w [r2+six5535],r5
299
@OC@.w [r2+externalsym],r5
321
@OC@.d [r2+2781868],r1
322
@OC@.d [r2+-2701867],r1
324
@OC@.d [r2+0x9ec0ceac],r1
325
@OC@.d [r2+-0x7ec0cead],r1
326
@OC@.d [r2-0x7ec0cead],r1
327
@OC@.d [r2+const_int_m32],r1
328
@OC@.d [r2+const_int_32],r1
333
@OC@.d [r2+forty2],r5
334
@OC@.d [r2+mforty2],r5
335
@OC@.d [r2-forty2],r5
336
@OC@.d [r2-mforty2],r5
337
@OC@.d [r2+-forty2],r5
338
@OC@.d [r2+-mforty2],r5
340
@OC@.d [r2+three2767],r5
341
@OC@.d [r2+three2767+1],r5
342
@OC@.d [r2+three2767+2],r5
343
@OC@.d [r2+-three2767],r5
344
@OC@.d [r2+-(three2767+1)],r13
345
@OC@.d [r2+-(three2767+2)],r13
346
@OC@.d [r2-three2767],r5
347
@OC@.d [r2-(three2767+1)],r13
348
@OC@.d [r2-(three2767+2)],r13
349
@OC@.d [r2+six5535],r5
350
@OC@.d [r2+six5535+1],r13
351
@OC@.d [r2+two701867],r5
352
@OC@.d [r2+-two701867],r5
353
@OC@.d [r2-two701867],r5
355
@OC@.d [r2+externalsym],r5
378
@OC@ r1,[r2+-2701867]
380
@OC@ r1,[r2+0x9ec0ceac]
381
@OC@ r1,[r2+-0x7ec0cead]
382
@OC@ r1,[r2-0x7ec0cead]
383
@OC@ r1,[r2+const_int_m32]
384
@OC@ r1,[r2+const_int_32]
394
@OC@ r5,[r2+-mforty2]
396
@OC@ r5,[r2+three2767]
397
@OC@ r5,[r2+three2767+1]
398
@OC@ r5,[r2+three2767+2]
399
@OC@ r5,[r2+-three2767]
400
@OC@ r13,[r2+-(three2767+1)]
401
@OC@ r13,[r2+-(three2767+2)]
402
@OC@ r5,[r2-three2767]
403
@OC@ r13,[r2-(three2767+1)]
404
@OC@ r13,[r2-(three2767+2)]
406
@OC@ r13,[r2+six5535+1]
407
@OC@ r5,[r2+two701867]
408
@OC@ r5,[r2+-two701867]
409
@OC@ r5,[r2-two701867]
411
@OC@ r5,[r2+externalsym]
419
@OC@.b [r2+r0.b],r5,r8
420
@OC@.w [r2+r5.b],r13,r8
421
@OC@.d [r2+r10.b],r1,r8
424
@OC@.b [r2+[r0].b],r5,r8
425
@OC@.w [r2+[r5].b],r13,r8
426
@OC@.d [r2+[r10].b],r1,r8
429
@OC@.b [r2+[r0+].b],r5,r8
430
@OC@.w [r2+[r5+].b],r13,r8
431
@OC@.d [r2+[r10+].b],r1,r8
433
@OC@.w [r2+[r5+].b],r13,r8
435
@OC@.d [r2+[r10+].b],r1,r8
439
@OC@.b [r2+r0.w],r5,r8
440
@OC@.w [r2+r5.w],r13,r8
441
@OC@.d [r2+r10.w],r1,r8
444
@OC@.b [r2+[r0].w],r5,r8
445
@OC@.w [r2+[r5].w],r13,r8
446
@OC@.d [r2+[r10].w],r1,r8
449
@OC@.b [r2+[r0+].w],r5,r8
450
@OC@.w [r2+[r5+].w],r13,r8
451
@OC@.d [r2+[r10+].w],r1,r8
453
@OC@.w [r2+[r5+].w],r13,r8
455
@OC@.d [r2+[r10+].w],r1,r8
459
@OC@.b [r2+r0.d],r5,r8
460
@OC@.w [r2+r5.d],r13,r8
461
@OC@.d [r2+r10.d],r1,r8
464
@OC@.b [r2+[r0].d],r5,r8
465
@OC@.w [r2+[r5].d],r13,r8
466
@OC@.d [r2+[r10].d],r1,r8
469
@OC@.b [r2+[r0+].d],r5,r8
470
@OC@.w [r2+[r5+].d],r13,r8
471
@OC@.d [r2+[r10+].d],r1,r8
473
@OC@.w [r2+[r5+].d],r13,r8
475
@OC@.d [r2+[r10+].d],r1,r8
480
@OC@.b [r2+127],r5,r8
481
@OC@.b [r2+128],r5,r8
483
@OC@.b [r2+-127],r5,r8
484
@OC@.b [r2+-128],r5,r8
485
@OC@.b [r2+255],r5,r8
488
@OC@.b [r2+-42],r5,r8
490
@OC@.b [r2+forty2],r5,r8
491
@OC@.b [r2+mforty2],r5,r8
492
@OC@.b [r2+-forty2],r5,r8
493
@OC@.b [r2+-mforty2],r5,r8
494
@OC@.b [r2-forty2],r5,r8
495
@OC@.b [r2-mforty2],r5,r8
496
@OC@.b [r2+externalsym],r5,r8
500
@OC@.w [r2+127],r13,r8
501
@OC@.w [r2+128],r13,r8
502
@OC@.w [r2+-1],r13,r8
504
@OC@.w [r2+-127],r13,r8
505
@OC@.w [r2+-128],r13,r8
506
@OC@.w [r2+-129],r13,r8
507
@OC@.w [r2-127],r13,r8
508
@OC@.w [r2-128],r13,r8
509
@OC@.w [r2-129],r13,r8
510
@OC@.w [r2+255],r13,r8
511
@OC@.w [r2+-255],r13,r8
512
@OC@.w [r2-255],r13,r8
513
@OC@.w [r2+256],r13,r8
514
@OC@.w [r2-256],r13,r8
515
@OC@.w [r2+-8856],r13,r8
516
@OC@.w [r2-8856],r13,r8
517
@OC@.w [r2+8856],r13,r8
519
@OC@.w [r2+42],r13,r8
520
@OC@.w [r2+-42],r13,r8
521
@OC@.w [r2-42],r13,r8
522
@OC@.w [r2+forty2],r13,r8
523
@OC@.w [r2+mforty2],r13,r8
524
@OC@.w [r2+-forty2],r5,r8
525
@OC@.w [r2-forty2],r5,r8
526
@OC@.w [r2+-mforty2],r5,r8
528
@OC@.w [r2+three2767],r5,r8
529
@OC@.w [r2+three2767+1],r5,r8
530
@OC@.w [r2+three2767+2],r13,r8
531
@OC@.w [r2+-three2767],r13,r8
532
@OC@.w [r2+-(three2767+1)],r13,r8
533
@OC@.w [r2+-(three2767+2)],r5,r8
534
@OC@.w [r2-three2767],r13,r8
535
@OC@.w [r2-(three2767+1)],r13,r8
536
@OC@.w [r2-(three2767+2)],r5,r8
537
@OC@.w [r2+six5535],r5,r8
538
@OC@.w [r2+externalsym],r5,r8
542
@OC@.d [r2+127],r1,r8
543
@OC@.d [r2+128],r1,r8
546
@OC@.d [r2+-127],r1,r8
547
@OC@.d [r2+-128],r1,r8
548
@OC@.d [r2-127],r1,r8
549
@OC@.d [r2-128],r1,r8
550
@OC@.d [r2+255],r1,r8
551
@OC@.d [r2+-255],r1,r8
552
@OC@.d [r2-255],r1,r8
553
@OC@.d [r2+256],r1,r8
554
@OC@.d [r2-256],r1,r8
555
@OC@.d [r2-8856],r1,r8
556
@OC@.d [r2+-256],r1,r8
557
@OC@.d [r2+-8856],r1,r8
558
@OC@.d [r2+8856],r1,r8
560
@OC@.d [r2+2781868],r1,r8
561
@OC@.d [r2+-2701867],r1,r8
563
@OC@.d [r2+0x9ec0ceac],r1,r8
564
@OC@.d [r2+-0x7ec0cead],r1,r8
565
@OC@.d [r2-0x7ec0cead],r1,r8
566
@OC@.d [r2+const_int_m32],r1,r8
567
@OC@.d [r2+const_int_32],r1,r8
569
@OC@.d [r2+42],r13,r8
571
@OC@.d [r2+-42],r5,r8
572
@OC@.d [r2+forty2],r5,r8
573
@OC@.d [r2+mforty2],r5,r8
574
@OC@.d [r2-forty2],r5,r8
575
@OC@.d [r2-mforty2],r5,r8
576
@OC@.d [r2+-forty2],r5,r8
577
@OC@.d [r2+-mforty2],r5,r8
579
@OC@.d [r2+three2767],r5,r8
580
@OC@.d [r2+three2767+1],r5,r8
581
@OC@.d [r2+three2767+2],r5,r8
582
@OC@.d [r2+-three2767],r5,r8
583
@OC@.d [r2+-(three2767+1)],r13,r8
584
@OC@.d [r2+-(three2767+2)],r13,r8
585
@OC@.d [r2-three2767],r5,r8
586
@OC@.d [r2-(three2767+1)],r13,r8
587
@OC@.d [r2-(three2767+2)],r13,r8
588
@OC@.d [r2+six5535],r5,r8
589
@OC@.d [r2+six5535+1],r13,r8
590
@OC@.d [r2+two701867],r5,r8
591
@OC@.d [r2+-two701867],r5,r8
592
@OC@.d [r2-two701867],r5,r8
594
@OC@.d [r2+externalsym],r5,r8
602
@OC@.b [r12=r2+r0.b],r5
603
@OC@.w [r12=r2+r5.b],r13
604
@OC@.d [r12=r2+r10.b],r1
606
@OC@ r13,[r12=r2+r5.b]
607
@OC@ r1,[r12=r2+r10.b]
610
@OC@.b [r12=r2+[r0].b],r5
611
@OC@.w [r12=r2+[r5].b],r13
612
@OC@.d [r12=r2+[r10].b],r1
614
@OC@ r4,[r12=r2+[r5].b]
615
@OC@ r6,[r12=r2+[r10].b]
618
@OC@.b [r12=r2+[r0+].b],r5
619
@OC@.w [r12=r2+[r5+].b],r13
620
@OC@.d [r12=r2+[r10+].b],r1
622
@OC@.w [r12=r2+[r5+].b],r13
624
@OC@.d [r12=r2+[r10+].b],r1
626
@OC@ r3,[r12=r2+[r5+].b]
627
@OC@ r2,[r12=r2+[r10+].b]
631
@OC@.b [r12=r2+r0.w],r5
632
@OC@.w [r12=r2+r5.w],r13
633
@OC@.d [r12=r2+r10.w],r1
635
@OC@ r5,[r12=r2+r5.w]
636
@OC@ r8,[r12=r2+r10.w]
639
@OC@.b [r12=r2+[r0].w],r5
640
@OC@.w [r12=r2+[r5].w],r13
641
@OC@.d [r12=r2+[r10].w],r1
643
@OC@ r4,[r12=r2+[r5].w]
644
@OC@ r3,[r12=r2+[r10].w]
647
@OC@.b [r12=r2+[r0+].w],r5
648
@OC@.w [r12=r2+[r5+].w],r13
649
@OC@.d [r12=r2+[r10+].w],r1
651
@OC@.w [r12=r2+[r5+].w],r13
653
@OC@.d [r12=r2+[r10+].w],r1
655
@OC@ r2,[r12=r2+[r5+].w]
656
@OC@ r7,[r12=r2+[r10+].w]
660
@OC@.b [r12=r2+r0.d],r5
661
@OC@.w [r12=r2+r5.d],r13
662
@OC@.d [r12=r2+r10.d],r1
664
@OC@ r4,[r12=r2+r5.d]
665
@OC@ r8,[r12=r2+r10.d]
668
@OC@.b [r12=r2+[r0].d],r5
669
@OC@.w [r12=r2+[r5].d],r13
670
@OC@.d [r12=r2+[r10].d],r1
672
@OC@ r2,[r12=r2+[r5].d]
673
@OC@ r0,[r12=r2+[r10].d]
676
@OC@.b [r12=r2+[r0+].d],r5
677
@OC@.w [r12=r2+[r5+].d],r13
678
@OC@.d [r12=r2+[r10+].d],r1
680
@OC@.w [r12=r2+[r5+].d],r13
682
@OC@.d [r12=r2+[r10+].d],r1
684
@OC@ r3,[r12=r2+[r5+].d]
685
@OC@ r2,[r12=r2+[r10+].d]
690
@OC@.b [r12=r2+127],r5
691
@OC@.b [r12=r2+128],r5
692
@OC@.b [r12=r2+-1],r5
693
@OC@.b [r12=r2+-127],r5
694
@OC@.b [r12=r2+-128],r5
695
@OC@.b [r12=r2+255],r5
697
@OC@.b [r12=r2+42],r5
698
@OC@.b [r12=r2+-42],r5
699
@OC@.b [r12=r2-42],r5
700
@OC@.b [r12=r2+forty2],r5
701
@OC@.b [r12=r2+mforty2],r5
702
@OC@.b [r12=r2+-forty2],r5
703
@OC@.b [r12=r2+-mforty2],r5
704
@OC@.b [r12=r2-forty2],r5
705
@OC@.b [r12=r2-mforty2],r5
706
@OC@.b [r12=r2+externalsym],r5
708
@OC@.w [r12=r2+0],r13
709
@OC@.w [r12=r2+1],r13
710
@OC@.w [r12=r2+127],r13
711
@OC@.w [r12=r2+128],r13
712
@OC@.w [r12=r2+-1],r13
713
@OC@.w [r12=r2-1],r13
714
@OC@.w [r12=r2+-127],r13
715
@OC@.w [r12=r2+-128],r13
716
@OC@.w [r12=r2+-129],r13
717
@OC@.w [r12=r2-127],r13
718
@OC@.w [r12=r2-128],r13
719
@OC@.w [r12=r2-129],r13
720
@OC@.w [r12=r2+255],r13
721
@OC@.w [r12=r2+-255],r13
722
@OC@.w [r12=r2-255],r13
723
@OC@.w [r12=r2+256],r13
724
@OC@.w [r12=r2-256],r13
725
@OC@.w [r12=r2+-8856],r13
726
@OC@.w [r12=r2-8856],r13
727
@OC@.w [r12=r2+8856],r13
729
@OC@.w [r12=r2+42],r13
730
@OC@.w [r12=r2+-42],r13
731
@OC@.w [r12=r2-42],r13
732
@OC@.w [r12=r2+forty2],r13
733
@OC@.w [r12=r2+mforty2],r13
734
@OC@.w [r12=r2+-forty2],r5
735
@OC@.w [r12=r2-forty2],r5
736
@OC@.w [r12=r2+-mforty2],r5
738
@OC@.w [r12=r2+three2767],r5
739
@OC@.w [r12=r2+three2767+1],r5
740
@OC@.w [r12=r2+three2767+2],r13
741
@OC@.w [r12=r2+-three2767],r13
742
@OC@.w [r12=r2+-(three2767+1)],r13
743
@OC@.w [r12=r2+-(three2767+2)],r5
744
@OC@.w [r12=r2-three2767],r13
745
@OC@.w [r12=r2-(three2767+1)],r13
746
@OC@.w [r12=r2-(three2767+2)],r5
747
@OC@.w [r12=r2+six5535],r5
748
@OC@.w [r12=r2+externalsym],r5
752
@OC@.d [r12=r2+127],r1
753
@OC@.d [r12=r2+128],r1
754
@OC@.d [r12=r2+-1],r1
756
@OC@.d [r12=r2+-127],r1
757
@OC@.d [r12=r2+-128],r1
758
@OC@.d [r12=r2-127],r1
759
@OC@.d [r12=r2-128],r1
760
@OC@.d [r12=r2+255],r1
761
@OC@.d [r12=r2+-255],r1
762
@OC@.d [r12=r2-255],r1
763
@OC@.d [r12=r2+256],r1
764
@OC@.d [r12=r2-256],r1
765
@OC@.d [r12=r2-8856],r1
766
@OC@.d [r12=r2+-256],r1
767
@OC@.d [r12=r2+-8856],r1
768
@OC@.d [r12=r2+8856],r1
770
@OC@.d [r12=r2+2781868],r1
771
@OC@.d [r12=r2+-2701867],r1
773
@OC@.d [r12=r2+0x9ec0ceac],r1
774
@OC@.d [r12=r2+-0x7ec0cead],r1
775
@OC@.d [r12=r2-0x7ec0cead],r1
776
@OC@.d [r12=r2+const_int_m32],r1
777
@OC@.d [r12=r2+const_int_32],r1
779
@OC@.d [r12=r2+42],r13
780
@OC@.d [r12=r2-42],r5
781
@OC@.d [r12=r2+-42],r5
782
@OC@.d [r12=r2+forty2],r5
783
@OC@.d [r12=r2+mforty2],r5
784
@OC@.d [r12=r2-forty2],r5
785
@OC@.d [r12=r2-mforty2],r5
786
@OC@.d [r12=r2+-forty2],r5
787
@OC@.d [r12=r2+-mforty2],r5
789
@OC@.d [r12=r2+three2767],r5
790
@OC@.d [r12=r2+three2767+1],r5
791
@OC@.d [r12=r2+three2767+2],r5
792
@OC@.d [r12=r2+-three2767],r5
793
@OC@.d [r12=r2+-(three2767+1)],r13
794
@OC@.d [r12=r2+-(three2767+2)],r13
795
@OC@.d [r12=r2-three2767],r5
796
@OC@.d [r12=r2-(three2767+1)],r13
797
@OC@.d [r12=r2-(three2767+2)],r13
798
@OC@.d [r12=r2+six5535],r5
799
@OC@.d [r12=r2+six5535+1],r13
800
@OC@.d [r12=r2+two701867],r5
801
@OC@.d [r12=r2+-two701867],r5
802
@OC@.d [r12=r2-two701867],r5
804
@OC@.d [r12=r2+externalsym],r5
812
@OC@ r1,[r12=r2+-127]
813
@OC@ r1,[r12=r2+-128]
817
@OC@ r1,[r12=r2+-255]
821
@OC@ r1,[r12=r2-8856]
822
@OC@ r1,[r12=r2+-256]
823
@OC@ r1,[r12=r2+-8856]
824
@OC@ r1,[r12=r2+8856]
826
@OC@ r1,[r12=r2+2781868]
827
@OC@ r1,[r12=r2+-2701867]
829
@OC@ r1,[r12=r2+0x9ec0ceac]
830
@OC@ r1,[r12=r2+-0x7ec0cead]
831
@OC@ r1,[r12=r2-0x7ec0cead]
832
@OC@ r1,[r12=r2+const_int_m32]
833
@OC@ r1,[r12=r2+const_int_32]
838
@OC@ r5,[r12=r2+forty2]
839
@OC@ r5,[r12=r2+mforty2]
840
@OC@ r5,[r12=r2-forty2]
841
@OC@ r5,[r12=r2-mforty2]
842
@OC@ r5,[r12=r2+-forty2]
843
@OC@ r5,[r12=r2+-mforty2]
845
@OC@ r5,[r12=r2+three2767]
846
@OC@ r5,[r12=r2+three2767+1]
847
@OC@ r5,[r12=r2+three2767+2]
848
@OC@ r5,[r12=r2+-three2767]
849
@OC@ r13,[r12=r2+-(three2767+1)]
850
@OC@ r13,[r12=r2+-(three2767+2)]
851
@OC@ r5,[r12=r2-three2767]
852
@OC@ r13,[r12=r2-(three2767+1)]
853
@OC@ r13,[r12=r2-(three2767+2)]
854
@OC@ r5,[r12=r2+six5535]
855
@OC@ r13,[r12=r2+six5535+1]
856
@OC@ r5,[r12=r2+two701867]
857
@OC@ r5,[r12=r2+-two701867]
858
@OC@ r5,[r12=r2-two701867]
860
@OC@ r5,[r12=r2+externalsym]
880
@OC@.b [externalsym],r5
881
@OC@.w [externalsym],r4
882
@OC@.d [externalsym],r7
884
@OC@ r4,[externalsym]
885
@OC@ r7,[externalsym]
902
@OC@.b [[r9+]],r7,r10
906
@OC@.b [externalsym],r5,r7
907
@OC@.w [externalsym],r4,r9
908
@OC@.d [externalsym],r7,r9
910
@OC@.b [notstart],r5,r9
911
@OC@.w [notstart],r4,r12
912
@OC@.d [notstart],r7,r9