Skip to content

Commit e09dad2

Browse files
WalterBrightthewilsonator
authored andcommitted
use argtypes_aarch64.d for AArch64
1 parent 28f246f commit e09dad2

File tree

1 file changed

+24
-4
lines changed

1 file changed

+24
-4
lines changed

compiler/src/dmd/target.d

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -988,14 +988,24 @@ extern (C++) struct Target
988988
*/
989989
extern (C++) TypeTuple toArgTypes(Type t)
990990
{
991-
import dmd.argtypes_x86 : toArgTypes_x86;
992991
import dmd.argtypes_sysv_x64 : toArgTypes_sysv_x64;
993-
if (isX86_64 || isAArch64)
992+
if (isX86_64)
994993
{
995994
// no argTypes for Win64 yet
996995
return isPOSIX ? toArgTypes_sysv_x64(t) : null;
997996
}
998-
return toArgTypes_x86(t);
997+
else if (isX86)
998+
{
999+
import dmd.argtypes_x86 : toArgTypes_x86;
1000+
return toArgTypes_x86(t);
1001+
}
1002+
else if (isAArch64)
1003+
{
1004+
import dmd.argtypes_aarch64 : toArgTypes_aarch64;
1005+
return toArgTypes_aarch64(t);
1006+
}
1007+
else
1008+
assert(0);
9991009
}
10001010

10011011
/**
@@ -1073,14 +1083,24 @@ extern (C++) struct Target
10731083
return true;
10741084
}
10751085
}
1076-
else if ((isX86_64 || isAArch64) && isPOSIX)
1086+
else if (isX86_64 && isPOSIX)
10771087
{
10781088
TypeTuple tt = toArgTypes_sysv_x64(tn);
10791089
if (!tt)
10801090
return false; // void
10811091

10821092
return !tt.arguments.length;
10831093
}
1094+
else if (isAArch64 && isPOSIX)
1095+
{
1096+
import dmd.argtypes_aarch64 : toArgTypes_aarch64;
1097+
1098+
TypeTuple tt = toArgTypes_aarch64(tn);
1099+
if (!tt)
1100+
return false; // void
1101+
1102+
return !tt.arguments.length;
1103+
}
10841104

10851105
Lagain:
10861106
if (tns.ty == TY.Tsarray)

0 commit comments

Comments
 (0)