[D-runtime] [dlang/druntime] 7fd7b8: ARM: Explicitly specify required FPU mode in Fiber...

GitHub via D-runtime d-runtime at puremagic.com
Fri Oct 14 11:05:17 PDT 2016


  Branch: refs/heads/master
  Home:   https://github.com/dlang/druntime
  Commit: 7fd7b83281b1c059ff51e7403dc4122ddec17692
      https://github.com/dlang/druntime/commit/7fd7b83281b1c059ff51e7403dc4122ddec17692
  Author: Johannes Pfau <johannespfau at gmail.com>
  Date:   2016-10-05 (Wed, 05 Oct 2016)

  Changed paths:
    M src/core/threadasm.S

  Log Message:
  -----------
  ARM: Explicitly specify required FPU mode in Fiber ASM

The threadASM code requires a vfp or newer unit for the vpush
and vpop instructions. There's exaclty one older floating point ARM
unit: The fpa unit. This unit is not supported in GCC but it is
supported in binutils.

This causes the following problem: When GCC is not explicitly configured
with --with-fpu it will not pass fpu flags to binutils as. So binutils
will use the binutils standard mode which is fpa! This then causes
compilation errors.

So in the end even though the gcc preprocessor claims vfp support via
__ARM_PCS_VFP we still have to request vfp explicitly in the ASM.

Note that this is not a restriction: As GCC doesn't support FPA
we can't compile phobos in FPA mode anyway. Newer floating point
units are fully compatible with vfp, so we can specify .fpu vfp
and still compile phobos with support for newer FPUs.


  Commit: ee1b9b26d784b8ae18db9122157f9cd7f2442ce6
      https://github.com/dlang/druntime/commit/ee1b9b26d784b8ae18db9122157f9cd7f2442ce6
  Author: David Nadlinger <code at klickverbot.at>
  Date:   2016-10-14 (Fri, 14 Oct 2016)

  Changed paths:
    M src/core/threadasm.S

  Log Message:
  -----------
  Merge pull request #1667 from jpf91/fiberARM

ARM: Explicitly specify required FPU mode in Fiber ASM


Compare: https://github.com/dlang/druntime/compare/66b4c97d1a82...ee1b9b26d784


More information about the D-runtime mailing list