mirror of git://gcc.gnu.org/git/gcc.git
Makefile.in: Rebuilt.
* Makefile.in: Rebuilt. * Makefile.am (AM_CFLAGS): Compile with -fexceptions. * src/x86/sysv.S: Add exception handling metadata. also, add missing files. From-SVN: r28601
This commit is contained in:
parent
950fe84354
commit
248c0b6908
|
@ -0,0 +1,7 @@
|
||||||
|
1999-08-09 Anthony Green <green@cygnus.com>
|
||||||
|
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
* Makefile.am (AM_CFLAGS): Compile with -fexceptions.
|
||||||
|
|
||||||
|
* src/x86/sysv.S: Add exception handling metadata.
|
||||||
|
|
|
@ -24,8 +24,6 @@ MULTICLEAN = true
|
||||||
toolexecdir = $(exec_prefix)/$(target_alias)
|
toolexecdir = $(exec_prefix)/$(target_alias)
|
||||||
toolexeclibdir = $(toolexecdir)/lib$(MULTISUBDIR)
|
toolexeclibdir = $(toolexecdir)/lib$(MULTISUBDIR)
|
||||||
|
|
||||||
## We don't use `libz.la' because we don't want to conflict with a
|
|
||||||
## system library of that name.
|
|
||||||
toolexeclib_LTLIBRARIES = libffi.la
|
toolexeclib_LTLIBRARIES = libffi.la
|
||||||
|
|
||||||
noinst_PROGRAMS = ffitest
|
noinst_PROGRAMS = ffitest
|
||||||
|
@ -70,6 +68,8 @@ if ARM
|
||||||
libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ARM)
|
libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ARM)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
AM_CFLAGS = -fexceptions
|
||||||
|
|
||||||
libffi_la_LDFLAGS = -release $(VERSION)
|
libffi_la_LDFLAGS = -release $(VERSION)
|
||||||
|
|
||||||
INCLUDES = -I$(top_srcdir)/include -Iinclude
|
INCLUDES = -I$(top_srcdir)/include -Iinclude
|
||||||
|
|
|
@ -62,6 +62,7 @@ AMTAR = @AMTAR@
|
||||||
AMTARFLAGS = @AMTARFLAGS@
|
AMTARFLAGS = @AMTARFLAGS@
|
||||||
AS = @AS@
|
AS = @AS@
|
||||||
CC = @CC@
|
CC = @CC@
|
||||||
|
CXX = @CXX@
|
||||||
DLLTOOL = @DLLTOOL@
|
DLLTOOL = @DLLTOOL@
|
||||||
EXEEXT = @EXEEXT@
|
EXEEXT = @EXEEXT@
|
||||||
LD = @LD@
|
LD = @LD@
|
||||||
|
@ -130,6 +131,8 @@ libffi_la_common_SOURCES = src/debug.c src/prep_cif.c src/types.c src/raw_api.c
|
||||||
@POWERPC_TRUE@libffi_la_SOURCES = @POWERPC_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC)
|
@POWERPC_TRUE@libffi_la_SOURCES = @POWERPC_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC)
|
||||||
@ARM_TRUE@libffi_la_SOURCES = @ARM_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_ARM)
|
@ARM_TRUE@libffi_la_SOURCES = @ARM_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_ARM)
|
||||||
|
|
||||||
|
AM_CFLAGS = -fexceptions
|
||||||
|
|
||||||
libffi_la_LDFLAGS = -release $(VERSION)
|
libffi_la_LDFLAGS = -release $(VERSION)
|
||||||
|
|
||||||
INCLUDES = -I$(top_srcdir)/include -Iinclude
|
INCLUDES = -I$(top_srcdir)/include -Iinclude
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
## Process this with automake to create Makefile.in
|
||||||
|
|
||||||
|
AUTOMAKE_OPTIONS = foreign
|
||||||
|
|
||||||
|
EXTRA_DIST = ffi.h.in ffi_common.h ffi_mips.h
|
||||||
|
|
||||||
|
hackdir=$(includedir)
|
||||||
|
|
||||||
|
hack_DATA=fficonfig.h ffi.h ffi_mips.h
|
|
@ -0,0 +1,220 @@
|
||||||
|
# Makefile.in generated automatically by automake 1.4a from Makefile.am
|
||||||
|
|
||||||
|
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||||
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||||
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
SHELL = @SHELL@
|
||||||
|
|
||||||
|
srcdir = @srcdir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
|
VPATH = @srcdir@
|
||||||
|
prefix = @prefix@
|
||||||
|
exec_prefix = @exec_prefix@
|
||||||
|
|
||||||
|
bindir = @bindir@
|
||||||
|
sbindir = @sbindir@
|
||||||
|
libexecdir = @libexecdir@
|
||||||
|
datadir = @datadir@
|
||||||
|
sysconfdir = @sysconfdir@
|
||||||
|
sharedstatedir = @sharedstatedir@
|
||||||
|
localstatedir = @localstatedir@
|
||||||
|
libdir = @libdir@
|
||||||
|
infodir = @infodir@
|
||||||
|
mandir = @mandir@
|
||||||
|
includedir = @includedir@
|
||||||
|
oldincludedir = /usr/include
|
||||||
|
|
||||||
|
DESTDIR =
|
||||||
|
|
||||||
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
|
|
||||||
|
top_builddir = ..
|
||||||
|
|
||||||
|
ACLOCAL = @ACLOCAL@
|
||||||
|
AUTOCONF = @AUTOCONF@
|
||||||
|
AUTOMAKE = @AUTOMAKE@
|
||||||
|
AUTOHEADER = @AUTOHEADER@
|
||||||
|
|
||||||
|
INSTALL = @INSTALL@
|
||||||
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
|
INSTALL_STRIP_FLAG =
|
||||||
|
transform = @program_transform_name@
|
||||||
|
|
||||||
|
NORMAL_INSTALL = :
|
||||||
|
PRE_INSTALL = :
|
||||||
|
POST_INSTALL = :
|
||||||
|
NORMAL_UNINSTALL = :
|
||||||
|
PRE_UNINSTALL = :
|
||||||
|
POST_UNINSTALL = :
|
||||||
|
host_alias = @host_alias@
|
||||||
|
host_triplet = @host@
|
||||||
|
AMTAR = @AMTAR@
|
||||||
|
AMTARFLAGS = @AMTARFLAGS@
|
||||||
|
AS = @AS@
|
||||||
|
CC = @CC@
|
||||||
|
CXX = @CXX@
|
||||||
|
DLLTOOL = @DLLTOOL@
|
||||||
|
EXEEXT = @EXEEXT@
|
||||||
|
LD = @LD@
|
||||||
|
LIBTOOL = @LIBTOOL@
|
||||||
|
LN_S = @LN_S@
|
||||||
|
MAINT = @MAINT@
|
||||||
|
MAKEINFO = @MAKEINFO@
|
||||||
|
NM = @NM@
|
||||||
|
PACKAGE = @PACKAGE@
|
||||||
|
RANLIB = @RANLIB@
|
||||||
|
SHELL = @SHELL@
|
||||||
|
TARGET = @TARGET@
|
||||||
|
TARGETDIR = @TARGETDIR@
|
||||||
|
USE_SYMBOL_UNDERSCORE = @USE_SYMBOL_UNDERSCORE@
|
||||||
|
VERSION = @VERSION@
|
||||||
|
|
||||||
|
|
||||||
|
AUTOMAKE_OPTIONS = foreign
|
||||||
|
|
||||||
|
EXTRA_DIST = ffi.h.in ffi_common.h ffi_mips.h
|
||||||
|
|
||||||
|
hackdir = $(includedir)
|
||||||
|
|
||||||
|
hack_DATA = fficonfig.h ffi.h ffi_mips.h
|
||||||
|
subdir = include
|
||||||
|
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||||
|
CONFIG_HEADER = ../fficonfig.h
|
||||||
|
CONFIG_CLEAN_FILES = ffi.h
|
||||||
|
DIST_SOURCES =
|
||||||
|
DATA = $(hack_DATA)
|
||||||
|
|
||||||
|
DIST_COMMON = $(hack_DATA) Makefile.am Makefile.in ffi.h.in
|
||||||
|
|
||||||
|
|
||||||
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
|
GZIP_ENV = --best
|
||||||
|
all: all-redirect
|
||||||
|
.SUFFIXES:
|
||||||
|
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||||
|
cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile
|
||||||
|
|
||||||
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
|
||||||
|
cd $(top_builddir) \
|
||||||
|
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||||
|
|
||||||
|
ffi.h: $(top_builddir)/config.status ffi.h.in
|
||||||
|
cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||||
|
|
||||||
|
install-hackDATA: $(hack_DATA)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
$(mkinstalldirs) $(DESTDIR)$(hackdir)
|
||||||
|
@list='$(hack_DATA)'; for p in $$list; do \
|
||||||
|
if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
|
||||||
|
f="`echo $$p | sed -e 's|^.*/||'`"; \
|
||||||
|
echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(hackdir)/$$f"; \
|
||||||
|
$(INSTALL_DATA) $$d$$p $(DESTDIR)$(hackdir)/$$f; \
|
||||||
|
done
|
||||||
|
|
||||||
|
uninstall-hackDATA:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list='$(hack_DATA)'; for p in $$list; do \
|
||||||
|
f="`echo $$p | sed -e 's|^.*/||'`"; \
|
||||||
|
echo " rm -f $(DESTDIR)$(hackdir)/$$f"; \
|
||||||
|
rm -f $(DESTDIR)$(hackdir)/$$f; \
|
||||||
|
done
|
||||||
|
tags: TAGS
|
||||||
|
TAGS:
|
||||||
|
|
||||||
|
|
||||||
|
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
|
||||||
|
|
||||||
|
distdir: $(DISTFILES)
|
||||||
|
here=`cd $(top_builddir) && pwd`; \
|
||||||
|
top_distdir=`cd $(top_distdir) && pwd`; \
|
||||||
|
distdir=`cd $(distdir) && pwd`; \
|
||||||
|
cd $(top_srcdir) \
|
||||||
|
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign include/Makefile
|
||||||
|
@for file in $(DISTFILES); do \
|
||||||
|
d=$(srcdir); \
|
||||||
|
if test -d $$d/$$file; then \
|
||||||
|
cp -pr $$d/$$file $(distdir)/$$file; \
|
||||||
|
else \
|
||||||
|
test -f $(distdir)/$$file \
|
||||||
|
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|
||||||
|
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
info-am:
|
||||||
|
info: info-am
|
||||||
|
dvi-am:
|
||||||
|
dvi: dvi-am
|
||||||
|
check-am: all-am
|
||||||
|
check: check-am
|
||||||
|
installcheck-am:
|
||||||
|
installcheck: installcheck-am
|
||||||
|
install-exec-am:
|
||||||
|
install-exec: install-exec-am
|
||||||
|
|
||||||
|
install-data-am: install-hackDATA
|
||||||
|
install-data: install-data-am
|
||||||
|
|
||||||
|
install-am: all-am
|
||||||
|
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||||
|
install: install-am
|
||||||
|
uninstall-am: uninstall-hackDATA
|
||||||
|
uninstall: uninstall-am
|
||||||
|
all-am: Makefile $(DATA)
|
||||||
|
all-redirect: all-am
|
||||||
|
install-strip:
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
|
||||||
|
installdirs:
|
||||||
|
$(mkinstalldirs) $(DESTDIR)$(hackdir)
|
||||||
|
|
||||||
|
|
||||||
|
mostlyclean-generic:
|
||||||
|
|
||||||
|
clean-generic:
|
||||||
|
|
||||||
|
distclean-generic:
|
||||||
|
-rm -f Makefile $(CONFIG_CLEAN_FILES)
|
||||||
|
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
|
||||||
|
|
||||||
|
maintainer-clean-generic:
|
||||||
|
mostlyclean-am: mostlyclean-generic
|
||||||
|
|
||||||
|
mostlyclean: mostlyclean-am
|
||||||
|
|
||||||
|
clean-am: clean-generic mostlyclean-am
|
||||||
|
|
||||||
|
clean: clean-am
|
||||||
|
|
||||||
|
distclean-am: distclean-generic clean-am
|
||||||
|
-rm -f libtool
|
||||||
|
|
||||||
|
distclean: distclean-am
|
||||||
|
|
||||||
|
maintainer-clean-am: maintainer-clean-generic distclean-am
|
||||||
|
@echo "This command is intended for maintainers to use;"
|
||||||
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
|
|
||||||
|
maintainer-clean: maintainer-clean-am
|
||||||
|
|
||||||
|
.PHONY: uninstall-hackDATA install-hackDATA tags distdir info-am info \
|
||||||
|
dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
|
||||||
|
install-exec install-data-am install-data install-am install \
|
||||||
|
uninstall-am uninstall all-redirect all-am all install-strip \
|
||||||
|
installdirs mostlyclean-generic distclean-generic clean-generic \
|
||||||
|
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
|
||||||
|
|
||||||
|
|
||||||
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
.NOEXPORT:
|
|
@ -0,0 +1,421 @@
|
||||||
|
/* -----------------------------------------------------------------*-C-*-
|
||||||
|
libffi @VERSION@ - Copyright (c) 1996-1999 Cygnus Solutions
|
||||||
|
|
||||||
|
$Id: ffi.h.in,v 1.3 1999/08/08 13:05:12 green Exp $
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
``Software''), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included
|
||||||
|
in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
|
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||||
|
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
|
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
----------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
#ifndef LIBFFI_H
|
||||||
|
#define LIBFFI_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Specify which architecture libffi is configured for. */
|
||||||
|
#define @TARGET@
|
||||||
|
|
||||||
|
/* ---- System configuration information --------------------------------- */
|
||||||
|
|
||||||
|
#ifdef PACKAGE
|
||||||
|
#define OLD_PACKAGE PACKAGE
|
||||||
|
#undef PACKAGE
|
||||||
|
#endif
|
||||||
|
#ifdef VERSION
|
||||||
|
#define OLD_VERSION VERSION
|
||||||
|
#undef VERSION
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <fficonfig.h>
|
||||||
|
|
||||||
|
#undef PACKAGE
|
||||||
|
#undef VERSION
|
||||||
|
|
||||||
|
#ifdef OLD_PACKAGE
|
||||||
|
#define PACKAGE OLD_PACKAGE
|
||||||
|
#endif
|
||||||
|
#ifdef OLD_VERSION
|
||||||
|
#define VERSION OLD_VERSION
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(LIBFFI_ASM)
|
||||||
|
#include <stddef.h>
|
||||||
|
#if defined(FFI_DEBUG)
|
||||||
|
#include <stdio.h>
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* ---- Generic type definitions ----------------------------------------- */
|
||||||
|
|
||||||
|
#define FLOAT32 float
|
||||||
|
#define FLOAT64 double
|
||||||
|
#define FLOAT80 long double
|
||||||
|
|
||||||
|
#define UINT8 unsigned char
|
||||||
|
#define SINT8 signed char
|
||||||
|
|
||||||
|
#if SIZEOF_INT == 2
|
||||||
|
|
||||||
|
#define UINT16 unsigned int
|
||||||
|
#define SINT16 int
|
||||||
|
#define ffi_type_uint ffi_type_uint16
|
||||||
|
#define ffi_type_sint ffi_type_sint16
|
||||||
|
|
||||||
|
#else
|
||||||
|
#if SIZEOF_SHORT == 2
|
||||||
|
|
||||||
|
#define UINT16 unsigned short
|
||||||
|
#define SINT16 short
|
||||||
|
#define ffi_type_ushort ffi_type_uint16
|
||||||
|
#define ffi_type_sshort ffi_type_sint16
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if SIZEOF_INT == 4
|
||||||
|
|
||||||
|
#define UINT32 unsigned int
|
||||||
|
#define SINT32 int
|
||||||
|
#define ffi_type_uint ffi_type_uint32
|
||||||
|
#define ffi_type_sint ffi_type_sint32
|
||||||
|
|
||||||
|
#else
|
||||||
|
#if SIZEOF_SHORT == 4
|
||||||
|
|
||||||
|
#define UINT32 unsigned short
|
||||||
|
#define SINT32 short
|
||||||
|
#define ffi_type_ushort ffi_type_uint32
|
||||||
|
#define ffi_type_sshort ffi_type_sint32
|
||||||
|
|
||||||
|
#else
|
||||||
|
#if SIZEOF_LONG == 4
|
||||||
|
|
||||||
|
#define UINT32 unsigned long
|
||||||
|
#define SINT32 long
|
||||||
|
#define ffi_type_ulong ffi_type_uint32
|
||||||
|
#define ffi_type_slong ffi_type_sint32
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if SIZEOF_INT == 8
|
||||||
|
|
||||||
|
#define UINT64 unsigned int
|
||||||
|
#define SINT64 int
|
||||||
|
#define ffi_type_uint ffi_type_uint64
|
||||||
|
#define ffi_type_sint ffi_type_sint64
|
||||||
|
|
||||||
|
#else
|
||||||
|
#if SIZEOF_LONG == 8
|
||||||
|
|
||||||
|
#define UINT64 unsigned long
|
||||||
|
#define SINT64 long
|
||||||
|
#define ffi_type_ulong ffi_type_uint64
|
||||||
|
#define ffi_type_slong ffi_type_sint64
|
||||||
|
|
||||||
|
#else
|
||||||
|
#if SIZEOF_LONG_LONG == 8
|
||||||
|
|
||||||
|
#define UINT64 unsigned long long
|
||||||
|
#define SINT64 long long
|
||||||
|
#define ffi_type_ulong ffi_type_uint64
|
||||||
|
#define ffi_type_slong ffi_type_sint64
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* ---- System specific configurations ----------------------------------- */
|
||||||
|
|
||||||
|
#ifdef MIPS
|
||||||
|
#include <ffi_mips.h>
|
||||||
|
#else
|
||||||
|
#define SIZEOF_ARG SIZEOF_VOID_P
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef LIBFFI_ASM
|
||||||
|
|
||||||
|
/* ---- Generic type definitions ----------------------------------------- */
|
||||||
|
|
||||||
|
#define ALIGN(v, a) (((((unsigned) (v))-1) | ((a)-1))+1)
|
||||||
|
|
||||||
|
typedef enum ffi_abi {
|
||||||
|
|
||||||
|
/* Leave this for debugging purposes */
|
||||||
|
FFI_FIRST_ABI = 0,
|
||||||
|
|
||||||
|
/* ---- Sparc -------------------- */
|
||||||
|
#ifdef SPARC
|
||||||
|
FFI_V8,
|
||||||
|
FFI_DEFAULT_ABI = FFI_V8,
|
||||||
|
FFI_V8PLUS,
|
||||||
|
FFI_V9,
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* ---- Intel x86 ---------------- */
|
||||||
|
#ifdef X86
|
||||||
|
FFI_SYSV,
|
||||||
|
FFI_DEFAULT_ABI = FFI_SYSV,
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* ---- Mips --------------------- */
|
||||||
|
#ifdef MIPS
|
||||||
|
FFI_O32,
|
||||||
|
FFI_N32,
|
||||||
|
FFI_N64,
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* ---- Alpha -------------------- */
|
||||||
|
#ifdef ALPHA
|
||||||
|
FFI_OSF,
|
||||||
|
FFI_DEFAULT_ABI = FFI_OSF,
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* ---- Motorola m68k ------------ */
|
||||||
|
#ifdef M68K
|
||||||
|
FFI_SYSV,
|
||||||
|
FFI_DEFAULT_ABI = FFI_SYSV,
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* ---- PowerPC ------------------ */
|
||||||
|
#ifdef POWERPC
|
||||||
|
FFI_SYSV,
|
||||||
|
FFI_GCC_SYSV,
|
||||||
|
FFI_DEFAULT_ABI = FFI_GCC_SYSV,
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* ---- ARM --------------------- */
|
||||||
|
#ifdef ARM
|
||||||
|
FFI_SYSV,
|
||||||
|
FFI_DEFAULT_ABI = FFI_SYSV,
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Leave this for debugging purposes */
|
||||||
|
FFI_LAST_ABI
|
||||||
|
|
||||||
|
} ffi_abi;
|
||||||
|
|
||||||
|
typedef struct _ffi_type
|
||||||
|
{
|
||||||
|
size_t size;
|
||||||
|
unsigned short alignment;
|
||||||
|
unsigned short type;
|
||||||
|
/*@null@*/ struct _ffi_type **elements;
|
||||||
|
} ffi_type;
|
||||||
|
|
||||||
|
/* These are defined in ffi.c */
|
||||||
|
extern ffi_type ffi_type_void;
|
||||||
|
extern ffi_type ffi_type_uint8;
|
||||||
|
extern ffi_type ffi_type_sint8;
|
||||||
|
extern ffi_type ffi_type_uint16;
|
||||||
|
extern ffi_type ffi_type_sint16;
|
||||||
|
extern ffi_type ffi_type_uint32;
|
||||||
|
extern ffi_type ffi_type_sint32;
|
||||||
|
extern ffi_type ffi_type_uint64;
|
||||||
|
extern ffi_type ffi_type_sint64;
|
||||||
|
extern ffi_type ffi_type_float;
|
||||||
|
extern ffi_type ffi_type_double;
|
||||||
|
extern ffi_type ffi_type_longdouble;
|
||||||
|
extern ffi_type ffi_type_pointer;
|
||||||
|
|
||||||
|
/* Characters are 8 bit integral types */
|
||||||
|
#define ffi_type_schar ffi_type_sint8
|
||||||
|
#define ffi_type_uchar ffi_type_uint8
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
FFI_OK = 0,
|
||||||
|
FFI_BAD_TYPEDEF,
|
||||||
|
FFI_BAD_ABI
|
||||||
|
} ffi_status;
|
||||||
|
|
||||||
|
typedef unsigned FFI_TYPE;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
ffi_abi abi;
|
||||||
|
unsigned nargs;
|
||||||
|
/*@dependent@*/ ffi_type **arg_types;
|
||||||
|
/*@dependent@*/ ffi_type *rtype;
|
||||||
|
unsigned bytes;
|
||||||
|
unsigned flags;
|
||||||
|
|
||||||
|
#ifdef MIPS
|
||||||
|
#if _MIPS_SIM == _ABIN32
|
||||||
|
unsigned rstruct_flag;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
} ffi_cif;
|
||||||
|
|
||||||
|
/* ---- Definitions for the raw API -------------------------------------- */
|
||||||
|
|
||||||
|
#if !FFI_NO_RAW_API
|
||||||
|
|
||||||
|
#if SIZEOF_ARG == 4
|
||||||
|
|
||||||
|
#define UINT_ARG UINT32
|
||||||
|
#define SINT_ARG SINT32
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if SIZEOF_ARG == 8
|
||||||
|
|
||||||
|
#define UINT_ARG UINT64
|
||||||
|
#define SINT_ARG SINT64
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef union {
|
||||||
|
SINT_ARG sint;
|
||||||
|
UINT_ARG uint;
|
||||||
|
char data[SIZEOF_ARG];
|
||||||
|
void* ptr;
|
||||||
|
} ffi_raw;
|
||||||
|
|
||||||
|
void ffi_raw_call (/*@dependent@*/ ffi_cif *cif,
|
||||||
|
void (*fn)(),
|
||||||
|
/*@out@*/ void *rvalue,
|
||||||
|
/*@dependent@*/ ffi_raw *avalue);
|
||||||
|
|
||||||
|
void ffi_ptrarray_to_raw (ffi_cif *cif, void **args, ffi_raw *raw);
|
||||||
|
void ffi_raw_to_ptrarray (ffi_cif *cif, ffi_raw *raw, void **args);
|
||||||
|
size_t ffi_raw_size (ffi_cif *cif);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* !FFI_NO_RAW_API */
|
||||||
|
|
||||||
|
/* ---- Definitions for closures ----------------------------------------- */
|
||||||
|
|
||||||
|
#ifdef X86
|
||||||
|
|
||||||
|
#define FFI_CLOSURES 1 /* x86 supports closures */
|
||||||
|
#define FFI_TRAMPOLINE_SIZE 10
|
||||||
|
#define FFI_NATIVE_RAW_API 1 /* and has native raw api support */
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#define FFI_CLOSURES 0
|
||||||
|
#define FFI_NATIVE_RAW_API 0
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#if FFI_CLOSURES
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
char tramp[FFI_TRAMPOLINE_SIZE];
|
||||||
|
ffi_cif *cif;
|
||||||
|
void (*fun)(ffi_cif*,void*,void**,void*);
|
||||||
|
void *user_data;
|
||||||
|
} ffi_closure;
|
||||||
|
|
||||||
|
ffi_status
|
||||||
|
ffi_prep_closure (ffi_closure*,
|
||||||
|
ffi_cif *,
|
||||||
|
void (*fun)(ffi_cif*,void*,void**,void*),
|
||||||
|
void *user_data);
|
||||||
|
|
||||||
|
#if !FFI_NO_RAW_API
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
char tramp[FFI_TRAMPOLINE_SIZE];
|
||||||
|
|
||||||
|
ffi_cif *cif;
|
||||||
|
|
||||||
|
#if !FFI_NATIVE_RAW_API
|
||||||
|
|
||||||
|
/* if this is enabled, then a raw closure has the same layout
|
||||||
|
as a regular closure. We use this to install an intermediate
|
||||||
|
handler to do the transaltion, void** -> ffi_raw*. */
|
||||||
|
|
||||||
|
void (*translate_args)(ffi_cif*,void*,void**,void*);
|
||||||
|
void *this_closure;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void (*fun)(ffi_cif*,void*,ffi_raw*,void*);
|
||||||
|
void *user_data;
|
||||||
|
|
||||||
|
} ffi_raw_closure;
|
||||||
|
|
||||||
|
ffi_status
|
||||||
|
ffi_prep_raw_closure (ffi_raw_closure*,
|
||||||
|
ffi_cif *cif,
|
||||||
|
void (*fun)(ffi_cif*,void*,ffi_raw*,void*),
|
||||||
|
void *user_data);
|
||||||
|
|
||||||
|
#endif /* !FFI_NO_RAW_API */
|
||||||
|
#endif /* FFI_CLOSURES */
|
||||||
|
|
||||||
|
/* ---- Public interface definition -------------------------------------- */
|
||||||
|
|
||||||
|
ffi_status ffi_prep_cif(/*@out@*/ /*@partial@*/ ffi_cif *cif,
|
||||||
|
ffi_abi abi,
|
||||||
|
unsigned int nargs,
|
||||||
|
/*@dependent@*/ /*@out@*/ /*@partial@*/ ffi_type *rtype,
|
||||||
|
/*@dependent@*/ ffi_type **atypes);
|
||||||
|
|
||||||
|
void ffi_call(/*@dependent@*/ ffi_cif *cif,
|
||||||
|
void (*fn)(),
|
||||||
|
/*@out@*/ void *rvalue,
|
||||||
|
/*@dependent@*/ void **avalue);
|
||||||
|
|
||||||
|
/* Useful for eliminating compiler warnings */
|
||||||
|
#define FFI_FN(f) ((void (*)(...))f)
|
||||||
|
|
||||||
|
/* ---- Definitions shared with assembly code ---------------------------- */
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FFI_TYPE_VOID 0
|
||||||
|
#define FFI_TYPE_INT 1
|
||||||
|
#define FFI_TYPE_FLOAT 2
|
||||||
|
#define FFI_TYPE_DOUBLE 3
|
||||||
|
#if SIZEOF_LONG_DOUBLE == SIZEOF_DOUBLE
|
||||||
|
#define FFI_TYPE_LONGDOUBLE FFI_TYPE_DOUBLE
|
||||||
|
#else
|
||||||
|
#define FFI_TYPE_LONGDOUBLE 4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FFI_TYPE_UINT8 5 /* If this changes, update ffi_mips.h. */
|
||||||
|
#define FFI_TYPE_SINT8 6 /* If this changes, update ffi_mips.h. */
|
||||||
|
#define FFI_TYPE_UINT16 7
|
||||||
|
#define FFI_TYPE_SINT16 8
|
||||||
|
#define FFI_TYPE_UINT32 9
|
||||||
|
#define FFI_TYPE_SINT32 10
|
||||||
|
#define FFI_TYPE_UINT64 11
|
||||||
|
#define FFI_TYPE_SINT64 12
|
||||||
|
#define FFI_TYPE_STRUCT 13 /* If this changes, update ffi_mips.h. */
|
||||||
|
#define FFI_TYPE_POINTER 14
|
||||||
|
|
||||||
|
/* This should always refer to the last type code (for sanity checks) */
|
||||||
|
#define FFI_TYPE_LAST FFI_TYPE_POINTER
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -0,0 +1,91 @@
|
||||||
|
/* -----------------------------------------------------------------------
|
||||||
|
ffi_common.h - Copyright (c) 1996 Cygnus Solutions
|
||||||
|
|
||||||
|
$Id: ffi_common.h,v 1.1.1.1 1998/11/29 16:48:16 green Exp $
|
||||||
|
|
||||||
|
Common internal definitions and macros. Only necessary for building
|
||||||
|
libffi.
|
||||||
|
----------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
#ifndef FFI_COMMON_H
|
||||||
|
#define FFI_COMMON_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Do not move this. Some versions of AIX are very picky about where
|
||||||
|
this is positioned. */
|
||||||
|
#ifdef __GNUC__
|
||||||
|
# define alloca __builtin_alloca
|
||||||
|
#else
|
||||||
|
# if HAVE_ALLOCA_H
|
||||||
|
# include <alloca.h>
|
||||||
|
# else
|
||||||
|
# ifdef _AIX
|
||||||
|
#pragma alloca
|
||||||
|
# else
|
||||||
|
# ifndef alloca /* predefined by HP cc +Olibcalls */
|
||||||
|
char *alloca ();
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Check for the existence of memcpy. */
|
||||||
|
#if STDC_HEADERS
|
||||||
|
# include <string.h>
|
||||||
|
#else
|
||||||
|
# ifndef HAVE_MEMCPY
|
||||||
|
# define memcpy(d, s, n) bcopy ((s), (d), (n))
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef FALSE
|
||||||
|
#define FALSE 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TRUE
|
||||||
|
#define TRUE (!FALSE)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __cplusplus
|
||||||
|
/* bool is a keyword in C++ */
|
||||||
|
/*@-cppnames@*/
|
||||||
|
typedef int bool;
|
||||||
|
/*@=cppnames@*/
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FFI_DEBUG
|
||||||
|
|
||||||
|
/* Debugging functions */
|
||||||
|
/*@exits@*/ int ffi_assert(/*@temp@*/ char *file, int line);
|
||||||
|
void ffi_stop_here(void);
|
||||||
|
bool ffi_type_test(/*@temp@*/ /*@out@*/ ffi_type *a);
|
||||||
|
|
||||||
|
#define FFI_ASSERT(x) ((x) ? 0 : ffi_assert(__FILE__,__LINE__))
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#define FFI_ASSERT(x)
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Perform machine dependent cif processing */
|
||||||
|
ffi_status ffi_prep_cif_machdep(ffi_cif *cif);
|
||||||
|
|
||||||
|
/* Extended cif, used in callback from assembly routine */
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
/*@dependent@*/ ffi_cif *cif;
|
||||||
|
/*@dependent@*/ void *rvalue;
|
||||||
|
/*@dependent@*/ void **avalue;
|
||||||
|
} extended_cif;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,143 @@
|
||||||
|
/* -----------------------------------------------------------------------
|
||||||
|
ffi-mips.h - Copyright (c) 1996 Cygnus Support
|
||||||
|
|
||||||
|
MIPS FFI Definitions
|
||||||
|
|
||||||
|
$Id: ffi_mips.h,v 1.1.1.1 1998/11/29 16:48:16 green Exp $
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
``Software''), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included
|
||||||
|
in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
|
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL CYGNUS SUPPORT BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||||
|
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
|
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
----------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
#ifndef FFI_MIPS_H
|
||||||
|
|
||||||
|
#include <ffi.h>
|
||||||
|
|
||||||
|
#if !defined(_MIPS_SIM)
|
||||||
|
-- something is very wrong --
|
||||||
|
#else
|
||||||
|
# if _MIPS_SIM==_ABIN32 && defined(_ABIN32)
|
||||||
|
# define FFI_MIPS_N32
|
||||||
|
# else
|
||||||
|
# if defined(__GNUC__)
|
||||||
|
# define FFI_MIPS_O32
|
||||||
|
# else
|
||||||
|
# if _MIPS_SIM==_ABIO32
|
||||||
|
# define FFI_MIPS_O32
|
||||||
|
# else
|
||||||
|
-- this is an unsupported platform --
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define v0 $2
|
||||||
|
#define v1 $3
|
||||||
|
#define a0 $4
|
||||||
|
#define a1 $5
|
||||||
|
#define a2 $6
|
||||||
|
#define a3 $7
|
||||||
|
#define a4 $8
|
||||||
|
#define a5 $9
|
||||||
|
#define a6 $10
|
||||||
|
#define a7 $11
|
||||||
|
#define t0 $8
|
||||||
|
#define t1 $9
|
||||||
|
#define t2 $10
|
||||||
|
#define t3 $11
|
||||||
|
#define t4 $12
|
||||||
|
#define t5 $13
|
||||||
|
#define t6 $14
|
||||||
|
#define t7 $15
|
||||||
|
#define t8 $24
|
||||||
|
#define t9 $25
|
||||||
|
#define ra $31
|
||||||
|
|
||||||
|
#if defined(FFI_MIPS_O32)
|
||||||
|
|
||||||
|
#define FFI_DEFAULT_ABI FFI_O32
|
||||||
|
|
||||||
|
/* O32 stack frames have 32bit integer args */
|
||||||
|
#define SLOT_TYPE_UNSIGNED UINT32
|
||||||
|
#define SLOT_TYPE_SIGNED SINT32
|
||||||
|
#define SIZEOF_ARG 4
|
||||||
|
|
||||||
|
#define REG_L lw
|
||||||
|
#define REG_S sw
|
||||||
|
#define SUBU subu
|
||||||
|
#define ADDU addu
|
||||||
|
#define SRL srl
|
||||||
|
#define LI li
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#define FFI_DEFAULT_ABI FFI_N32
|
||||||
|
|
||||||
|
/* N32 and N64 frames have 64bit integer args */
|
||||||
|
#define SLOT_TYPE_UNSIGNED UINT64
|
||||||
|
#define SLOT_TYPE_SIGNED SINT64
|
||||||
|
#define SIZEOF_ARG 8
|
||||||
|
|
||||||
|
#define REG_L ld
|
||||||
|
#define REG_S sd
|
||||||
|
#define SUBU dsubu
|
||||||
|
#define ADDU daddu
|
||||||
|
#define SRL dsrl
|
||||||
|
#define LI dli
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FFI_FLAG_BITS 2
|
||||||
|
|
||||||
|
/* SGI's strange assembler requires that we multiply by 4 rather
|
||||||
|
than shift left by FFI_FLAG_BITS */
|
||||||
|
|
||||||
|
#define FFI_ARGS_D FFI_TYPE_DOUBLE
|
||||||
|
#define FFI_ARGS_F FFI_TYPE_FLOAT
|
||||||
|
#define FFI_ARGS_DD FFI_TYPE_DOUBLE * 4 + FFI_TYPE_DOUBLE
|
||||||
|
#define FFI_ARGS_FF FFI_TYPE_FLOAT * 4 + FFI_TYPE_FLOAT
|
||||||
|
#define FFI_ARGS_FD FFI_TYPE_DOUBLE * 4 + FFI_TYPE_FLOAT
|
||||||
|
#define FFI_ARGS_DF FFI_TYPE_FLOAT * 4 + FFI_TYPE_DOUBLE
|
||||||
|
|
||||||
|
/* Needed for N32 structure returns */
|
||||||
|
#define FFI_TYPE_SMALLSTRUCT FFI_TYPE_UINT8
|
||||||
|
#define FFI_TYPE_SMALLSTRUCT2 FFI_TYPE_SINT8
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
|
||||||
|
/* The SGI assembler can't handle this.. */
|
||||||
|
|
||||||
|
#define FFI_TYPE_STRUCT_DD (( FFI_ARGS_DD ) << 4) + FFI_TYPE_STRUCT
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
/* ...so we calculate these by hand! */
|
||||||
|
|
||||||
|
#define FFI_TYPE_STRUCT_D 61
|
||||||
|
#define FFI_TYPE_STRUCT_F 45
|
||||||
|
#define FFI_TYPE_STRUCT_DD 253
|
||||||
|
#define FFI_TYPE_STRUCT_FF 173
|
||||||
|
#define FFI_TYPE_STRUCT_FD 237
|
||||||
|
#define FFI_TYPE_STRUCT_DF 189
|
||||||
|
#define FFI_TYPE_STRUCT_SMALL 93
|
||||||
|
#define FFI_TYPE_STRUCT_SMALL2 109
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
|
@ -38,9 +38,11 @@
|
||||||
.type ffi_call_SYSV,@function
|
.type ffi_call_SYSV,@function
|
||||||
|
|
||||||
ffi_call_SYSV:
|
ffi_call_SYSV:
|
||||||
|
.LFB1:
|
||||||
pushl %ebp
|
pushl %ebp
|
||||||
|
.LCFI0:
|
||||||
movl %esp,%ebp
|
movl %esp,%ebp
|
||||||
|
.LCFI1:
|
||||||
# Make room for all of the new args.
|
# Make room for all of the new args.
|
||||||
movl 16(%ebp),%ecx
|
movl 16(%ebp),%ecx
|
||||||
subl %ecx,%esp
|
subl %ecx,%esp
|
||||||
|
@ -124,6 +126,43 @@ epilogue:
|
||||||
movl %ebp,%esp
|
movl %ebp,%esp
|
||||||
popl %ebp
|
popl %ebp
|
||||||
ret
|
ret
|
||||||
|
.LFE1:
|
||||||
.ffi_call_SYSV_end:
|
.ffi_call_SYSV_end:
|
||||||
.size ffi_call_SYSV,.ffi_call_SYSV_end-ffi_call_SYSV
|
.size ffi_call_SYSV,.ffi_call_SYSV_end-ffi_call_SYSV
|
||||||
|
|
||||||
|
.section .eh_frame,"aw",@progbits
|
||||||
|
__FRAME_BEGIN__:
|
||||||
|
.4byte .LLCIE1
|
||||||
|
.LSCIE1:
|
||||||
|
.4byte 0x0
|
||||||
|
.byte 0x1
|
||||||
|
.byte 0x0
|
||||||
|
.byte 0x1
|
||||||
|
.byte 0x7c
|
||||||
|
.byte 0x8
|
||||||
|
.byte 0xc
|
||||||
|
.byte 0x4
|
||||||
|
.byte 0x4
|
||||||
|
.byte 0x88
|
||||||
|
.byte 0x1
|
||||||
|
.align 4
|
||||||
|
.LECIE1:
|
||||||
|
.set .LLCIE1,.LECIE1-.LSCIE1
|
||||||
|
.4byte .LLFDE1
|
||||||
|
.LSFDE1:
|
||||||
|
.4byte .LSFDE1-__FRAME_BEGIN__
|
||||||
|
.4byte .LFB1
|
||||||
|
.4byte .LFE1-.LFB1
|
||||||
|
.byte 0x4
|
||||||
|
.4byte .LCFI0-.LFB1
|
||||||
|
.byte 0xe
|
||||||
|
.byte 0x8
|
||||||
|
.byte 0x85
|
||||||
|
.byte 0x2
|
||||||
|
.byte 0x4
|
||||||
|
.4byte .LCFI1-.LCFI0
|
||||||
|
.byte 0xd
|
||||||
|
.byte 0x5
|
||||||
|
.align 4
|
||||||
|
.LEFDE1:
|
||||||
|
.set .LLFDE1,.LEFDE1-.LSFDE1
|
||||||
|
|
Loading…
Reference in New Issue