[PATCH] Improve and consolidate sparc PIC assembler.
David Miller
davem at davemloft.net
Sun Apr 14 07:50:03 CEST 2013
So here is what I have right now.
I guessed on the sqr_diagonal.asm failures on 32-bit
Solaris/Sparc that something is wrong with INT32
or W32 (which INT32 uses) on Solaris.
Please give it a go.
2013-04-13 David S. Miller <davem at davemloft.net>
* mpn/sparc32/v9/sqr_diagonal.asm: Don't use INT32.
* mpn/sparc64/gcd_1.asm: Use RODATA, TYPE, and SIZE.
diff -r 37082d27ed59 mpn/sparc32/v9/sqr_diagonal.asm
--- a/mpn/sparc32/v9/sqr_diagonal.asm Sat Apr 13 23:40:21 2013 +0200
+++ b/mpn/sparc32/v9/sqr_diagonal.asm Sat Apr 13 22:32:31 2013 -0700
@@ -75,7 +75,9 @@
ASM_START()
LEA_THUNK(l7)
TEXT
- INT32(noll, 0)
+ ALIGN(4)
+L(noll):
+ .word 0
PROLOGUE(mpn_sqr_diagonal)
save %sp,-256,%sp
diff -r 37082d27ed59 mpn/sparc64/gcd_1.asm
--- a/mpn/sparc64/gcd_1.asm Sat Apr 13 23:40:21 2013 +0200
+++ b/mpn/sparc64/gcd_1.asm Sat Apr 13 22:32:31 2013 -0700
@@ -37,13 +37,14 @@
deflit(MAXSHIFT, 7)
deflit(MASK, eval((m4_lshift(1,MAXSHIFT))-1))
- .section ".rodata"
+ RODATA
+ TYPE(ctz_table,object)
ctz_table:
.byte MAXSHIFT
forloop(i,1,MASK,
` .byte m4_count_trailing_zeros(i)
')
-
+ SIZE(ctz_table,.-ctz_table)
C Threshold of when to call bmod when U is one limb. Should be about
C (time_in_cycles(bmod_1,1) + call_overhead) / (cycles/bit).
More information about the gmp-devel
mailing list