1. 22 9月, 2013 1 次提交
    • R
      fix arm atomic store and generate simpler/less-bloated/faster code · 35a6801c
      Rich Felker 提交于
      atomic store was lacking a barrier, which was fine for legacy arm with
      no real smp and kernel-emulated cas, but unsuitable for more modern
      systems. the kernel provides another "kuser" function, at 0xffff0fa0,
      which could be used for the barrier, but using that would drop support
      for kernels 2.6.12 through 2.6.14 unless an extra conditional were
      added to check for barrier availability. just using the barrier in the
      kernel cas is easier, and, based on my reading of the assembly code in
      the kernel, does not appear to be significantly slower.
      
      at the same time, other atomic operations are adapted to call the
      kernel cas function directly rather than using a_cas; due to small
      differences in their interface contracts, this makes the generated
      code much simpler.
      35a6801c
  2. 11 8月, 2013 1 次提交
  3. 08 7月, 2012 1 次提交
  4. 19 9月, 2011 1 次提交
    • R
      initial commit of the arm port · d960d4f2
      Rich Felker 提交于
      this port assumes eabi calling conventions, eabi linux syscall
      convention, and presence of the kernel helpers at 0xffff0f?0 needed
      for threads support. otherwise it makes very few assumptions, and the
      code should work even on armv4 without thumb support, as well as on
      systems with thumb interworking. the bits headers declare this a
      little endian system, but as far as i can tell the code should work
      equally well on big endian.
      
      some small details are probably broken; so far, testing has been
      limited to qemu/aboriginal linux.
      d960d4f2