On Thu, Dec 17, 2015 at 9:33 PM, H.J. Lu wrote:
> On Thu, Dec 17, 2015 at 8:49 AM, H.J. Lu wrote:
>> Since Pmode is 64-bit with -maddress-mode=long for x32, indirect call
>> via GOT slot doesn't need zero_extend. This patch limits *call_got_x32
>> and
Since Pmode is 64-bit with -maddress-mode=long for x32, indirect call
via GOT slot doesn't need zero_extend. This patch limits *call_got_x32
and *call_value_got_x32 patterns to 32-bit Pmode, adds *call_got_x32_long
and *call_value_got_x32_long for 64-bit Pmode.
OK for trunk if there is no
On Thu, Dec 17, 2015 at 8:49 AM, H.J. Lu wrote:
> Since Pmode is 64-bit with -maddress-mode=long for x32, indirect call
> via GOT slot doesn't need zero_extend. This patch limits *call_got_x32
> and *call_value_got_x32 patterns to 32-bit Pmode, adds *call_got_x32_long
> and
On Thu, 21 May 2015, H.J. Lu wrote:
On Thu, May 21, 2015 at 12:32 PM, Alexander Monakov amona...@ispras.ru
wrote:
On Thu, 21 May 2015, H.J. Lu wrote:
On Thu, May 21, 2015 at 12:06 PM, Richard Henderson r...@redhat.com
wrote:
On 05/21/2015 12:01 PM, H.J. Lu wrote:
+++
On Thu, May 21, 2015 at 8:36 PM, H.J. Lu hjl.to...@gmail.com wrote:
I am testing this now. I will check it in if there is no regression.
OK.
Maybe just :
;; Return true if OP is a GOT memory operand.
(define_predicate GOT_memory_operand
(match_operand 0 memory_operand)
{
return
On Thu, May 21, 2015 at 11:41 AM, Richard Henderson r...@redhat.com wrote:
On 05/21/2015 05:59 AM, H.J. Lu wrote:
+(define_predicate x32_sibcall_memory_operand
+ (and (match_operand 0 memory_operand)
+ (match_test CONSTANT_P (XEXP (op, 0)))
+ (match_test GET_CODE (XEXP (XEXP (op,
On 05/21/2015 05:59 AM, H.J. Lu wrote:
+(define_predicate x32_sibcall_memory_operand
+ (and (match_operand 0 memory_operand)
+ (match_test CONSTANT_P (XEXP (op, 0)))
+ (match_test GET_CODE (XEXP (XEXP (op, 0), 0)) == UNSPEC)
+ (match_test XINT (XEXP (XEXP (op, 0), 0), 1) ==
On Thu, May 21, 2015 at 2:59 PM, H.J. Lu hjl.to...@gmail.com wrote:
X32 doesn't support indirect branch via 32-bit memory slot since
indirect branch will load 64-bit address from 64-bit memory slot.
Since x32 GOT slot is 64-bit, we should allow indirect branch via GOT
slot for x32.
I am
X32 doesn't support indirect branch via 32-bit memory slot since
indirect branch will load 64-bit address from 64-bit memory slot.
Since x32 GOT slot is 64-bit, we should allow indirect branch via GOT
slot for x32.
I am testing it on x32. OK for master if there is no regression?
Thanks.
H.J.
On Thu, May 21, 2015 at 6:11 AM, Uros Bizjak ubiz...@gmail.com wrote:
On Thu, May 21, 2015 at 2:59 PM, H.J. Lu hjl.to...@gmail.com wrote:
X32 doesn't support indirect branch via 32-bit memory slot since
indirect branch will load 64-bit address from 64-bit memory slot.
Since x32 GOT slot is
On Thu, May 21, 2015 at 12:01 PM, H.J. Lu hjl.to...@gmail.com wrote:
On Thu, May 21, 2015 at 11:41 AM, Richard Henderson r...@redhat.com wrote:
On 05/21/2015 05:59 AM, H.J. Lu wrote:
+(define_predicate x32_sibcall_memory_operand
+ (and (match_operand 0 memory_operand)
+ (match_test
On Thu, 21 May 2015, H.J. Lu wrote:
On Thu, May 21, 2015 at 12:32 PM, Alexander Monakov amona...@ispras.ru
wrote:
On Thu, 21 May 2015, H.J. Lu wrote:
On Thu, May 21, 2015 at 12:06 PM, Richard Henderson r...@redhat.com
wrote:
On 05/21/2015 12:01 PM, H.J. Lu wrote:
+++
On 05/21/2015 12:01 PM, H.J. Lu wrote:
+++ b/gcc/testsuite/gcc.target/i386/pr66232-1.c
@@ -0,0 +1,13 @@
+/* { dg-do compile { target *-*-linux* } } */
+/* { dg-options -O2 -fpic -fno-plt } */
+
+extern void bar (void);
+
+void
+foo (void)
+{
+ bar ();
+}
+
+/* { dg-final {
On Thu, May 21, 2015 at 12:06 PM, Richard Henderson r...@redhat.com wrote:
On 05/21/2015 12:01 PM, H.J. Lu wrote:
+++ b/gcc/testsuite/gcc.target/i386/pr66232-1.c
@@ -0,0 +1,13 @@
+/* { dg-do compile { target *-*-linux* } } */
+/* { dg-options -O2 -fpic -fno-plt } */
+
+extern void bar
On Thu, May 21, 2015 at 7:01 PM, H.J. Lu hjl.to...@gmail.com wrote:
Here is the updated patch. It limited memory operand to
GOT slot only. It used a single pattern to cover both call
and sibcall since only GOT slot is allowed.
OK for master if there is no regression?
Thanks.
--
H.J.
On Thu, May 21, 2015 at 11:19 AM, Uros Bizjak ubiz...@gmail.com wrote:
On Thu, May 21, 2015 at 7:01 PM, H.J. Lu hjl.to...@gmail.com wrote:
Here is the updated patch. It limited memory operand to
GOT slot only. It used a single pattern to cover both call
and sibcall since only GOT slot is
On Thu, 21 May 2015, H.J. Lu wrote:
On Thu, May 21, 2015 at 12:06 PM, Richard Henderson r...@redhat.com wrote:
On 05/21/2015 12:01 PM, H.J. Lu wrote:
+++ b/gcc/testsuite/gcc.target/i386/pr66232-1.c
@@ -0,0 +1,13 @@
+/* { dg-do compile { target *-*-linux* } } */
+/* { dg-options -O2
On Thu, May 21, 2015 at 12:32 PM, Alexander Monakov amona...@ispras.ru wrote:
On Thu, 21 May 2015, H.J. Lu wrote:
On Thu, May 21, 2015 at 12:06 PM, Richard Henderson r...@redhat.com wrote:
On 05/21/2015 12:01 PM, H.J. Lu wrote:
+++ b/gcc/testsuite/gcc.target/i386/pr66232-1.c
@@ -0,0 +1,13
On Thu, May 21, 2015 at 6:33 AM, H.J. Lu hjl.to...@gmail.com wrote:
On Thu, May 21, 2015 at 6:11 AM, Uros Bizjak ubiz...@gmail.com wrote:
On Thu, May 21, 2015 at 2:59 PM, H.J. Lu hjl.to...@gmail.com wrote:
X32 doesn't support indirect branch via 32-bit memory slot since
indirect branch will
19 matches
Mail list logo