Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- .macro load reg, x
- mov \reg, #((\x) & 0xFF000000)
- orr \reg, \reg, #((\x) & 0x00FF0000)
- orr \reg, \reg, #((\x) & 0x0000FF00)
- orr \reg, \reg, #((\x) & 0x000000FF)
- .endm
- loop1:
- load r0, 0x18000000
- load r1, 400*240*3*2
- load r2, 0xA3B5D2F8
- mov r3, #0
- loop2:
- add r4, r0, r3
- str r2, [r4]
- add r3, r3, #4
- cmp r3, r1
- blt loop2
- b loop1
- */
- #define load(reg, x) \
- "mov " # reg ", #((" # x ") & 0xFF000000)\n\t" \
- "orr " # reg ", " # reg ", #((" # x ") & 0x00FF0000)\n\t" \
- "orr " # reg ", " # reg ", #((" # x ") & 0x0000FF00)\n\t" \
- "orr " # reg ", " # reg ", #((" # x ") & 0x000000FF)\n\t"
- void __attribute__((naked)) foo(void)
- {
- __asm__ volatile(
- "loop1:\n\t"
- load(r0, 0x18000000)
- load(r1, 400*240*3*2)
- load(r2, 0xA3B5D2F9)
- "mov r3, #0\n\t"
- "loop2:\n\t"
- "add r4, r0, r3\n\t"
- "str r2, [r4]\n\t"
- "add r3, r3, #4\n\t"
- "cmp r3, r1\n\t"
- "blt loop2\n\t"
- "b loop1\n\t"
- );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement