more reliable NI/NU definitions
This commit is contained in:
parent
b9afdffb3e
commit
58a66a0d70
2 changed files with 21 additions and 14 deletions
|
|
@ -800,20 +800,9 @@ proc genVarPrototype(m: BModule, sym: PSym) =
|
||||||
if sfExportc in sym.flags and generatedHeader != nil:
|
if sfExportc in sym.flags and generatedHeader != nil:
|
||||||
genVarPrototypeAux(generatedHeader, sym)
|
genVarPrototypeAux(generatedHeader, sym)
|
||||||
|
|
||||||
proc addIntTypes(result: var PRope) =
|
proc addIntTypes(result: var PRope) {.inline.} =
|
||||||
case platform.CPU[targetCPU].intSize
|
appf(result, "#define NIM_INTBITS $1", [
|
||||||
of 16:
|
platform.CPU[targetCPU].intSize.toRope])
|
||||||
appff(result,
|
|
||||||
"$ntypedef short int NI;$n" & "typedef unsigned short int NU;$n",
|
|
||||||
"$n%NI = type i16$n", [])
|
|
||||||
of 32:
|
|
||||||
appff(result,
|
|
||||||
"$ntypedef long int NI;$n" & "typedef unsigned long int NU;$n",
|
|
||||||
"$n%NI = type i32$n", [])
|
|
||||||
of 64:
|
|
||||||
appff(result, "$ntypedef long long int NI;$n" &
|
|
||||||
"typedef unsigned long long int NU;$n", "$n%NI = type i64$n", [])
|
|
||||||
else: nil
|
|
||||||
|
|
||||||
proc getCopyright(cfilenoext: string): PRope =
|
proc getCopyright(cfilenoext: string): PRope =
|
||||||
if optCompileOnly in gGlobalOptions:
|
if optCompileOnly in gGlobalOptions:
|
||||||
|
|
|
||||||
|
|
@ -337,6 +337,24 @@ typedef long long int NI64;
|
||||||
typedef unsigned int NU32;
|
typedef unsigned int NU32;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef NIM_INTBITS
|
||||||
|
# if NIM_INTBITS == 64
|
||||||
|
typedef NI64 NI;
|
||||||
|
typedef NU64 NU;
|
||||||
|
# elif NIM_INTBITS == 32
|
||||||
|
typedef NI32 NI;
|
||||||
|
typedef NU32 NU;
|
||||||
|
# elif NIM_INTBITS == 16
|
||||||
|
typedef NI16 NI;
|
||||||
|
typedef NU16 NU;
|
||||||
|
# elif NIM_INTBITS == 8
|
||||||
|
typedef NI8 NI;
|
||||||
|
typedef NU8 NU;
|
||||||
|
# else
|
||||||
|
# error "invalid bit width for int"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
extern NI nim_program_result;
|
extern NI nim_program_result;
|
||||||
|
|
||||||
typedef float NF32;
|
typedef float NF32;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue