Advertisement
xerpi

Linux crappy FB fill

Jul 19th, 2016
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.97 KB | None | 0 0
  1. /*
  2.  
  3. .macro load reg, x
  4.     mov \reg, #((\x) & 0xFF000000)
  5.     orr \reg, \reg, #((\x) & 0x00FF0000)
  6.     orr \reg, \reg, #((\x) & 0x0000FF00)
  7.     orr \reg, \reg, #((\x) & 0x000000FF)
  8. .endm
  9.  
  10.  
  11.     loop1:
  12.         load r0, 0x18000000
  13.         load r1, 400*240*3*2
  14.         load r2, 0xA3B5D2F8
  15.         mov r3, #0
  16.         loop2:
  17.             add r4, r0, r3
  18.             str r2, [r4]
  19.             add r3, r3, #4
  20.             cmp r3, r1
  21.             blt loop2
  22.         b loop1
  23. */
  24.  
  25.  
  26. #define load(reg, x) \
  27.     "mov " # reg ", #((" # x ") & 0xFF000000)\n\t" \
  28.     "orr " # reg ", " # reg ", #((" # x ") & 0x00FF0000)\n\t" \
  29.     "orr " # reg ", " # reg ", #((" # x ") & 0x0000FF00)\n\t" \
  30.     "orr " # reg ", " # reg ", #((" # x ") & 0x000000FF)\n\t"
  31.  
  32. void __attribute__((naked)) foo(void)
  33. {
  34.     __asm__ volatile(
  35.         "loop1:\n\t"
  36.             load(r0, 0x18000000)
  37.             load(r1, 400*240*3*2)
  38.             load(r2, 0xA3B5D2F9)
  39.             "mov r3, #0\n\t"
  40.             "loop2:\n\t"
  41.                 "add r4, r0, r3\n\t"
  42.                 "str r2, [r4]\n\t"
  43.                 "add r3, r3, #4\n\t"
  44.                 "cmp r3, r1\n\t"
  45.                 "blt loop2\n\t"
  46.             "b loop1\n\t"
  47.     );
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement