diff options
author | wtchang%redhat.com <devnull@localhost> | 2005-02-28 21:19:01 +0000 |
---|---|---|
committer | wtchang%redhat.com <devnull@localhost> | 2005-02-28 21:19:01 +0000 |
commit | f19a91f52dd603db09fa81a658127bbcfba31779 (patch) | |
tree | 8bcca97469b01c199689d356661a0eb78bff599e | |
parent | 5bf23560b3f681701ed1291c068cad34fae907a9 (diff) | |
download | nspr-hg-f19a91f52dd603db09fa81a658127bbcfba31779.tar.gz |
Bugzilla Bug 283710: disable executable stack on ia64. The patch is
contributed by Christopher A. Aillon of Red Hat. r=wtc. Also fixed
the comments.
Tag: NSPRPUB_PRE_4_2_CLIENT_BRANCH
-rw-r--r-- | pr/src/md/unix/os_Linux_ia64.s | 96 |
1 files changed, 60 insertions, 36 deletions
diff --git a/pr/src/md/unix/os_Linux_ia64.s b/pr/src/md/unix/os_Linux_ia64.s index bf5b03fc..2facd893 100644 --- a/pr/src/md/unix/os_Linux_ia64.s +++ b/pr/src/md/unix/os_Linux_ia64.s @@ -1,38 +1,44 @@ -// -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- -// -// The contents of this file are subject to the Mozilla Public -// License Version 1.1 (the "License"); you may not use this file -// except in compliance with the License. You may obtain a copy of -// the License at http://www.mozilla.org/MPL/ -// -// Software distributed under the License is distributed on an "AS -// IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or -// implied. See the License for the specific language governing -// rights and limitations under the License. -// -// The Original Code is the Netscape Portable Runtime (NSPR). -// -// The Initial Developer of the Original Code is Netscape -// Communications Corporation. Portions created by Netscape are -// Copyright (C) 2000 Netscape Communications Corporation. All -// Rights Reserved. -// -// Contributor(s): -// -// Alternatively, the contents of this file may be used under the -// terms of the GNU General Public License Version 2 or later (the -// "GPL"), in which case the provisions of the GPL are applicable -// instead of those above. If you wish to allow use of your -// version of this file only under the terms of the GPL and not to -// allow others to use your version of this file under the MPL, -// indicate your decision by deleting the provisions above and -// replace them with the notice and other provisions required by -// the GPL. If you do not delete the provisions above, a recipient -// may use your version of this file under either the MPL or the -// GPL. -// +/ -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- +/ +/ The contents of this file are subject to the Mozilla Public +/ License Version 1.1 (the "License"); you may not use this file +/ except in compliance with the License. You may obtain a copy of +/ the License at http://www.mozilla.org/MPL/ +/ +/ Software distributed under the License is distributed on an "AS +/ IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +/ implied. See the License for the specific language governing +/ rights and limitations under the License. +/ +/ The Original Code is the Netscape Portable Runtime (NSPR). +/ +/ The Initial Developer of the Original Code is Netscape +/ Communications Corporation. Portions created by Netscape are +/ Copyright (C) 2000 Netscape Communications Corporation. All +/ Rights Reserved. +/ +/ Contributor(s): +/ +/ Alternatively, the contents of this file may be used under the +/ terms of the GNU General Public License Version 2 or later (the +/ "GPL"), in which case the provisions of the GPL are applicable +/ instead of those above. If you wish to allow use of your +/ version of this file only under the terms of the GPL and not to +/ allow others to use your version of this file under the MPL, +/ indicate your decision by deleting the provisions above and +/ replace them with the notice and other provisions required by +/ the GPL. If you do not delete the provisions above, a recipient +/ may use your version of this file under either the MPL or the +/ GPL. +/ .text + +/ PRInt32 _PR_ia64_AtomicIncrement(PRInt32 *val) +/ +/ Atomically increment the integer pointed to by 'val' and return +/ the result of the increment. +/ .align 16 .global _PR_ia64_AtomicIncrement# .proc _PR_ia64_AtomicIncrement# @@ -42,7 +48,12 @@ _PR_ia64_AtomicIncrement: adds r8 = 1, r8 br.ret.sptk.many b0 .endp _PR_ia64_AtomicIncrement# -// + +/ PRInt32 _PR_ia64_AtomicDecrement(PRInt32 *val) +/ +/ Atomically decrement the integer pointed to by 'val' and return +/ the result of the decrement. +/ .align 16 .global _PR_ia64_AtomicDecrement# .proc _PR_ia64_AtomicDecrement# @@ -52,7 +63,12 @@ _PR_ia64_AtomicDecrement: adds r8 = -1, r8 br.ret.sptk.many b0 .endp _PR_ia64_AtomicDecrement# -// + +/ PRInt32 _PR_ia64_AtomicAdd(PRInt32 *ptr, PRInt32 val) +/ +/ Atomically add 'val' to the integer pointed to by 'ptr' +/ and return the result of the addition. +/ .align 16 .global _PR_ia64_AtomicAdd# .proc _PR_ia64_AtomicAdd# @@ -70,7 +86,12 @@ _PR_ia64_AtomicAdd: (p6) br.cond.dptk .L3 br.ret.sptk.many b0 .endp _PR_ia64_AtomicAdd# -// + +/ PRInt32 _PR_ia64_AtomicSet(PRInt32 *val, PRInt32 newval) +/ +/ Atomically set the integer pointed to by 'val' to the new +/ value 'newval' and return the old value. +/ .align 16 .global _PR_ia64_AtomicSet# .proc _PR_ia64_AtomicSet# @@ -78,3 +99,6 @@ _PR_ia64_AtomicSet: xchg4 r8 = [r32], r33 br.ret.sptk.many b0 .endp _PR_ia64_AtomicSet# + +/ Magic indicating no need for an executable stack +.section .note.GNU-stack, "", @progbits ; .previous |