home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / emulate / sparc / t2.s < prev    next >
Text File  |  1992-01-29  |  2KB  |  138 lines

  1. /*
  2.  * Exercise all non-branching opcodes at least partially.
  3.  * Section numbers are from the SPARC Architecture
  4.  * Manual.
  5.  */
  6.     .seg "text"
  7.     set str, %o1
  8. !
  9. ! B.1 Load Integer Instructions
  10. !
  11.     ldsb [%o1],%g0
  12.     ldub [%o1],%g0
  13.     ldsh [%o1],%g0
  14.     lduh [%o1],%g0
  15.     ld   [%o1],%g0
  16.     ldd  [%o1],%g0
  17. !
  18. ! B.4 Store Integer Instructions
  19. !
  20.     stb  %g0,[%o1]
  21.     sth  %g0,[%o1]
  22.     st   %g0,[%o1]
  23.     std  %g0,[%o1]
  24. !
  25. ! B.7 Atomic Load-Store Unsigned Byte Instruction
  26. !
  27.     ldstub [%o1],%g0
  28. !
  29. ! B.8 SWAP r Register with Memory
  30. !
  31.     swap [%o1],%g0
  32. !
  33. ! B.9 Add Instructions
  34. !
  35.     add    %o1,%o2,%o3
  36.     addcc  %o1,%o2,%o3
  37.     addx   %o1,%o2,%o3
  38.     addxcc %o1,%o2,%o3
  39. !
  40. ! B.10 Tagged Add Instructions
  41. !
  42.     taddcc %o1,%o2,%o3
  43.     taddcctv %o1,%o2,%o3
  44. !
  45. ! B.11 Subtract Instructions
  46. !
  47.     sub    %o1,%o2,%o3
  48.     subcc  %o1,%o2,%o3
  49.     subx   %o1,%o2,%o3
  50.     subxcc %o1,%o2,%o3
  51. !
  52. ! B.12 Tagged Subtract Instructions
  53. !
  54.     tsubcc %o1,%o2,%o3
  55.     tsubcctv %o1,%o2,%o3
  56. !
  57. ! B.13 Multiply Step Instruction
  58. !
  59.     mulscc %o1,%o2,%o3
  60. !
  61. ! B.14 Logical Instructions
  62. !
  63.     and    %o1,%o2,%o3
  64.     andcc    %o1,%o2,%o3
  65.     andn    %o1,%o2,%o3
  66.     andncc    %o1,%o2,%o3
  67.     or    %o1,%o2,%o3
  68.     orcc    %o1,%o2,%o3
  69.     orn    %o1,%o2,%o3
  70.     orncc    %o1,%o2,%o3
  71.     xor    %o1,%o2,%o3
  72.     xorcc    %o1,%o2,%o3
  73.     xnor    %o1,%o2,%o3
  74.     xnorcc    %o1,%o2,%o3
  75. !
  76. ! B.15 Shift Instructions
  77. !
  78.     sll    %o1,%o2,%o3
  79.     srl    %o1,%o2,%o3
  80.     sra    %o1,%o2,%o3
  81. !
  82. ! B.16 Sethi Instruction
  83. !
  84.     sethi    0,%o3
  85. !
  86. ! B.17 Save and Restore Instructions
  87. !
  88.     save    %o1,%o2,%o3
  89.     restore %o1,%o2,%o3
  90. !
  91. ! B.25 Read Y Register Instruction
  92. !
  93.     rd    %y,%o3
  94. !
  95. ! B.26 Write Y Register Instruction
  96. !
  97.     wr    %o3,%g0,%y
  98. !
  99. ! B.28 Instruction Cache Flush Instruction
  100. !
  101.     iflush  %o1
  102. !
  103. ! B.29 Floating-point Operate Instructions
  104.     fitos %f0,%f4
  105.     fitod %f0,%f4
  106.     fstoi %f0,%f4
  107.     fdtoi %f0,%f4
  108.     fstod %f0,%f4
  109.     fdtos %f0,%f4
  110.     fmovs %f0,%f4
  111.     fnegs %f0,%f4
  112.     fabss %f0,%f4
  113.     fsqrts %f0,%f4
  114.     fsqrtd %f0,%f4
  115.     fadds    %f0,%f2,%f4
  116.     faddd    %f0,%f2,%f4
  117.     fsubs    %f0,%f2,%f4
  118.     fsubd    %f0,%f2,%f4
  119.     fmuls    %f0,%f2,%f4
  120.     fmuld    %f0,%f2,%f4
  121.     fdivs    %f0,%f2,%f4
  122.     fdivd    %f0,%f2,%f4
  123.     fcmps    %f0,%f2
  124.     fcmpd    %f0,%f2
  125.     fcmpes    %f0,%f2
  126.     fcmped    %f0,%f2
  127.  
  128.  
  129. !
  130. ! Exit with status 18
  131. !
  132.     mov 18,%o0
  133.     mov 1,%g1
  134.     ta 0
  135.  
  136.     .seg "data"
  137. str:
  138.     .asciz "Sample data"