Re: [Pixman] [PATCH] ARM: use pixman_asm_function in internal headers

2014-04-08 Thread Pekka Paalanen
On Mon,  7 Apr 2014 14:57:10 +0300
Pekka Paalanen ppaala...@gmail.com wrote:

 From: Pekka Paalanen pekka.paala...@collabora.co.uk
 
 The two ARM headers contained open-coded copies of pixman_asm_function,
 replace these.
 
 Since it seems customary that ARM headers do not use CPP include guards,
 rely on the .S files to #include pixman-arm-asm.h first. They all
 already do.
 ---
  pixman/pixman-arm-neon-asm.h | 20 
  pixman/pixman-arm-simd-asm.h |  9 +
  2 files changed, 5 insertions(+), 24 deletions(-)
 
 diff --git a/pixman/pixman-arm-neon-asm.h b/pixman/pixman-arm-neon-asm.h
 index d0d92d7..bdcf6a9 100644
 --- a/pixman/pixman-arm-neon-asm.h
 +++ b/pixman/pixman-arm-neon-asm.h
 @@ -631,14 +631,8 @@ local skip1
 src_basereg_   = 0, \
 mask_basereg_  = 24
  
 -.func fname
 -.global fname
 -/* For ELF format also set function visibility to hidden */
 -#ifdef __ELF__
 -.hidden fname
 -.type fname, %function
 -#endif
 -fname:
 +pixman_asm_function fname
 +
  push{r4-r12, lr}/* save all registers */
  
  /*
 @@ -945,14 +939,8 @@ fname:
 src_basereg_   = 0, \
 mask_basereg_  = 24
  
 -.func fname
 -.global fname
 -/* For ELF format also set function visibility to hidden */
 -#ifdef __ELF__
 -.hidden fname
 -.type fname, %function
 -#endif
 -fname:
 +pixman_asm_function fname
 +
  .set PREFETCH_TYPE_CURRENT, PREFETCH_TYPE_NONE
  /*
   * Make some macro arguments globally visible and accessible
 diff --git a/pixman/pixman-arm-simd-asm.h b/pixman/pixman-arm-simd-asm.h
 index 24b1ad2..1b2c592 100644
 --- a/pixman/pixman-arm-simd-asm.h
 +++ b/pixman/pixman-arm-simd-asm.h
 @@ -561,13 +561,7 @@
 process_tail, \
 process_inner_loop
  
 - .func fname
 - .global fname
 - /* For ELF format also set function visibility to hidden */
 -#ifdef __ELF__
 - .hidden fname
 - .type fname, %function
 -#endif
 +pixman_asm_function fname
  
  /*
   * Make some macro arguments globally visible and accessible
 @@ -679,7 +673,6 @@
  SCRATCH .reqr12
  ORIG_W  .reqr14 /* width (pixels) */
  
 -fname:
  push{r4-r11, lr}/* save all registers */
  
  subsY, Y, #1

Sorry, there is something wrong with this one. I asked a friend to
compile-test it on an ARM box with NEON, and it worked fine, but when I
compile on RPi, I get:

  CPPAS  pixman-arm-simd-asm.lo
pixman-arm-simd-asm.h: Assembler messages:
pixman-arm-simd-asm.h:563: Error: bad instruction `pixman_asm_function 
pixman_composite_src___asm_armv6'
pixman-arm-simd-asm.h:660: Error: missing .func

And I've no idea what it's about. Maybe the assembler cannot expand
nested macros?

So, ignore this patch for the moment.


Thanks,
pq
___
Pixman mailing list
Pixman@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pixman


[Pixman] [PATCH] ARM: use pixman_asm_function in internal headers

2014-04-07 Thread Pekka Paalanen
From: Pekka Paalanen pekka.paala...@collabora.co.uk

The two ARM headers contained open-coded copies of pixman_asm_function,
replace these.

Since it seems customary that ARM headers do not use CPP include guards,
rely on the .S files to #include pixman-arm-asm.h first. They all
already do.
---
 pixman/pixman-arm-neon-asm.h | 20 
 pixman/pixman-arm-simd-asm.h |  9 +
 2 files changed, 5 insertions(+), 24 deletions(-)

diff --git a/pixman/pixman-arm-neon-asm.h b/pixman/pixman-arm-neon-asm.h
index d0d92d7..bdcf6a9 100644
--- a/pixman/pixman-arm-neon-asm.h
+++ b/pixman/pixman-arm-neon-asm.h
@@ -631,14 +631,8 @@ local skip1
src_basereg_   = 0, \
mask_basereg_  = 24
 
-.func fname
-.global fname
-/* For ELF format also set function visibility to hidden */
-#ifdef __ELF__
-.hidden fname
-.type fname, %function
-#endif
-fname:
+pixman_asm_function fname
+
 push{r4-r12, lr}/* save all registers */
 
 /*
@@ -945,14 +939,8 @@ fname:
src_basereg_   = 0, \
mask_basereg_  = 24
 
-.func fname
-.global fname
-/* For ELF format also set function visibility to hidden */
-#ifdef __ELF__
-.hidden fname
-.type fname, %function
-#endif
-fname:
+pixman_asm_function fname
+
 .set PREFETCH_TYPE_CURRENT, PREFETCH_TYPE_NONE
 /*
  * Make some macro arguments globally visible and accessible
diff --git a/pixman/pixman-arm-simd-asm.h b/pixman/pixman-arm-simd-asm.h
index 24b1ad2..1b2c592 100644
--- a/pixman/pixman-arm-simd-asm.h
+++ b/pixman/pixman-arm-simd-asm.h
@@ -561,13 +561,7 @@
process_tail, \
process_inner_loop
 
- .func fname
- .global fname
- /* For ELF format also set function visibility to hidden */
-#ifdef __ELF__
- .hidden fname
- .type fname, %function
-#endif
+pixman_asm_function fname
 
 /*
  * Make some macro arguments globally visible and accessible
@@ -679,7 +673,6 @@
 SCRATCH .reqr12
 ORIG_W  .reqr14 /* width (pixels) */
 
-fname:
 push{r4-r11, lr}/* save all registers */
 
 subsY, Y, #1
-- 
1.8.3.2

___
Pixman mailing list
Pixman@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pixman