[Vm-dev] VM Maker: VMMaker.oscog-EstebanLorenzano.1676.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Feb 3 18:21:24 UTC 2016
Esteban Lorenzano uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-EstebanLorenzano.1676.mcz
==================== Summary ====================
Name: VMMaker.oscog-EstebanLorenzano.1676
Author: EstebanLorenzano
Time: 3 February 2016, 7:19:31.574513 pm
UUID: 707197b7-1656-460f-bb98-5b042b79239b
Ancestors: VMMaker.oscog-EstebanLorenzano.1675
- nuked useless method (it was necesary for pharo but not anymore)
- if plugin is builting, compile fails because warning() is already defined elsewhere.
- sanitize: predeclaring extern/used functions to avoid "undeclared" warning
=============== Diff against VMMaker.oscog-EstebanLorenzano.1675 ===============
Item was changed:
----- Method: ThreadedFFIPlugin class>>preambleCCode (in category 'translation') -----
preambleCCode
"For a source of builtin defines grep for builtin_define in a gcc release config directory."
^'
#include "sqAssert.h" /* for assert */
#ifdef _MSC_VER
# define alloca _alloca
#endif
#if defined(__GNUC__) && (defined(_X86_) || defined(i386) || defined(__i386) || defined(__i386__))
# define setsp(sp) asm volatile ("movl %0,%%esp" : : "m"(sp))
# define getsp() ({ void *esp; asm volatile ("movl %%esp,%0" : "=r"(esp) : ); esp;})
# elif defined(__GNUC__) && (defined(__arm__))
# define setsp(sp) asm volatile ("ldr %%sp, %0" : : "m"(sp))
# define getsp() ({ void *sp; asm volatile ("mov %0, %%sp" : "=r"(sp) : ); sp;})
#endif
#if !!defined(getsp)
# define getsp() 0
#endif
#if !!defined(setsp)
# define setsp(ignored) 0
#endif
#if !!defined(STACK_ALIGN_BYTES)
# if __APPLE__ && __MACH__ && __i386__
# define STACK_ALIGN_BYTES 16
# elif __linux__ && __i386__
# define STACK_ALIGN_BYTES 16
# elif defined(__amd64__) || defined(__x86_64__) || defined(__amd64) || defined(__x86_64)
# define STACK_ALIGN_BYTES 16
# elif defined(powerpc) || defined(__powerpc__) || defined(_POWER) || defined(__POWERPC__) || defined(__PPC__)
# define STACK_ALIGN_BYTES 16
# elif defined(__sparc64__) || defined(__sparcv9__) || defined(__sparc_v9__) /* must precede 32-bit sparc defs */
# define STACK_ALIGN_BYTES 16
# elif defined(sparc) || defined(__sparc__) || defined(__sparclite__)
# define STACK_ALIGN_BYTES 8
# elif defined(__arm__)
# define STACK_ALIGN_BYTES 8
# else
# define STACK_ALIGN_BYTES 0
# endif
#endif /* !!defined(STACK_ALIGN_BYTES) */
#if !!defined(STACK_OFFSET_BYTES)
# define STACK_OFFSET_BYTES 0
#endif
#if defined(_X86_) || defined(i386) || defined(__i386) || defined(__i386__)
/* Both Mac OS X x86 and Win32 x86 return structs of a power of two in size
* less than or equal to eight bytes in length in registers. Linux never does so.
*/
# if __linux__
# define WIN32_X86_STRUCT_RETURN 0
# else
# define WIN32_X86_STRUCT_RETURN 1
# endif
# if WIN32
# define PLATFORM_API_USES_CALLEE_POPS_CONVENTION 1
# else
# define PLATFORM_API_USES_CALLEE_POPS_CONVENTION 0
# endif
#endif /* defined(_X86_) || defined(i386) || defined(__i386) || defined(__i386__) */
#if defined(__arm__)
# define WIN32_X86_STRUCT_RETURN 0
# define PLATFORM_API_USES_CALLEE_POPS_CONVENTION 0
#endif /* defined(__arm__) */
#if !!defined(ALLOCA_LIES_SO_USE_GETSP)
# if defined(__MINGW32__) && (__GNUC__ >= 3)
/*
* cygwin -mno-cygwin (MinGW) gcc 3.4.x''s alloca is a library routine that answers
* %esp + 4, so the outgoing stack is offset by one word if uncorrected.
* Grab the actual stack pointer to correct.
*/
# define ALLOCA_LIES_SO_USE_GETSP 1
# else
# define ALLOCA_LIES_SO_USE_GETSP 0
# endif
#endif /* !!defined(ALLOCA_LIES_SO_USE_GETSP) */
/* The dispatchOn:in:with:with: generates an unwanted call on error. Just squash it. */
#define error(foo) 0
+ #ifndef SQUEAK_BUILTIN_PLUGIN
-
/* but print assert failures. */
void
warning(char *s) { /* Print an error message but don''t exit. */
printf("\n%s\n", s);
}
+ #endif
+
+ /* sanitize */
+ #ifdef SQUEAK_BUILTIN_PLUGIN
+ # define EXTERN
+ #else
+ # define EXTERN extern
+ #endif
+ int ffiLogCallOfLength(void *, int); /* sqFFIPlugin.c */
+ int ffiLogFileNameOfLength(void *, int); /* sqFFIPlugin.c */
+ EXTERN void initSurfacePluginFunctionPointers(); /* sqManualSurface.c */
+ EXTERN int createManualSurface(int, int, int, int, int); /* sqManualSurface.c */
+ EXTERN int destroyManualSurface(int); /* sqManualSurface.c */
+ EXTERN int setManualSurfacePointer(int, void*); /* sqManualSurface.c */
'!
Item was removed:
- ----- Method: ThreadedIA32FFIPlugin class>>moduleName (in category 'translation') -----
- moduleName
- ^'IA32FFIPlugin'!
More information about the Vm-dev
mailing list