apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ian Holsman <i...@apache.org>
Subject Re: cvs commit: apr/test testatomic.c
Date Wed, 20 Feb 2002 16:29:31 GMT
jean-frederic clere wrote:
> It works only with the native "as" but not with "gas".

is this a problem on solaris?
doesn't every box come with 'as' out of the box?

I don't have the gnu-assembler installed on my solaris machines
if you think it gas on solaris support is needed can you supply me a 
patch or tell me what is going wrong with it?

TIA
Ian

> 
> ianh@apache.org wrote:
> 
>>ianh        02/02/19 15:45:06
>>
>>  Modified:    .        configure.in
>>               atomic/solaris_sparc apr_atomic_sparc.s
>>               include  apr_atomic.h
>>               test     testatomic.c
>>  Log:
>>  enable sun-sparc specific code
>>
>>  Revision  Changes    Path
>>  1.409     +12 -0     apr/configure.in
>>
>>  Index: configure.in
>>  ===================================================================
>>  RCS file: /home/cvs/apr/configure.in,v
>>  retrieving revision 1.408
>>  retrieving revision 1.409
>>  diff -u -r1.408 -r1.409
>>  --- configure.in      15 Feb 2002 22:36:40 -0000      1.408
>>  +++ configure.in      19 Feb 2002 23:45:06 -0000      1.409
>>  @@ -322,6 +322,18 @@
>>          enable_threads="no"
>>          eolstr="\\n"
>>          ;;
>>  +   *sun*)
>>  +       case $host_cpu in
>>  +        *sparc*)
>>  +           OSDIR="solaris_sparc"
>>  +           eolstr="\\n"
>>  +            ;;
>>  +        *)
>>  +            OSDIR="unix"
>>  +            eolstr="\\n"
>>  +            ;;
>>  +       esac
>>  +       ;;
>>      *)
>>          OSDIR="unix"
>>          eolstr="\\n"
>>
>>
>>
>>  1.3       +30 -7     apr/atomic/solaris_sparc/apr_atomic_sparc.s
>>
>>  Index: apr_atomic_sparc.s
>>  ===================================================================
>>  RCS file: /home/cvs/apr/atomic/solaris_sparc/apr_atomic_sparc.s,v
>>  retrieving revision 1.2
>>  retrieving revision 1.3
>>  diff -u -r1.2 -r1.3
>>  --- apr_atomic_sparc.s        17 Feb 2002 20:17:53 -0000      1.2
>>  +++ apr_atomic_sparc.s        19 Feb 2002 23:45:06 -0000      1.3
>>  @@ -71,19 +71,20 @@
>>   !
>>           ENTRY(apr_atomic_add_sparc)
>>
>>  -        ld           [%o0], %o2
>>  +        ld           [%o0], %o2                   ! set o2 to current value
>>   _apr_atomic_add_sparc_loop:
>>  -        add  %o2, %o1, %o3
>>  -        cas  [%o0], %o2, %o3
>>  -        cmp  %o2, %o3
>>  -        bne,a        _apr_atomic_add_sparc_loop
>>  -        ld           [%o0], %o2
>>  +        add  %o2, %o1, %o3                ! o3 = o2 + o1
>>  +        cas  [%o0], %o2, %o3              ! if cur-val==o2 then cur-val=03
>>  +        cmp  %o2, %o3                     ! see if the CAS worked
>>  +        bne,a        _apr_atomic_add_sparc_loop   ! if not try again
>>  +        ld           [%o0], %o2                   ! return the previous value
>>           retl
>>           mov  %o3, %o0
>>
>>           SET_SIZE(apr_atomic_add_sparc)
>>   !
>>   !
>>  +!
>>           ENTRY(apr_atomic_sub_sparc)
>>
>>           ld           [%o0], %o2
>>  @@ -96,5 +97,27 @@
>>           retl
>>           mov  %o3, %o0
>>
>>  -       SET_SIZE(apr_atomic_sub_sparc)
>>  +        SET_SIZE(apr_atomic_sub_sparc)
>>  +!
>>  +!
>>  +!
>>  +!     %o0  [input]   - the address of the value to compare
>>  +!     %o1  [input]   - the new value
>>  +!     %o2  [input]   - value to compare against
>>  +!     %o0  [output]  - the return value
>>  +!
>>  +        ENTRY(apr_atomic_cas_sparc)
>>  +        ENTRY(apr_atomic_casptr_sparc)
>>  +
>>  +        cas  [%o0], %o2, %o1
>>  +        cmp     %o1, %o2        ! if o1 == o2 values weren't swapped
>>  +        bne,a        _apr_atomic_cas_ne
>>  +        mov      %o2, %o0
>>  +        retl
>>  +        mov      %o2, %o0
>>  +_apr_atomic_cas_ne:
>>  +        retl
>>  +        mov      %o1, %o0
>>  +
>>  +        SET_SIZE(apr_atomic_cas_sparc)
>>
>>
>>
>>
>>  1.8       +1 -1      apr/include/apr_atomic.h
>>
>>  Index: apr_atomic.h
>>  ===================================================================
>>  RCS file: /home/cvs/apr/include/apr_atomic.h,v
>>  retrieving revision 1.7
>>  retrieving revision 1.8
>>  diff -u -r1.7 -r1.8
>>  --- apr_atomic.h      19 Feb 2002 23:15:40 -0000      1.7
>>  +++ apr_atomic.h      19 Feb 2002 23:45:06 -0000      1.8
>>  @@ -173,7 +173,7 @@
>>
>>   #define APR_ATOMIC_NEED_CAS_DEFAULT 1
>>
>>  -#elif defined(__sparc__not_yet)
>>  +#elif defined(__sparc__)
>>   #define apr_atomic_t apr_uint32_t
>>   #define apr_atomic_read(p)  *p
>>
>>
>>
>>
>>  1.5       +0 -1      apr/test/testatomic.c
>>
>>  Index: testatomic.c
>>  ===================================================================
>>  RCS file: /home/cvs/apr/test/testatomic.c,v
>>  retrieving revision 1.4
>>  retrieving revision 1.5
>>  diff -u -r1.4 -r1.5
>>  --- testatomic.c      19 Feb 2002 23:15:39 -0000      1.4
>>  +++ testatomic.c      19 Feb 2002 23:45:06 -0000      1.5
>>  @@ -83,7 +83,6 @@
>>           return APR_EGENERAL;
>>       }
>>       printf("OK\n");
>>  -    printf("debug\n y=%d\n",y);
>>       printf("%-60s", "testing CAS - match non-null");
>>       oldval = apr_atomic_cas(&y,23,12);
>>       if (oldval != 12) {
>>
>>
>>
>>
> 




Mime
View raw message