tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

os_Darwin_ppc.s (1894B)


      1 # -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
      2 #
      3 # This Source Code Form is subject to the terms of the Mozilla Public
      4 # License, v. 2.0. If a copy of the MPL was not distributed with this
      5 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
      6 
      7 #
      8 # Based on the programming examples in The PowerPC Architecture:
      9 # A Specification for A New Family of RISC Processors, 2nd Ed.,
     10 # Book I, Section E.1, "Synchronization," pp. 249-256, May 1994.
     11 #
     12 
     13 .text
     14 
     15 #
     16 # PRInt32 __PR_DarwinPPC_AtomicIncrement(PRInt32 *val);
     17 #
     18        .align  2
     19        .globl  __PR_DarwinPPC_AtomicIncrement
     20        .private_extern __PR_DarwinPPC_AtomicIncrement
     21 __PR_DarwinPPC_AtomicIncrement:
     22        lwarx   r4,0,r3
     23        addi    r0,r4,1
     24        stwcx.  r0,0,r3
     25        bne-    __PR_DarwinPPC_AtomicIncrement
     26        mr      r3,r0
     27        blr
     28 
     29 #
     30 # PRInt32 __PR_DarwinPPC_AtomicDecrement(PRInt32 *val);
     31 #
     32        .align  2
     33        .globl  __PR_DarwinPPC_AtomicDecrement
     34        .private_extern __PR_DarwinPPC_AtomicDecrement
     35 __PR_DarwinPPC_AtomicDecrement:
     36        lwarx   r4,0,r3
     37        addi    r0,r4,-1
     38        stwcx.  r0,0,r3
     39        bne-    __PR_DarwinPPC_AtomicDecrement
     40        mr      r3,r0
     41        blr
     42 
     43 #
     44 # PRInt32 __PR_DarwinPPC_AtomicSet(PRInt32 *val, PRInt32 newval);
     45 #
     46        .align  2
     47        .globl  __PR_DarwinPPC_AtomicSet
     48        .private_extern __PR_DarwinPPC_AtomicSet
     49 __PR_DarwinPPC_AtomicSet:
     50        lwarx   r5,0,r3
     51        stwcx.  r4,0,r3
     52        bne-    __PR_DarwinPPC_AtomicSet
     53        mr      r3,r5
     54        blr
     55 
     56 #
     57 # PRInt32 __PR_DarwinPPC_AtomicAdd(PRInt32 *ptr, PRInt32 val);
     58 #
     59        .align  2
     60        .globl  __PR_DarwinPPC_AtomicAdd
     61        .private_extern __PR_DarwinPPC_AtomicAdd
     62 __PR_DarwinPPC_AtomicAdd:
     63        lwarx   r5,0,r3
     64        add     r0,r4,r5
     65        stwcx.  r0,0,r3
     66        bne-    __PR_DarwinPPC_AtomicAdd
     67        mr      r3,r0
     68        blr