by schtruck » Oct 21, 2002 @ 10:35pm
in the case of yes , here is what the compiler generate:
; 205 : WriteB(address + membase, value);
eor r3, r1, #1
ldr r1, [pc, #8] ; pc+8+8 = 00000014
ldr r1, [r1]
strb r3, [r1, +r0]
; 211 : WriteW(address + membase, value);
ldr r2, [pc, #8] ; pc+8+8 = 00000010
ldr r2, [r2]
strh r1, [r2, +r0]
; 217 : WriteL(address + membase, value);
mov r3, r1, lsr #16
orr r3, r3, r1, lsl #16
ldr r1, [pc, #8] ; pc+8+8 = 00000018
ldr r1, [r1]
str r3, [r1, +r0]
; 222 : return ReadB(address + membase);
ldr r1, [pc, #0xC] ; pc+8+12 = 00000014
ldr r1, [r1]
ldrb r3, [r1, +r0]
eor r0, r3, #1
; 227 : return ReadW(address + membase);
ldr r1, [pc, #8] ; pc+8+8 = 00000010
ldr r1, [r1]
ldrh r0, [r1, +r0]
; 232 : return ReadL(address + membase);
ldr r1, [pc, #0x10] ; pc+8+16 = 00000018
ldr r1, [r1]
ldr r0, [r1, +r0]
mov r3, r0, lsr #16
orr r0, r3, r0, lsl #16