mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-05 16:08:01 +02:00
Add VFPv4 FPU type for ARM.
Fix assembler reader so it can read instructions longer than 5 characters. git-svn-id: trunk@30186 -
This commit is contained in:
parent
f79a8c1544
commit
64f127141f
@ -165,6 +165,7 @@ uses
|
|||||||
IF_FPA = $10000000;
|
IF_FPA = $10000000;
|
||||||
IF_VFPv2 = $20000000;
|
IF_VFPv2 = $20000000;
|
||||||
IF_VFPv3 = $40000000;
|
IF_VFPv3 = $40000000;
|
||||||
|
IF_VFPv4 = $80000000;
|
||||||
|
|
||||||
{ if the instruction can change in a second pass }
|
{ if the instruction can change in a second pass }
|
||||||
IF_PASS2 = longint($80000000);
|
IF_PASS2 = longint($80000000);
|
||||||
@ -2034,7 +2035,8 @@ implementation
|
|||||||
IF_VFPv2,
|
IF_VFPv2,
|
||||||
IF_VFPv2 or IF_VFPv3,
|
IF_VFPv2 or IF_VFPv3,
|
||||||
IF_VFPv2 or IF_VFPv3,
|
IF_VFPv2 or IF_VFPv3,
|
||||||
IF_NONE
|
IF_NONE,
|
||||||
|
IF_VFPv2 or IF_VFPv3 or IF_VFPv4
|
||||||
);
|
);
|
||||||
begin
|
begin
|
||||||
fArmVMask:=Masks[current_settings.cputype] or FPUMasks[current_settings.fputype];
|
fArmVMask:=Masks[current_settings.cputype] or FPUMasks[current_settings.fputype];
|
||||||
|
@ -109,6 +109,8 @@ unit agarmgas;
|
|||||||
result:='-mfpu=vfpv3-d16 '+result;
|
result:='-mfpu=vfpv3-d16 '+result;
|
||||||
if (current_settings.fputype = fpu_fpv4_s16) then
|
if (current_settings.fputype = fpu_fpv4_s16) then
|
||||||
result:='-mfpu=fpv4-sp-d16 '+result;
|
result:='-mfpu=fpv4-sp-d16 '+result;
|
||||||
|
if (current_settings.fputype = fpu_vfpv4) then
|
||||||
|
result:='-mfpu=vfpv4 '+result;
|
||||||
|
|
||||||
if GenerateThumb2Code then
|
if GenerateThumb2Code then
|
||||||
result:='-march='+cputype_to_gas_march[current_settings.cputype]+' -mthumb -mthumb-interwork '+result
|
result:='-march='+cputype_to_gas_march[current_settings.cputype]+' -mthumb -mthumb-interwork '+result
|
||||||
|
@ -67,7 +67,8 @@ Type
|
|||||||
fpu_vfpv2,
|
fpu_vfpv2,
|
||||||
fpu_vfpv3,
|
fpu_vfpv3,
|
||||||
fpu_vfpv3_d16,
|
fpu_vfpv3_d16,
|
||||||
fpu_fpv4_s16
|
fpu_fpv4_s16,
|
||||||
|
fpu_vfpv4
|
||||||
);
|
);
|
||||||
|
|
||||||
tcontrollertype =
|
tcontrollertype =
|
||||||
@ -402,7 +403,8 @@ Const
|
|||||||
'VFPV2',
|
'VFPV2',
|
||||||
'VFPV3',
|
'VFPV3',
|
||||||
'VFPV3_D16',
|
'VFPV3_D16',
|
||||||
'FPV4_S16'
|
'FPV4_S16',
|
||||||
|
'VFPV4'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
@ -1287,7 +1287,7 @@ Unit raarmgas;
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
maxlen:=min(length(hs),5);
|
maxlen:=min(length(hs),6);
|
||||||
actopcode:=A_NONE;
|
actopcode:=A_NONE;
|
||||||
j2:=maxlen;
|
j2:=maxlen;
|
||||||
hs2:=hs;
|
hs2:=hs;
|
||||||
|
Loading…
Reference in New Issue
Block a user