commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mt...@apache.org
Subject svn commit: r826250 - in /commons/sandbox/runtime/trunk/src/main/native: ./ os/darwin/ os/hpux/ os/linux/
Date Sat, 17 Oct 2009 13:45:30 GMT
Author: mturk
Date: Sat Oct 17 13:45:29 2009
New Revision: 826250

URL: http://svn.apache.org/viewvc?rev=826250&view=rev
Log:
Use cc for compiling asembly code so we can use pre processor

Added:
    commons/sandbox/runtime/trunk/src/main/native/os/darwin/arch.S
    commons/sandbox/runtime/trunk/src/main/native/os/hpux/arch.S
    commons/sandbox/runtime/trunk/src/main/native/os/linux/arch.S
Removed:
    commons/sandbox/runtime/trunk/src/main/native/os/darwin/arch_i386.S
    commons/sandbox/runtime/trunk/src/main/native/os/darwin/arch_ppc.S
    commons/sandbox/runtime/trunk/src/main/native/os/darwin/arch_ppc64.S
    commons/sandbox/runtime/trunk/src/main/native/os/darwin/arch_x86_64.S
    commons/sandbox/runtime/trunk/src/main/native/os/hpux/arch_ia32.S
    commons/sandbox/runtime/trunk/src/main/native/os/hpux/arch_ia64.S
    commons/sandbox/runtime/trunk/src/main/native/os/hpux/arch_parisc.S
    commons/sandbox/runtime/trunk/src/main/native/os/hpux/arch_parisc64.S
    commons/sandbox/runtime/trunk/src/main/native/os/linux/arch_i386.S
    commons/sandbox/runtime/trunk/src/main/native/os/linux/arch_ia32.S
    commons/sandbox/runtime/trunk/src/main/native/os/linux/arch_ia64.S
    commons/sandbox/runtime/trunk/src/main/native/os/linux/arch_ppc.S
    commons/sandbox/runtime/trunk/src/main/native/os/linux/arch_ppc64.S
    commons/sandbox/runtime/trunk/src/main/native/os/linux/arch_x86_64.S
Modified:
    commons/sandbox/runtime/trunk/src/main/native/Makefile.in
    commons/sandbox/runtime/trunk/src/main/native/configure

Modified: commons/sandbox/runtime/trunk/src/main/native/Makefile.in
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/Makefile.in?rev=826250&r1=826249&r2=826250&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/Makefile.in (original)
+++ commons/sandbox/runtime/trunk/src/main/native/Makefile.in Sat Oct 17 13:45:29 2009
@@ -142,7 +142,7 @@
 	$(SRCDIR)/os/unix/uuid.$(OBJ) \
 	$(SRCDIR)/os/unix/uutils.$(OBJ) \
 	$(SRCDIR)/os/linux/atomics.$(OBJ) \
-	$(SRCDIR)/os/linux/arch_$(MACH).$(OBJ) \
+	$(SRCDIR)/os/linux/arch.$(OBJ) \
 	$(SRCDIR)/os/linux/cpu.$(OBJ) \
 	$(SRCDIR)/os/linux/env.$(OBJ) \
 	$(SRCDIR)/os/linux/execmem.$(OBJ) \
@@ -212,7 +212,7 @@
 	$(SRCDIR)/os/unix/uuid.$(OBJ) \
 	$(SRCDIR)/os/unix/uutils.$(OBJ) \
 	$(SRCDIR)/os/darwin/atomics.$(OBJ) \
-	$(SRCDIR)/os/darwin/arch_$(MACH).$(OBJ) \
+	$(SRCDIR)/os/darwin/arch.$(OBJ) \
 	$(SRCDIR)/os/darwin/cpu.$(OBJ) \
 	$(SRCDIR)/os/darwin/env.$(OBJ) \
 	$(SRCDIR)/os/darwin/platform.$(OBJ) \
@@ -247,7 +247,7 @@
 	$(SRCDIR)/os/unix/uuid.$(OBJ) \
 	$(SRCDIR)/os/unix/uutils.$(OBJ) \
 	$(SRCDIR)/os/hpux/atomics.$(OBJ) \
-	$(SRCDIR)/os/hpux/arch_$(MACH).$(OBJ) \
+	$(SRCDIR)/os/hpux/arch.$(OBJ) \
 	$(SRCDIR)/os/hpux/cpu.$(OBJ) \
 	$(SRCDIR)/os/hpux/env.$(OBJ) \
 	$(SRCDIR)/os/hpux/group.$(OBJ) \

Modified: commons/sandbox/runtime/trunk/src/main/native/configure
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/configure?rev=826250&r1=826249&r2=826250&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/configure (original)
+++ commons/sandbox/runtime/trunk/src/main/native/configure Sat Oct 17 13:45:29 2009
@@ -428,14 +428,17 @@
     ;;
 esac
 
+mcpu="_`toupper $mach`_"
 case "$host-$cc" in
     linux-gcc )
         varadds cppopts -DLINUX=2 -D_GNU_SOURCE
-        varadds cppopts -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED
+        varadds cppopts -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED -D$mcpu
         varadds ccflags -fPIC -O3 -Wall -g
+        varadds asflags -c -fPIC -g -D$mcpu
         varadds ldflags -lrt -lpthread -ldl
         varadds shflags -shared -fPIC -Wl,-soname '-Wl,??@'
         varadds exflags '-Wl,-rpath,??(PREFIX)/??(LIBDIR):????ORIGIN'
+        as=gcc
         test ".$java_pinc" = . && java_pinc=linux
         ;;
     linux-cc )
@@ -443,8 +446,9 @@
             varadds ccflags -fast -xbuiltin=none -U__MATHERR_ERRNO_DONTCARE -xnolibmopt -xnolibmil
         fi
         varadds cppopts -D_LINUX=2 -D_GNU_SOURCE
-        varadds cppopts -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED
+        varadds cppopts -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED -D$mcpu
         varadds ccflags -xstrconst -xdepend -O -Xa -KPIC
+        varadds asflags -c -KPIC -D$mcpu
         varadds ldflags -lpthread -ldl
         varadds shflags -G -KPIC -dy
         varadds exflags '-R:??(PREFIX)/??(LIBDIR):.'
@@ -455,12 +459,14 @@
         ;;
     darwin-gcc )
         r="`uname -r | sed 's/\.//g'`"
-        varadds cppopts -DDARWIN=$r
+        varadds cppopts -DDARWIN=$r -D$mcpu
         varadds ccflags -fPIC -O3 -g
+        varadds asflags -c -fPIC -g -D$mcpu
         varadds ldflags -lpthread -ldl
         varadds exflags '-Wl,-rpath,??(PREFIX)/??(LIBDIR):.'
         if [ ".$has_jni" = .yes ]; then so=".jnilib"; else so=".dynlib"; fi
         varadds shflags -dynamiclib -flat_namespace -undefined suppress -fPIC -Wl,-dylib_install_name
'-Wl,??@'
+        as=gcc
         ;;
     solaris-cc )
         r="`uname -r | sed 's/5.//'`"
@@ -471,7 +477,7 @@
             varadds ccflags -fast -xbuiltin=none -U__MATHERR_ERRNO_DONTCARE -xnolibmopt -xnolibmil
             test ".$bits" = .64 && varadds asflags -xarch=amd64
         fi
-        varadds cppopts -DSOLARIS2=$r
+        varadds cppopts -DSOLARIS2=$r -D$mcpu
         if [ ".$has_native_threads" = .yes ]; then
             varadds ccflags -mt
             varadds cppopts -DHAS_NATIVE_THREADS
@@ -489,19 +495,21 @@
         ;;
     hpux-cc    )
         r="`uname -r | sed 's/[A-Z].[0-9]*.//'`"
-        varadds cppopts -D_HPUX_SOURCE -DHPUX11=$r
+        varadds cppopts -D_HPUX_SOURCE -DHPUX11=$r -D$mcpu
         varadds ccflags -Ae +O2 -z +Z
+        varadds asflags -c +Z -D$mcpu
         varadds ldflags -lrt -lpthread -ldld -lm
         varadds shflags +Z -b
         varadds asflags +Z
+        as=cc
         test ".$mach" = .parisc && so=.sl
         test ".$java_pinc" = . && java_pinc=hp-ux
         ;;
     windows-cl )
-        varadds asflags -nologo -DWIN32 -DWINNT -D_WIN32
+        varadds asflags -nologo -DWIN32 -DWINNT -D_WIN32 -D$mcpu
         varadds ccflags -nologo -O2 -Ob2 -Oy- -Zi -D_MD -MD -W3
         varadds cppopts -DWIN32 -DWINNT -D_WIN32 -D_WINDOWS -D_WINNT
-        varadds cppopts -D_WIN32_WINNT=0x0501 -D_WIN32_IE=0x0600
+        varadds cppopts -D_WIN32_WINNT=0x0501 -D_WIN32_IE=0x0600 -D$mcpu
         varadds cxxopts -TP
         varadds ldflags kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib
         varadds ldflags shell32.lib rpcrt4.lib user32.lib gdi32.lib userenv.lib wtsapi32.lib
@@ -521,7 +529,7 @@
         ;;
     aix-gcc    )
         r="`uname -v``uname -r`"
-        varadds cppopts -DAIX=$r -U__STR__ -D_THREAD_SAFE -D_USE_IRS
+        varadds cppopts -DAIX=$r -U__STR__ -D_THREAD_SAFE -D_USE_IRS -D$mcpu
         varadds ccflags -fPIC -O2 -g -pthread
         varadds ldflags -lrt -lpthreads -lnsl
         varadds shflags -shared -fPIC -Wl,-soname '-Wl,??@' -Wl,-brtl
@@ -562,16 +570,19 @@
 case "$host$bits-$cc" in
     hpux64-cc    )
         varadds ccflags +DD64
+        varadds asflags +DD64
         varadds shflags +DD64
         varadds exflags +DD64
         if [ ".$mach" = .parisc64 ]; then
             varadds ccflags +DA2.0W
+            varadds asflags +DA2.0W
             varadds exflags +DA2.0W
             varadds asflags +DA2.0W
         fi
         ;;
     hpux32-cc    )
         varadds ccflags +DD32
+        varadds asflags +DD32
         varadds shflags +DD32
         varadds exflags +DD32
         ;;
@@ -597,27 +608,18 @@
         ;;
     *64-*        )
         varadds ccflags -m64
+        varadds asflags -m64
         varadds shflags -m64
         varadds exflags -m64
         ;;
     *32-*        )
         varadds ccflags -m32
+        varadds asflags -m32
         varadds shflags -m32
         varadds exflags -m32
         ;;
 esac
 
-case "$host$bits-$cc" in
-    darwin* )
-        varadds asflags -arch $mach
-    ;;
-    *64-gcc )
-        varadds asflags --64
-    ;;
-    *32-gcc )
-        varadds asflags --32
-    ;;
-esac
 $EECHO "Configuring \033[1mApache Commons Runtime $vmajor.$vminor.$vpatch\033[0m. for $host$bits-$cc"
 echo ""
 

Added: commons/sandbox/runtime/trunk/src/main/native/os/darwin/arch.S
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/darwin/arch.S?rev=826250&view=auto
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/darwin/arch.S (added)
+++ commons/sandbox/runtime/trunk/src/main/native/os/darwin/arch.S Sat Oct 17 13:45:29 2009
@@ -0,0 +1,53 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+    .text
+    .align 4
+#if defined(_XI386_)
+/*
+ * extern acr_uint32_t acr_AtomicAdd32(acr_atomic32_t *, acr_uint32_t)
+ */
+    .globl _acr_AtomicAdd32
+_acr_AtomicAdd32:
+    movl        4(%esp), %ecx
+    movl        8(%esp), %eax
+    movl           %eax, %edx
+
+    lock                           /* ; lock the bus                        */
+    xaddl          %eax, (%ecx)    /* ; tmp = *dst                          */
+                                   /* ; dst += inc                          */
+                                   /* ; %eax = tmp                          */
+
+    addl           %edx, %eax      /* ; return %eax + inc                   */
+    ret
+#elif defined(_X86_64_)
+/*
+ * extern acr_uint32_t acr_AtomicAdd32(acr_atomic32_t *, acr_uint32_t)
+ */
+    .globl _acr_AtomicAdd32
+_acr_AtomicAdd32:
+    movq           %rdi, %rcx      /* ; %rcx = dst                          */
+    movl           %esi, %edx      /* ; %edx = inc                          */
+    movl           %edx, %eax      /* ;                                     */
+
+    lock                           /* ; lock the bus                        */
+    xaddl          %eax, (%rcx)    /* ; tmp = *dst                          */
+                                   /* ; dst += inc                          */
+                                   /* ; %eax = tmp                          */
+
+    addl           %edx, %eax      /* ; return %eax + inc                   */
+    ret
+#endif

Added: commons/sandbox/runtime/trunk/src/main/native/os/hpux/arch.S
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/hpux/arch.S?rev=826250&view=auto
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/hpux/arch.S (added)
+++ commons/sandbox/runtime/trunk/src/main/native/os/hpux/arch.S Sat Oct 17 13:45:29 2009
@@ -0,0 +1,83 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+    .text
+#if defined(_IA32_)
+    .psr abi32
+    .psr msb
+
+
+/*
+ * extern acr_uint32_t acr_AtomicAdd32(acr_atomic32_t *, acr_uint32_t);
+ */
+    .global acr_AtomicAdd32
+    .proc   acr_AtomicAdd32
+acr_AtomicAdd32:
+
+    .prologue
+    .body
+    mf
+    addp4 r9 = 0, r32 // Needed to be able to dereference a 32 bit pointer
+    ;;
+    ld4.acq r15 = [r9]
+    nop 0
+    ;;
+.add32_busywait:
+    mov ar.ccv = r15
+    add r8 = r15, r33
+    mov r2 = r15
+    ;;
+    nop 0
+    cmpxchg4.acq r15 = [r9], r8, ar.ccv
+    nop 0
+    ;;
+    cmp4.ne p8, p9 = r2, r15
+    (p9) br.ret.dpnt.many rp
+    br .add32_busywait
+
+    .endp acr_AtomicAdd32
+#elif defined(_IA64_)
+    .align 16
+
+/*
+ * extern acr_uint32_t acr_AtomicAdd32(acr_atomic32_t *, acr_uint32_t);
+ */
+
+    .global _acr_AtomicAdd32
+    .proc   acr_AtomicAdd32
+acr_AtomicAdd32:
+
+    .prologue
+    .body
+    mf
+    ld4.acq r15 = [r32]
+    nop 0
+    ;;
+.add32_busywait:
+    mov ar.ccv = r15
+    add r8 = r15, r33
+    mov r2 = r15
+    ;;
+    nop 0
+    cmpxchg4.acq r15 = [r32], r8, ar.ccv
+    nop 0
+    ;;
+    cmp4.ne p8, p9 = r2, r15
+    (p9) br.ret.dpnt.many rp
+    br .add32_busywait
+
+    .endp acr_AtomicAdd32
+#endif

Added: commons/sandbox/runtime/trunk/src/main/native/os/linux/arch.S
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/linux/arch.S?rev=826250&view=auto
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/linux/arch.S (added)
+++ commons/sandbox/runtime/trunk/src/main/native/os/linux/arch.S Sat Oct 17 13:45:29 2009
@@ -0,0 +1,127 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+    .text
+
+#if defined(_XI386_)
+    .align 8
+
+/*
+ * extern acr_uint32_t acr_AtomicAdd32(acr_atomic32_t *, acr_uint32_t)
+ */
+    .globl acr_AtomicAdd32
+    .type  acr_AtomicAdd32, @function
+acr_AtomicAdd32:
+    movl        4(%esp), %ecx
+    movl        8(%esp), %eax
+    movl           %eax, %edx
+
+    lock                           /* ; lock the bus                        */
+    xaddl          %eax, (%ecx)    /* ; tmp = *dst                          */
+                                   /* ; dst += inc                          */
+                                   /* ; %eax = tmp                          */
+
+    addl           %edx, %eax      /* ; return %eax + inc                   */
+    ret
+
+#elif defined(_X86_64_)
+    .align 16
+
+/*
+ * extern acr_uint32_t acr_AtomicAdd32(acr_atomic32_t *, acr_uint32_t)
+ */
+    .globl acr_AtomicAdd32
+    .type  acr_AtomicAdd32, @function
+acr_AtomicAdd32:
+    movq           %rdi, %rcx      /* ; %rcx = dst                          */
+    movl           %esi, %edx      /* ; %edx = inc                          */
+    movl           %edx, %eax      /* ;                                     */
+
+    lock                           /* ; lock the bus                        */
+    xaddl          %eax, (%rcx)    /* ; tmp = *dst                          */
+                                   /* ; dst += inc                          */
+                                   /* ; %eax = tmp                          */
+
+    addl           %edx, %eax      /* ; return %eax + inc                   */
+    ret
+
+#elif defined(_IA32_)
+    .psr abi32
+    .psr msb
+
+
+/*
+ * extern acr_uint32_t acr_AtomicAdd32(acr_atomic32_t *, acr_uint32_t);
+ */
+    .global acr_AtomicAdd32
+    .proc   acr_AtomicAdd32
+acr_AtomicAdd32:
+
+    .prologue
+    .body
+    mf
+    addp4 r9 = 0, r32 // Needed to be able to dereference a 32 bit pointer
+    ;;
+    ld4.acq r15 = [r9]
+    nop 0
+    ;;
+.add32_busywait:
+    mov ar.ccv = r15
+    add r8 = r15, r33
+    mov r2 = r15
+    ;;
+    nop 0
+    cmpxchg4.acq r15 = [r9], r8, ar.ccv
+    nop 0
+    ;;
+    cmp4.ne p8, p9 = r2, r15
+    (p9) br.ret.dpnt.many rp
+    br .add32_busywait
+
+    .endp acr_AtomicAdd32
+#elif defined(_IA64_)
+    .align 16
+
+/*
+ * extern acr_uint32_t acr_AtomicAdd32(acr_atomic32_t *, acr_uint32_t);
+ */
+
+    .global _acr_AtomicAdd32
+    .proc   acr_AtomicAdd32
+acr_AtomicAdd32:
+
+    .prologue
+    .body
+    mf
+    ld4.acq r15 = [r32]
+    nop 0
+    ;;
+.add32_busywait:
+    mov ar.ccv = r15
+    add r8 = r15, r33
+    mov r2 = r15
+    ;;
+    nop 0
+    cmpxchg4.acq r15 = [r32], r8, ar.ccv
+    nop 0
+    ;;
+    cmp4.ne p8, p9 = r2, r15
+    (p9) br.ret.dpnt.many rp
+    br .add32_busywait
+
+    .endp acr_AtomicAdd32
+
+#endif



Mime
View raw message