From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by walapai.inria.fr (8.13.6/8.13.6) with ESMTP id pBIBvpdX026657 for ; Sun, 18 Dec 2011 12:57:52 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ai0BADHU7U5KfVM2kGdsb2JhbABDq1EIIgEBAQEJCQ0HFAQhgXIBAQEEEgIsAQE4DwsSIhI0AQUBDg4GJw6HWgaaIwqKM4QdAY1CAwSLIWOiej2Deg X-IronPort-AV: E=Sophos;i="4.71,371,1320620400"; d="scan'208";a="135907681" Received: from mail-ee0-f54.google.com ([74.125.83.54]) by mail1-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 18 Dec 2011 12:57:46 +0100 Received: by eekc50 with SMTP id c50so5896541eek.27 for ; Sun, 18 Dec 2011 03:57:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=content-type:mime-version:subject:from:in-reply-to:date :content-transfer-encoding:message-id:references:to:x-mailer; bh=09cjl2uJHQ5AwD6OvpZZzJf7crOgD6MBk2J3QgX+n4I=; b=hNJAdaGKrvoliDjYZdrnI3W7dH1o3oJRUM7YI+S0VJa4JceJLDwKgjFYdIx+Z06Sbw in3JsyXWl+MfUM9olfnMJDK9gw3IYPTDgWw9fvl/jZfWNanT4HuaE5svnMDoXAwVS9fT FRmvQlAT2I9ubMIuABNZb5yKZoEw1J43OgGV8= Received: by 10.213.34.10 with SMTP id j10mr727993ebd.149.1324209466238; Sun, 18 Dec 2011 03:57:46 -0800 (PST) Received: from coruscant.kosmos.all (ip-95-223-170-32.unitymediagroup.de. [95.223.170.32]) by mx.google.com with ESMTPS id q28sm28994244eea.6.2011.12.18.03.57.44 (version=SSLv3 cipher=OTHER); Sun, 18 Dec 2011 03:57:45 -0800 (PST) Content-Type: text/plain; charset=iso-8859-1 Mime-Version: 1.0 (Apple Message framework v1251.1) From: Benedikt Meurer In-Reply-To: Date: Sun, 18 Dec 2011 12:57:45 +0100 Message-Id: References: <55531934-37A5-4CC5-AB67-20CE4CCE8269@googlemail.com> <4EE37070.4010702@inria.fr> <4EE63E88.40805@glondu.net> To: caml users X-Mailer: Apple Mail (2.1251.1) Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by walapai.inria.fr id pBIBvpdX026657 Subject: [Caml-list] Re: New experimental ARM backend [was: OCaml maintenance status / community fork (again)] On Dec 13, 2011, at 21:39 , Benedikt Meurer wrote: > - Support for both softfp and VFPv3-D16 (if present). > - Properly supports interworking with Thumb/Thumb-2 code (for both OCaml and C code!) > - Supports dynamic linking and large memory models. > - Optional support for position-independent code via -fPIC, disabled by default and not required for natdynlink. > - Can emit both ARM and Thumb-2 code (currently Thumb-2 is used for ARMv7+ and ARM is used for everything else), with avg. code size savings of 27% for Thumb-2 (quite close the optimal 30% advertised by ARM Ltd.). I may also add support to emit small functions using Thumb-1 (for pre-ARMv7 / armel) in the future to reduce code size. > - Supports both AAPCS (armel) as well as extended VFP calling conventions (armhf). > - Properly supports backtraces. > - Recognizes several special ARM instructions (=> reduced code size and latency). > - Does not rely on GCC internals, but uses the standard ARM EABI runtime. I've updated the backend, and a new patch is available for testing at [1], you can also test it by cloning the ocaml-arm repository at [2], some documentation is available on the Wiki at [3]. The following new features are included: - Support for both VFPv3-D16 and VFPv3(-D32), using ocamlopt switch -ffpu (armhf only). - Support for architecture selection using -farch. - Support for profiling using gprof. - Code cleanups. - Confirmed to work with Debian/armel on ARM9 / Cortex-A8 and Debian/armhf on Cortex-A8. Testers and feedback welcome. greets, Benedikt [1] https://github.com/downloads/bmeurer/ocaml-arm/ocaml-arm-3.12.1+20111218.diff.bz2 [2] https://github.com/bmeurer/ocaml-arm [3] https://github.com/bmeurer/ocaml-arm/wiki