From 59f0e7a197030aaebb7768ab919d09af7cad60f3 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sat, 23 Jan 2010 00:15:08 +1300 Subject: [PATCH] alien.c-types: ensure that long and ulong types are defined with define-primitive-type and not typedef --- basis/alien/c-types/c-types.factor | 13 +++++++------ basis/cpu/x86/x86.factor | 4 ++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/basis/alien/c-types/c-types.factor b/basis/alien/c-types/c-types.factor index ff17e68e83..24221160ce 100644 --- a/basis/alien/c-types/c-types.factor +++ b/basis/alien/c-types/c-types.factor @@ -494,11 +494,11 @@ SYMBOLS: \ ulonglong define-primitive-type os windows? [ - \ int c-type \ long typedef - \ uint c-type \ ulong typedef + \ int c-type \ long define-primitive-type + \ uint c-type \ ulong define-primitive-type ] [ - \ longlong c-type \ long typedef - \ ulonglong c-type \ ulong typedef + \ longlong c-type \ long define-primitive-type + \ ulonglong c-type \ ulong define-primitive-type ] if \ longlong c-type \ ptrdiff_t typedef @@ -529,11 +529,12 @@ SYMBOLS: "to_unsigned_8" >>unboxer \ ulonglong define-primitive-type - \ int c-type \ long typedef + \ int c-type \ long define-primitive-type + \ uint c-type \ ulong define-primitive-type + \ int c-type \ ptrdiff_t typedef \ int c-type \ intptr_t typedef - \ uint c-type \ ulong typedef \ uint c-type \ uintptr_t typedef \ uint c-type \ size_t typedef ] if diff --git a/basis/cpu/x86/x86.factor b/basis/cpu/x86/x86.factor index f2751b1be2..0cd557896b 100644 --- a/basis/cpu/x86/x86.factor +++ b/basis/cpu/x86/x86.factor @@ -56,8 +56,8 @@ M: x86 stack-frame-size ( stack-frame -- i ) 3 cells + align-stack ; -! Must be a volatile register not used for parameter passing, for safe -! use in calls in and out of C +! Must be a volatile register not used for parameter passing or +! integer return HOOK: temp-reg cpu ( -- reg ) HOOK: pic-tail-reg cpu ( -- reg )