codetools: added proc modifier vectorcall, patch #33134

git-svn-id: trunk@57287 -
This commit is contained in:
mattias 2018-02-12 14:55:09 +00:00
parent a10e37e072
commit 1f153b731b
3 changed files with 11 additions and 3 deletions

View File

@ -262,6 +262,7 @@ type
psLibrary,
psEnumerator,
psVarargs,
psVectorCall,
psEdgedBracket
);
TAllProcedureSpecifiers = set of TProcedureSpecifier;
@ -273,7 +274,7 @@ const
'EXTERNAL', 'FORWARD', 'PASCAL', 'ASSEMBLER', 'SAVEREGISTERS',
'FAR', 'NEAR', 'FINAL', 'STATIC', 'MWPASCAL', 'NOSTACKFRAME',
'DEPRECATED', 'DISPID', 'PLATFORM', 'SAFECALL', 'UNIMPLEMENTED',
'EXPERIMENTAL', 'LIBRARY', 'ENUMERATOR', 'VARARGS',
'EXPERIMENTAL', 'LIBRARY', 'ENUMERATOR', 'VARARGS', 'VECTORCALL',
'['
);

View File

@ -897,6 +897,7 @@ begin
Add('FINAL' ,{$ifdef FPC}@{$endif}AllwaysTrue);
Add('ENUMERATOR' ,{$ifdef FPC}@{$endif}AllwaysTrue);
Add('VARARGS' ,{$ifdef FPC}@{$endif}AllwaysTrue);
Add('VECTORCALL' ,{$ifdef FPC}@{$endif}AllwaysTrue);
Add('EXTERNAL' ,{$ifdef FPC}@{$endif}AllwaysTrue); //jvm
end;
@ -937,6 +938,7 @@ begin
Add('SYSCALL' ,{$ifdef FPC}@{$endif}AllwaysTrue);
Add('UNIMPLEMENTED',{$ifdef FPC}@{$endif}AllwaysTrue);
Add('VARARGS' ,{$ifdef FPC}@{$endif}AllwaysTrue); // kylix
Add('VECTORCALL' ,{$ifdef FPC}@{$endif}AllwaysTrue);
Add('WEAKEXTERNAL' ,{$ifdef FPC}@{$endif}AllwaysTrue);
Add('[' ,{$ifdef FPC}@{$endif}AllwaysTrue);
end;
@ -959,6 +961,7 @@ begin
Add('SAFECALL' ,{$ifdef FPC}@{$endif}AllwaysTrue);
Add('UNIMPLEMENTED',{$ifdef FPC}@{$endif}AllwaysTrue);
Add('VARARGS' ,{$ifdef FPC}@{$endif}AllwaysTrue);
Add('VECTORCALL' ,{$ifdef FPC}@{$endif}AllwaysTrue);
Add('EXPERIMENTAL' ,{$ifdef FPC}@{$endif}AllwaysTrue);
Add('LIBRARY' ,{$ifdef FPC}@{$endif}AllwaysTrue);
Add('IS' ,{$ifdef FPC}@{$endif}AllwaysTrue);
@ -973,6 +976,7 @@ begin
Add('EXTDECL' ,{$ifdef FPC}@{$endif}AllwaysTrue);
Add('MWPASCAL' ,{$ifdef FPC}@{$endif}AllwaysTrue);
Add('POPSTACK' ,{$ifdef FPC}@{$endif}AllwaysTrue);
Add('VECTORCALL' ,{$ifdef FPC}@{$endif}AllwaysTrue);
// Note: 'inline' and 'is nested' are not a calling specifiers
end;

View File

@ -279,7 +279,9 @@ type
pocall_softfloat,
{ Metrowerks Pascal. Special case on Mac OS (X): passes all }
{ constant records by reference. }
pocall_mwpascal
pocall_mwpascal,
{ for x86-64: Microsoft's "vectorcall" ABI }
pocall_vectorcall
);
tproccalloptions = set of tproccalloption;
@ -414,7 +416,8 @@ const
'SafeCall',
'StdCall',
'SoftFloat',
'MWPascal'
'MWPascal',
'VectorCall'
);
proctypeoptionNames : array[tproctypeoption] of string[20]=(
'none',