mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-18 12:39:36 +02:00
* do not extend 8 bit return values to 32 bit when loading them into eax,
this is not required by the api, neither does e.g. clang it git-svn-id: trunk@48136 -
This commit is contained in:
parent
22864b47e4
commit
a286ad9d77
@ -178,10 +178,13 @@ unit cpupara;
|
||||
cl.typ:=X86_64_INTEGERSI_CLASS;
|
||||
{ gcc/clang sign/zero-extend all values to 32 bits, except for
|
||||
_Bool (= Pascal boolean), which is only zero-extended to 8 bits
|
||||
as per the x86-64 ABI -> do the same }
|
||||
as per the x86-64 ABI -> do the same
|
||||
|
||||
some testing showed, that this is not true for 8 bit values:
|
||||
in case of an 8 bit value, it is not zero/sign extended }
|
||||
if not assigned(cl.def) or
|
||||
not is_pasbool(cl.def) or
|
||||
(torddef(cl.def).ordtype<>pasbool1) then
|
||||
not(cl.def.typ=orddef) or
|
||||
not(torddef(cl.def).ordtype in [uchar,u8bit,s8bit,pasbool1]) then
|
||||
cl.def:=u32inttype;
|
||||
end
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user