# APPLE LOCAL AltiVec # On Darwin, we need FP, vector, and world save/restore routines. # Library code must include trampoline support LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/darwin-tramp.asm \ $(srcdir)/config/rs6000/darwin-fpsave.asm \ $(srcdir)/config/rs6000/darwin-vecsave.asm \ $(srcdir)/config/rs6000/darwin-worldsave.asm # Enable AltiVec instructions when assembling the aforementioned .asm files. TARGET_LIBGCC2_CFLAGS = -force_cpusubtype_ALL # /* APPLE LOCAL begin libcc_kext */ # 'libcc_kext.a' is runtime support routines for the Darwin kernel and dynamically-loaded drivers. # No exit/abort/malloc support available, and everything is compiled with '-static -fno-exceptions'. # Since no exception handling is available, the LIB2_DIVMOD_FUNCS are treated like non-throwing functions. # Floating support and AltiVec usage are strongly discouraged, but supported. # 'new' and 'delete' are supported in their non-throwing variants. # Due to an unfortunate history, throwing-style 'new' and 'delete' are available, # but they do not throw; new will fail by invoking the 'new_handler' if available, or return zero if not. # Many standard libgcc routines are not supported in the kernel, # e.g. 'trampoline', 'clear_cache', 'exit', 'eprintf'. # These are duplicated betwixt rs6000/t-darwin and i386/t-darwin # because they are not necessarily identical :-( . LIBKFUNCS_DARWIN = _muldi3 _negdi2 _lshrdi3 _ashldi3 _ashrdi3 _ffsdi2 _clz \ _cmpdi2 _ucmpdi2 _floatdidf _floatdisf _fixunsdfsi _fixunssfsi \ _fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi \ _fixxfdi _fixunsxfdi _floatdixf _fixunsxfsi _fixtfdi _fixunstfdi \ _floatditf _absvsi2 _absvdi2 _addvsi3 _addvdi3 _subvsi3 _subvdi3 \ _mulvsi3 _mulvdi3 _negvsi2 _negvdi2 \ _divdi3 _moddi3 _udivdi3 _umoddi3 _udiv_w_sdiv _udivmoddi4 \ __gcc_bcmp LIBK_SUPCXX_DARWIN = new_op.cc new_opnt.cc new_opv.cc new_opvnt.cc \ del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc new_handler.cc pure.cc # /* APPLE LOCAL end libcc_kext */ # APPLE LOCAL begin cpp-precomp # We don't want cpp-precomp to run while bootstrapping. TCFLAGS = -no-cpp-precomp BOOT_CFLAGS = -g -O2 -no-cpp-precomp # APPLE LOCAL end cpp-precomp # Build the libraries for both hard and soft floating point # APPLE LOCAL no soft-float multilibs # APPLE LOCAL AltiVec # The following adds adds a dependency of vec.h to rs6000.o and ensures # that vec.h is built before building rs6000.o # This is currently disabled since it gnerates a source file in the # source directory. #rs6000.o : $(srcdir)/config/rs6000/vec.h #$(srcdir)/config/rs6000/vec.h: $(srcdir)/config/rs6000/vec.ops \ # $(srcdir)/config/rs6000/builtin.ops # (cd $(srcdir)/config/rs6000; ops-to-gp -gcc vec.ops builtin.ops)