Yury Sidorov wrote:
From: "Florian Klaempfl" <[EMAIL PROTECTED]>
var
i: integer;
begin
i:=PInteger(123)^;
end;
Yury Sidorov.
Fixed, hopefully I didn't destroy much because I didn't test the fix.
Maybe you can create a system.s before applying the patch and diff it
with a system.s from the new ppcarm.
system.s is generated properly as before.
But fix is incorrect. The following strange code is generated for
assignment:
123 is not aligned to a 32 bit boundary so byte moves are generated
(try with 120 instead), at least arm-linux require proper alignment. I
agree that the code is suboptimal and that it should generate 4 ld/st
instructions but the code is correct imo.
ldr r0,.L9
mov r3,#123
mov r1,#4
.L10:
ldrb r2,[r3], #1
subs r1,r1,#1
strb r2,[r0], #1
bne .L10
...
.L9:
.long U_P$TEST_I
Yury Sidorov.
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel