speed.s 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. .text
  2. .global stmiaTest
  3. .global strTest
  4. .global smullTest
  5. stmiaTest:
  6. STMFD r13!,{r4-r12,r14}
  7. @ r0 = start
  8. @ r1 = size
  9. @ r2 = loops
  10. stmiaTestLoop2:
  11. MOV r3,r0
  12. MOV r4,r1
  13. stmiaTestLoop:
  14. STMIA r3!,{r6,r7,r8,r9,r10,r11,r12,r14}
  15. MOV r6,#0
  16. MOV r6,#0
  17. MOV r6,#0
  18. MOV r6,#0
  19. MOV r6,#0
  20. MOV r6,#0
  21. MOV r6,#0
  22. MOV r6,#0
  23. MOV r6,#0
  24. MOV r6,#0
  25. MOV r6,#0
  26. MOV r6,#0
  27. MOV r6,#0
  28. MOV r6,#0
  29. MOV r6,#0
  30. MOV r6,#0
  31. SUBS r4,r4,#8*4
  32. BGT stmiaTestLoop
  33. SUBS r2,r2,#1
  34. BGT stmiaTestLoop2
  35. LDMFD r13!,{r4-r12,PC}
  36. strTest:
  37. STMFD r13!,{r4-r12,r14}
  38. @ r0 = start
  39. @ r1 = size
  40. @ r2 = loops
  41. strTestLoop2:
  42. MOV r3,r0
  43. MOV r4,r1
  44. strTestLoop:
  45. STR r6,[r3],#4
  46. STR r7,[r3],#4
  47. STR r8,[r3],#4
  48. STR r9,[r3],#4
  49. STR r10,[r3],#4
  50. STR r11,[r3],#4
  51. STR r12,[r3],#4
  52. STR r14,[r3],#4
  53. @STMIA r3!,{r6,r7,r8,r9,r10,r11,r12,r14}
  54. MOV r6,#0
  55. MOV r6,#0
  56. MOV r6,#0
  57. MOV r6,#0
  58. MOV r6,#0
  59. MOV r6,#0
  60. MOV r6,#0
  61. MOV r6,#0
  62. MOV r6,#0
  63. MOV r6,#0
  64. MOV r6,#0
  65. MOV r6,#0
  66. MOV r6,#0
  67. MOV r6,#0
  68. MOV r6,#0
  69. MOV r6,#0
  70. SUBS r4,r4,#8*4
  71. BGT strTestLoop
  72. SUBS r2,r2,#1
  73. BGT strTestLoop2
  74. LDMFD r13!,{r4-r12,PC}
  75. smullTest:
  76. STMFD r13!,{r4-r12,r14}
  77. @ r0 = start
  78. @ r1 = size
  79. @ r2 = loops
  80. smullTestLoop2:
  81. MVN r7,#0xAA000000
  82. MVN r8,#0xAA000000
  83. MOV r3,r0
  84. MOV r4,r1
  85. smullTestLoop:
  86. SMULL r14,r12,r7,r8
  87. MOV r6,#0
  88. SMLAL r14,r12,r7,r8
  89. MOV r6,#0
  90. SMULL r14,r11,r7,r8
  91. MOV r6,#0
  92. SMLAL r14,r11,r7,r8
  93. SUBS r4,r4,#8*4
  94. BGT smullTestLoop
  95. SUBS r2,r2,#1
  96. BGT smullTestLoop2
  97. LDMFD r13!,{r4-r12,PC}