1. 28 7月, 2014 1 次提交
    • R
      clean up unused and inconsistent atomics in arch dirs · 90e51e45
      Rich Felker 提交于
      the a_cas_l, a_swap_l, a_swap_p, and a_store_l operations were
      probably used a long time ago when only i386 and x86_64 were
      supported. as other archs were added, support for them was
      inconsistent, and they are obviously not in use at present. having
      them around potentially confuses readers working on new ports, and the
      type-punning hacks and inconsistent use of types in their definitions
      is not a style I wish to perpetuate in the source tree, so removing
      them seems appropriate.
      90e51e45
  2. 20 7月, 2014 2 次提交
    • R
      fix missing barrier instructions in mips atomic asm · bcad4843
      Rich Felker 提交于
      previously I had wrongly assumed the ll/sc instructions also provided
      memory synchronization; apparently they do not. this commit adds sync
      instructions before and after each atomic operation and changes the
      atomic store to simply use sync before and after a plain store, rather
      than a useless compare-and-swap.
      bcad4843
    • R
      use memory constraints for mips atomic asm · a294f539
      Rich Felker 提交于
      despite lacking the semantic content that the asm accesses the
      pointed-to object rather than just using its address as a value, the
      mips asm was not actually broken. the asm blocks were declared
      volatile, meaning that the compiler must treat them as having unknown
      side effects.
      
      however changing the asm to use memory constraints is desirable not
      just from a semantic correctness and consistency standpoint, but also
      produces better code. the compiler is able to use base/offset
      addressing expressions for the atomic object's address rather than
      having to load the address into a single register. this improves
      access to global locks in static libc, and access to non-zero-offset
      atomic fields in synchronization primitives, etc.
      a294f539
  3. 11 8月, 2013 1 次提交
  4. 12 8月, 2012 1 次提交
  5. 13 7月, 2012 1 次提交
  6. 11 7月, 2012 1 次提交
    • R
      initial version of mips (o32) port, based on work by Richard Pennington (rdp) · 6315004f
      Rich Felker 提交于
      basically, this version of the code was obtained by starting with
      rdp's work from his ellcc source tree, adapting it to musl's build
      system and coding style, auditing the bits headers for discrepencies
      with kernel definitions or glibc/LSB ABI or large file issues, fixing
      up incompatibility with the old binutils from aboriginal linux, and
      adding some new special cases to deal with the oddities of sigaction
      and pipe syscall interfaces on mips.
      
      at present, minimal test programs work, but some interfaces are broken
      or missing. threaded programs probably will not link.
      6315004f