Author: tkreuzer
Date: Sat Sep 29 22:58:06 2012
New Revision: 57439
URL:
http://svn.reactos.org/svn/reactos?rev=57439&view=rev
Log:
[SPEC2DEF]
Implement support for int128.
CORE-6630 #resolve
Modified:
trunk/reactos/tools/spec2def/spec2def.c
Modified: trunk/reactos/tools/spec2def/spec2def.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/spec2def/spec2def.c?…
==============================================================================
--- trunk/reactos/tools/spec2def/spec2def.c [iso-8859-1] (original)
+++ trunk/reactos/tools/spec2def/spec2def.c [iso-8859-1] Sat Sep 29 22:58:06 2012
@@ -67,6 +67,7 @@
ARG_WSTR,
ARG_DBL,
ARG_INT64,
+ ARG_INT128,
ARG_FLOAT
};
@@ -191,7 +192,9 @@
case ARG_PTR: fprintf(file, "void*"); break;
case ARG_STR: fprintf(file, "char*"); break;
case ARG_WSTR: fprintf(file, "wchar_t*"); break;
- case ARG_DBL: case ARG_INT64 : fprintf(file, "__int64"); break;
+ case ARG_DBL:
+ case ARG_INT64 : fprintf(file, "__int64"); break;
+ case ARG_INT128 : fprintf(file, "__int128"); break;
case ARG_FLOAT: fprintf(file, "float"); break;
}
fprintf(file, " a%d", i);
@@ -210,6 +213,7 @@
case ARG_WSTR: fprintf(file, "'%%ws'"); break;
case ARG_DBL: fprintf(file, "%%f"); break;
case ARG_INT64: fprintf(file, "%%\"PRix64\""); break;
+ case ARG_INT128: fprintf(file, "%%\"PRix128\""); break;
case ARG_FLOAT: fprintf(file, "%%f"); break;
}
}
@@ -226,6 +230,7 @@
case ARG_WSTR: fprintf(file, "(wchar_t*)a%d", i); break;
case ARG_DBL: fprintf(file, "(double)a%d", i); break;
case ARG_INT64: fprintf(file, "(__int64)a%d", i); break;
+ case ARG_INT128: fprintf(file, "(__int128)a%d", i); break;
case ARG_FLOAT: fprintf(file, "(float)a%d", i); break;
}
}
@@ -600,6 +605,11 @@
exp.nStackBytes += 8;
exp.anArgs[exp.nArgCount] = ARG_INT64;
}
+ else if (CompareToken(pc, "int128"))
+ {
+ exp.nStackBytes += 16;
+ exp.anArgs[exp.nArgCount] = ARG_INT128;
+ }
else if (CompareToken(pc, "float"))
{
exp.nStackBytes += 4;