diff -r 820b22e13ff1 -r 39c28ec933dd imgtools/romtools/rombuild/stubs.lst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imgtools/romtools/rombuild/stubs.lst Mon May 10 19:54:49 2010 +0100 @@ -0,0 +1,74 @@ + 1 @ DLL Stub routines + 2 @ + 3 @ Compile with "gcc -c -Wa,-adhln stubs.s" + 4 @ + 5 .text + 6 .code 32 + 7 .globl arm4_stub + 8 arm4_stub: + 9 0000 00C09FE5 ldr ip, [pc] + 10 0004 00F09CE5 ldr pc, [ip] + 11 0008 44332211 .word 0x11223344 @ address in IAT/edata + 12 + 13 .code 32 + 14 .globl armi_stub + 15 armi_stub: + 16 000c 04C09FE5 ldr ip, [pc, #4] + 17 0010 00F09CE5 ldr pc, [ip] + 18 0014 1CFF2FE1 bx ip + 19 0018 44332211 .word 0x11223344 @ address in IAT/edata + 20 + 21 .code 16 + 22 .globl thumb_stub + 23 thumb_stub: + 24 001c 40B4 push {r6} + 25 001e 024E ldr r6, [pc, #8] + 26 0020 3668 ldr r6, [r6] + 27 0022 B446 mov ip, r6 + 28 0024 40BC pop {r6} + 29 0026 6047 bx ip + 30 0028 44332211 .word 0x11223344 @ address in IAT/edata + 31 + 32 .code 16 + 33 .globl thumb_r3unused_stub + 34 thumb_r3unused_stub: + 35 002c 014B ldr r3, [pc, #4] + 36 002e 1B68 ldr r3, [r3] + 37 0030 1847 bx r3 + 38 0032 C046 nop + 39 0034 44332211 .word 0x11223344 @ address in IAT/edata + 40 + 41 + 42 @ In-place rewrites if destination address + 43 @ is fixed + 44 @ + 45 .code 32 + 46 .globl fast_armi_stub + 47 fast_armi_stub: + 48 0038 04C09FE5 ldr ip, [pc, #4] + 49 003c 1CFF2FE1 bx ip + 50 0040 00000000 .word 0 @ nop + 51 0044 53525150 .word 0x50515253 @ destination address + 52 + 53 .code 16 + 54 .globl fast_thumb_stub + 55 fast_thumb_stub: + 56 0048 40B4 push {r6} + 57 004a 024E ldr r6, [pc, #8] + 58 004c B446 mov ip, r6 + 59 004e 40BC pop {r6} + 60 0050 6047 bx ip + 61 0052 C046 nop + 62 0054 53525150 .word 0x50515253 @ destination address + 63 + 64 .code 16 + 65 .globl fast_thumb_r3unused_stub + 66 fast_thumb_r3unused_stub: + 67 0058 014B ldr r3, [pc, #4] + 68 005a 1847 bx r3 + 69 005c C046 nop + 70 005e C046 nop + 71 0060 53525150 .word 0x50515253 @ destination address + 72 + 73 + 74