Changeset 888207c9 in mainline for uspace/lib/c


Ignore:
Timestamp:
2011-09-07T22:19:24Z (15 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
2aeec8ef
Parents:
038b289 (diff), 5081276 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge from lp:~helenos-posix/helenos/devel.

  • Petr Koupy's port of binutils.
  • Jiri Zarevucky's port of pcc.
  • Petr and Jiri's libposix library.
  • Changes needed to make it all work together.
Location:
uspace/lib/c/arch
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/arch/abs32le/include/types.h

    r038b289 r888207c9  
    5252
    5353typedef uint32_t uintptr_t;
     54typedef int32_t intptr_t;
    5455typedef uint32_t atomic_count_t;
    5556typedef int32_t atomic_signed_t;
  • uspace/lib/c/arch/amd64/include/atomic.h

    r038b289 r888207c9  
    4444static inline void atomic_inc(atomic_t *val)
    4545{
     46#ifdef __PCC__
     47        asm volatile (
     48                "lock incq %0\n"
     49                : "+m" (val->count)
     50        );
     51#else
    4652        asm volatile (
    4753                "lock incq %[count]\n"
    4854                : [count] "+m" (val->count)
    4955        );
     56#endif
    5057}
    5158
    5259static inline void atomic_dec(atomic_t *val)
    5360{
     61#ifdef __PCC__
     62        asm volatile (
     63                "lock decq %0\n"
     64                : "+m" (val->count)
     65        );
     66#else
    5467        asm volatile (
    5568                "lock decq %[count]\n"
    5669                : [count] "+m" (val->count)
    5770        );
     71#endif
    5872}
    5973
     
    6276        atomic_count_t r = 1;
    6377       
     78#ifdef __PCC__
     79        asm volatile (
     80                "lock xaddq %1, %0\n"
     81                : "+m" (val->count),
     82                  "+r" (r)
     83        );
     84#else
    6485        asm volatile (
    6586                "lock xaddq %[r], %[count]\n"
     
    6788                  [r] "+r" (r)
    6889        );
     90#endif
    6991       
    7092        return r;
     
    7597        atomic_count_t r = -1;
    7698       
     99#ifdef __PCC__
     100        asm volatile (
     101                "lock xaddq %1, %0\n"
     102                : "+m" (val->count),
     103                  "+r" (r)
     104        );
     105#else
    77106        asm volatile (
    78107                "lock xaddq %[r], %[count]\n"
     
    80109                  [r] "+r" (r)
    81110        );
     111#endif
    82112       
    83113        return r;
  • uspace/lib/c/arch/amd64/include/types.h

    r038b289 r888207c9  
    5252
    5353typedef uint64_t uintptr_t;
     54typedef int64_t intptr_t;
    5455typedef uint64_t atomic_count_t;
    5556typedef int64_t atomic_signed_t;
  • uspace/lib/c/arch/arm32/include/types.h

    r038b289 r888207c9  
    5353
    5454typedef uint32_t uintptr_t;
     55typedef int32_t intptr_t;
    5556typedef uint32_t atomic_count_t;
    5657typedef int32_t atomic_signed_t;
  • uspace/lib/c/arch/ia32/include/atomic.h

    r038b289 r888207c9  
    4242static inline void atomic_inc(atomic_t *val)
    4343{
     44#ifdef __PCC__
     45        asm volatile (
     46                "lock incl %0\n"
     47                : "+m" (val->count)
     48        );
     49#else
    4450        asm volatile (
    4551                "lock incl %[count]\n"
    4652                : [count] "+m" (val->count)
    4753        );
     54#endif
    4855}
    4956
    5057static inline void atomic_dec(atomic_t *val)
    5158{
     59#ifdef __PCC__
     60        asm volatile (
     61                "lock decl %0\n"
     62                : "+m" (val->count)
     63        );
     64#else
    5265        asm volatile (
    5366                "lock decl %[count]\n"
    5467                : [count] "+m" (val->count)
    5568        );
     69#endif
    5670}
    5771
     
    6074        atomic_count_t r = 1;
    6175       
     76#ifdef __PCC__
     77        asm volatile (
     78                "lock xaddl %1, %0\n"
     79                : "+m" (val->count),
     80                  "+r" (r)
     81        );
     82#else
    6283        asm volatile (
    6384                "lock xaddl %[r], %[count]\n"
     
    6586                  [r] "+r" (r)
    6687        );
     88#endif
    6789       
    6890        return r;
     
    7395        atomic_count_t r = -1;
    7496       
     97#ifdef __PCC__
     98        asm volatile (
     99                "lock xaddl %1, %0\n"
     100                : "+m" (val->count),
     101                  "+r" (r)
     102        );
     103#else
    75104        asm volatile (
    76105                "lock xaddl %[r], %[count]\n"
     
    78107                  [r] "+r" (r)
    79108        );
     109#endif
    80110       
    81111        return r;
  • uspace/lib/c/arch/ia32/include/types.h

    r038b289 r888207c9  
    5252
    5353typedef uint32_t uintptr_t;
     54typedef int32_t intptr_t;
    5455typedef uint32_t atomic_count_t;
    5556typedef int32_t atomic_signed_t;
  • uspace/lib/c/arch/ia64/include/types.h

    r038b289 r888207c9  
    6262
    6363typedef uint64_t uintptr_t;
     64typedef int64_t intptr_t;
    6465typedef uint64_t atomic_count_t;
    6566typedef int64_t atomic_signed_t;
  • uspace/lib/c/arch/mips32/include/types.h

    r038b289 r888207c9  
    5353
    5454typedef uint32_t uintptr_t;
     55typedef int32_t intptr_t;
    5556typedef uint32_t atomic_count_t;
    5657typedef int32_t atomic_signed_t;
  • uspace/lib/c/arch/mips64/include/types.h

    r038b289 r888207c9  
    5353
    5454typedef uint64_t uintptr_t;
     55typedef int64_t intptr_t;
    5556typedef uint64_t atomic_count_t;
    5657typedef int64_t atomic_signed_t;
  • uspace/lib/c/arch/ppc32/include/types.h

    r038b289 r888207c9  
    5252
    5353typedef uint32_t uintptr_t;
     54typedef int32_t intptr_t;
    5455typedef uint32_t atomic_count_t;
    5556typedef int32_t atomic_signed_t;
  • uspace/lib/c/arch/sparc64/include/types.h

    r038b289 r888207c9  
    5252
    5353typedef uint64_t uintptr_t;
     54typedef int64_t intptr_t;
    5455typedef uint64_t atomic_count_t;
    5556typedef int64_t atomic_signed_t;
Note: See TracChangeset for help on using the changeset viewer.