mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-03 15:32:11 +02:00
Fix some small encoding bugs.
git-svn-id: branches/laksen/armiw@29250 -
This commit is contained in:
parent
9e5979e8be
commit
eb3eaab54b
@ -2398,7 +2398,10 @@ implementation
|
||||
begin
|
||||
currsym:=objdata.symbolref(oper[0]^.ref^.symbol);
|
||||
if (currsym.bind<>AB_LOCAL) and (currsym.objsection<>objdata.CurrObjSec) then
|
||||
objdata.writereloc(oper[0]^.ref^.offset,0,currsym,RELOC_RELATIVE_24)
|
||||
begin
|
||||
objdata.writereloc(oper[0]^.ref^.offset,0,currsym,RELOC_RELATIVE_24);
|
||||
bytes:=bytes or $fffffe; // TODO: Not sure this is right, but it matches the output of gas
|
||||
end
|
||||
else
|
||||
bytes:=bytes or (((currsym.offset-insoffset-8) shr 2) and $ffffff);
|
||||
end;
|
||||
@ -2794,6 +2797,7 @@ implementation
|
||||
end
|
||||
else
|
||||
begin
|
||||
bytes:=bytes or (1 shl 25);
|
||||
{ set U flag }
|
||||
if oper[0]^.ref^.signindex>=0 then
|
||||
bytes:=bytes or (1 shl 23);
|
||||
|
@ -370,10 +370,10 @@ reg32,reg32,reg32,reg32 \x16\x00\x80\x9 ARM32,ARMv4
|
||||
reg32,reg32,memam2 \x19\x0\x0\x0\xD0 ARM32,ARMv4
|
||||
|
||||
[PLD]
|
||||
memam2 \x25\xF7\x50\xF0\x0 ARM32,ARMv5TE
|
||||
memam2 \x25\xF5\x50\xF0\x0 ARM32,ARMv5TE
|
||||
|
||||
[PLDW]
|
||||
memam2 \x25\xF7\x10\xF0\x0 ARM32,ARMv7
|
||||
memam2 \x25\xF5\x10\xF0\x0 ARM32,ARMv7
|
||||
|
||||
[QADDcc]
|
||||
reg32,reg32,reg32 \x1A\x01\x00\x05 ARM32,ARMv5TE
|
||||
@ -523,7 +523,7 @@ reg32,reg32,reg32 \x16\x6\x80\x5 ARM32,ARMv6
|
||||
reg32,reg32,reg32,shifterop \x16\x6\x80\x5 ARM32,ARMv6
|
||||
|
||||
[PLI]
|
||||
memam2 \x25\xF6\x50\xF0\x0 ARM32,ARMv7
|
||||
memam2 \x25\xF4\x50\xF0\x0 ARM32,ARMv7
|
||||
|
||||
[QADD16cc]
|
||||
reg32,reg32,reg32 \x16\x06\x20\xF1 ARM32,ARMv6
|
||||
|
@ -949,14 +949,14 @@
|
||||
opcode : A_PLD;
|
||||
ops : 1;
|
||||
optypes : (ot_memoryam2,ot_none,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #37#247#80#240#0;
|
||||
code : #37#245#80#240#0;
|
||||
flags : if_arm32 or if_armv5te
|
||||
),
|
||||
(
|
||||
opcode : A_PLDW;
|
||||
ops : 1;
|
||||
optypes : (ot_memoryam2,ot_none,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #37#247#16#240#0;
|
||||
code : #37#245#16#240#0;
|
||||
flags : if_arm32 or if_armv7
|
||||
),
|
||||
(
|
||||
@ -1320,7 +1320,7 @@
|
||||
opcode : A_PLI;
|
||||
ops : 1;
|
||||
optypes : (ot_memoryam2,ot_none,ot_none,ot_none,ot_none,ot_none);
|
||||
code : #37#246#80#240#0;
|
||||
code : #37#244#80#240#0;
|
||||
flags : if_arm32 or if_armv7
|
||||
),
|
||||
(
|
||||
|
@ -325,7 +325,8 @@ implementation
|
||||
result:=R_ARM_ABS32;
|
||||
RELOC_RELATIVE:
|
||||
result:=R_ARM_REL32;
|
||||
RELOC_RELATIVE_24,
|
||||
RELOC_RELATIVE_24:
|
||||
result:=R_ARM_JUMP24;
|
||||
RELOC_RELATIVE_24_THUMB:
|
||||
result:=R_ARM_CALL;
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user