1
# -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
3
# The contents of this file are subject to the Mozilla Public
4
# License Version 1.1 (the "License"); you may not use this file
5
# except in compliance with the License. You may obtain a copy of
6
# the License at http://www.mozilla.org/MPL/
8
# Software distributed under the License is distributed on an "AS
9
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
10
# implied. See the License for the specific language governing
11
# rights and limitations under the License.
13
# The Original Code is the Netscape Portable Runtime (NSPR).
15
# The Initial Developer of the Original Code is Netscape
16
# Communications Corporation. Portions created by Netscape are
17
# Copyright (C) 2003 Netscape Communications Corporation. All
22
# Alternatively, the contents of this file may be used under the
23
# terms of the GNU General Public License Version 2 or later (the
24
# "GPL"), in which case the provisions of the GPL are applicable
25
# instead of those above. If you wish to allow use of your
26
# version of this file only under the terms of the GPL and not to
27
# allow others to use your version of this file under the MPL,
28
# indicate your decision by deleting the provisions above and
29
# replace them with the notice and other provisions required by
30
# the GPL. If you do not delete the provisions above, a recipient
31
# may use your version of this file under either the MPL or the
36
# Based on the programming examples in The PowerPC Architecture:
37
# A Specification for A New Family of RISC Processors, 2nd Ed.,
38
# Book I, Section E.1, "Synchronization," pp. 249-256, May 1994.
44
# PRInt32 __PR_DarwinPPC_AtomicIncrement(PRInt32 *val);
47
.globl __PR_DarwinPPC_AtomicIncrement
48
__PR_DarwinPPC_AtomicIncrement:
52
bne- __PR_DarwinPPC_AtomicIncrement
57
# PRInt32 __PR_DarwinPPC_AtomicDecrement(PRInt32 *val);
60
.globl __PR_DarwinPPC_AtomicDecrement
61
__PR_DarwinPPC_AtomicDecrement:
65
bne- __PR_DarwinPPC_AtomicDecrement
70
# PRInt32 __PR_DarwinPPC_AtomicSet(PRInt32 *val, PRInt32 newval);
73
.globl __PR_DarwinPPC_AtomicSet
74
__PR_DarwinPPC_AtomicSet:
77
bne- __PR_DarwinPPC_AtomicSet
82
# PRInt32 __PR_DarwinPPC_AtomicAdd(PRInt32 *ptr, PRInt32 val);
85
.globl __PR_DarwinPPC_AtomicAdd
86
__PR_DarwinPPC_AtomicAdd:
90
bne- __PR_DarwinPPC_AtomicAdd