On Tue, Dec 13, 2011 at 09:39:03PM +0100, Benedikt Meurer wrote: > You can grab my current patch for the new OCaml ARM backend at: > > http://ps.informatik.uni-siegen.de/~meurer/tmp/ocaml-arm-20111213.diff > > Compared to the old backend, this one does the following: > > - 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.
Dear Benedikt, This looks like an impressive amount of work. I'd like to suggest that a good approach to getting some/all of this merged might be to divide the patch up into smaller units each addressing a particular deficiency or implementing a particular feature. In that way it should be more straightforward to understand the effects on the whole system of each particular patch and maintain stability and compatibility. I understand that this might cause some work and that some of the patches might be intertwined. (Another approach might be to introduce this backend as a second ARM backend with the understanding that it may be experimental to a certain extent---but I think that's less satisfactory, and less likely to find favour with everyone.) Which items from the above list would you most like to see in the core distribution? I would have thought the basic VFP support was fairly high up the list. Mark -- Caml-list mailing list. Subscription management and archives: https://sympa-roc.inria.fr/wws/info/caml-list Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
