Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-16 Thread David Miller
From: Torbjorn Granlund t...@gmplib.org Date: Tue, 16 Apr 2013 14:43:58 +0200 If we cannot make an configure test, we need to know if there is a release where the assembler can be trusted. After some discussions with my Oracle contact, I think a configure test will actually be easy, the

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-16 Thread Torbjorn Granlund
David Miller da...@davemloft.net writes: From: Torbjorn Granlund t...@gmplib.org Date: Tue, 16 Apr 2013 14:43:58 +0200 If we cannot make an configure test, we need to know if there is a release where the assembler can be trusted. After some discussions with my Oracle contact, I

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-16 Thread David Miller
From: Torbjorn Granlund t...@gmplib.org Date: Wed, 17 Apr 2013 00:00:37 +0200 But if a real feature/bug test is too hard, or hard to make reliable, version detection is what we have to do. My plan is to shoot for a full functionality+bug test, and if that's too hard then if the assembler

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-15 Thread Torbjorn Granlund
Where to go from here? If we want to clean up some old SPARC code, then we have learnt that we to test the result on several key platforms. We also don't want to create slower code, unless the old code is clearly broken (in more than a hypothetical way). For the 64bit case, it is safe to assume

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-15 Thread David Miller
From: Torbjorn Granlund t...@gmplib.org Date: Mon, 15 Apr 2013 17:13:34 +0200 Where to go from here? Please run make -k in that tarball I posted for you last night, it's very important. None of what's happening makes any sense, and we can't make wise decisions about how to proceed until we

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-15 Thread David Miller
From: ni...@lysator.liu.se (Niels Möller) Date: Mon, 15 Apr 2013 18:57:53 +0200 Torbjorn Granlund t...@gmplib.org writes: We may well put data in the text segment rather than rodata to allow for plainer code. At least in theory, there should be little difference. PC-relative offsets

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-15 Thread Torbjorn Granlund
swift gmake -k gcc -m64 -fPIC -c -o test1_shared.o test1.S /usr/ccs/bin/as: /var/tmp//ccqorjdc.s: , approx line 18: internal error: pic_relocs(): hh reltype? gmake: *** [test1_shared.o] Error 1 gcc -m64 -c -o test1_static.o test1.S gcc -m64 -fPIC -c -o test2_shared.o test2.S /usr/ccs/bin/as:

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-15 Thread Torbjorn Granlund
David Miller da...@davemloft.net writes: BTW, you traded one failure for another, now PIC is broke for ultrasparct3 builds, because now in invert_limb.asm we're back to: diff -r bd92f35223f8 mpn/sparc64/ultrasparct3/invert_limb.asm --- a/mpn/sparc64/ultrasparct3/invert_limb.asm Sun

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-14 Thread David Miller
From: Torbjorn Granlund t...@gmplib.org Date: Sun, 14 Apr 2013 19:21:36 +0200 I tried some timing of call to a pc loading thunk versus an rdpc instruction. Approximate cycle counts: rdpcthunk US2 5 2 US3 6 6 T1 6 10 I assume US1=US2,

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-14 Thread David Miller
From: Torbjorn Granlund t...@gmplib.org Date: Sun, 14 Apr 2013 19:21:36 +0200 T3 and T4 are of course quite relevant, so we should take these into account. If they run rdpc no slower than the thunk call, then we should use rdpc unconditionally. I used this test program: Ok, on T4, %pc

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-14 Thread Torbjorn Granlund
David Miller da...@davemloft.net writes: Since using rdpc avoids the whole issue of corrupting the return address stack, it seems pretty desirable to move over to it. Let's do it. Well see a slight slowdown for T3, but probably its general slowness will make this new slowdown almost

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-14 Thread David Miller
From: Torbjorn Granlund t...@gmplib.org Date: Sun, 14 Apr 2013 23:26:31 +0200 David Miller da...@davemloft.net writes: Sure, let's revert v9/sqr_diagonal.asm and sparc64/gcd_1.asm back to their previous state for now, and try to work from that. Here's a patch. 2013-04-14

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-13 Thread Torbjorn Granlund
Torbjorn Granlund t...@gmplib.org writes: Torbjorn Granlund t...@gmplib.org writes: ld: fatal: relocation error: R_SPARC_GOTDATA_OP_LOX10: file mpn/.libs/gcd_1.o: symbol ctz_table: relocation illegal for TLS symbol ld: fatal: relocation error: R_SPARC_GOTDATA_OP: file

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-13 Thread David Miller
From: Torbjorn Granlund t...@gmplib.org Date: Sat, 13 Apr 2013 15:40:38 +0200 I spotted a comment in gcc, ;; Even on V9 we use this call sequence with a stub, instead of rd %pc, ... ;; because the RDPC instruction is extremely expensive and incurs a complete ;; instruction pipeline flush.

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-13 Thread David Miller
From: Torbjorn Granlund t...@gmplib.org Date: Sat, 13 Apr 2013 12:10:33 +0200 David Miller da...@davemloft.net writes: * mpn/sparc32/sparc-defs.m4 (LEA): Remove unused local label. (LEA_LEAF): Likewise. This patch helped the get past the Slowlaris assembler, which can only

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-13 Thread David Miller
From: Torbjorn Granlund t...@gmplib.org Date: Sat, 13 Apr 2013 21:10:35 +0200 ld: fatal: relocation error: R_SPARC_GOTDATA_OP_LOX10: file mpn/.libs/gcd_1.o: symbol ctz_table: relocation illegal for TLS symbol ld: fatal: relocation error: R_SPARC_GOTDATA_OP: file mpn/.libs/gcd_1.o:

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-13 Thread Torbjorn Granlund
David Miller da...@davemloft.net writes: ld: fatal: relocation error: R_SPARC_GOTDATA_OP_LOX10: file mpn/.libs/gcd_1.o: symbol ctz_table: relocation illegal for TLS symbol ld: fatal: relocation error: R_SPARC_GOTDATA_OP: file mpn/.libs/gcd_1.o: symbol ctz_table: relocation illegal

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-13 Thread David Miller
From: Torbjorn Granlund t...@gmplib.org Date: Sat, 13 Apr 2013 21:52:40 +0200 Really? What does our case have to do with TLS? The example error message uses a TLS reloc, we don't. Implicit section at the beginning of assembly? Here, try these two things: 1) Build: static const

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-13 Thread David Miller
From: David Miller da...@davemloft.net Date: Sat, 13 Apr 2013 15:58:44 -0400 (EDT) From: Torbjorn Granlund t...@gmplib.org Date: Sat, 13 Apr 2013 21:52:40 +0200 Really? What does our case have to do with TLS? The example error message uses a TLS reloc, we don't. Implicit section at the

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-13 Thread David Miller
From: David Miller da...@davemloft.net Date: Sat, 13 Apr 2013 15:59:49 -0400 (EDT) From: David Miller da...@davemloft.net Date: Sat, 13 Apr 2013 15:58:44 -0400 (EDT) From: Torbjorn Granlund t...@gmplib.org Date: Sat, 13 Apr 2013 21:52:40 +0200 Really? What does our case have to do with

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-11 Thread Torbjorn Granlund
There are syntax errors for swift.nada.kth.se, a Solaris system. See http://gmplib.org/devel/tm-date.html. The offending lines: swift (ABI=64) 99: sethi %gdop_hix22(ctz_table), %i5 swift-32 (ABI=32) 99: sethi %gdop_hix22(.Lnoll), %l0 We need things to work on Solaris, *BSD. --

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-11 Thread David Miller
I've done some more research into this. I first made sure that we are using the same test that GCC uses to enable the use of gotdata relocations. Then I read over the new m4 LEA macros a few times, the only thing I found was that I left around a local label that was only necessary for an

[PATCH] Improve and consolidate sparc PIC assembler.

2013-04-10 Thread David Miller
This patch aims to: 1) Consolidate all of the address loading details of PIC vs. non-PIC into one place, via helper macros. 2) Add support for GOTDATA relocations when the tools support it. 3) When supported by the tools, use comdat et al. in order to have shared PIC thunks. All PIC

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-10 Thread Torbjorn Granlund
Please use LEA* instead of LOAD_SYMBOL*, since that's what we use elsewhere. (OK, LEA might be a misnomer, but a well-established one in and outside of GMP.) I assume your broad testing covers every modified file. Do you have an idea of whether that is true. Whn testing shared libs, I have

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-10 Thread David Miller
From: Torbjorn Granlund t...@gmplib.org Date: Wed, 10 Apr 2013 14:35:13 +0200 Please use LEA* instead of LOAD_SYMBOL*, since that's what we use elsewhere. (OK, LEA might be a misnomer, but a well-established one in and outside of GMP.) Ok. I assume your broad testing covers every modified

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-10 Thread Torbjorn Granlund
I assume your broad testing covers every modified file. Do you have an idea of whether that is true. I rechecked everything and the one case I missed was supersparc-* Even the current tree has a build problem of the supersparc target with current tools due to combination of a

Re: [PATCH] Improve and consolidate sparc PIC assembler.

2013-04-10 Thread David Miller
From: Torbjorn Granlund t...@gmplib.org Date: Wed, 10 Apr 2013 20:07:52 +0200 I'll get those bugs sorted out, but at least gcc-4.6 and gcc-4.7 have this problem, and have had them for some time, so I think we should work around it. A workaround that works is to pass -mcpu=v8