Re: PATCH: Properly check mode for x86 call/jmp address

2012-03-11 Thread Uros Bizjak
On Sat, Mar 10, 2012 at 5:05 PM, H.J. Lu wrote: >>>  (define_insn "*call" >>> -  [(call (mem:QI (match_operand:P 0 "call_insn_operand" "zw")) >>> +  [(call (mem:QI (match_operand:C 0 "call_insn_operand" "zw")) >>>        (match_operand 1 "" ""))] >>> -  "!SIBLING_CALL_P (insn)

Re: PATCH: Properly check mode for x86 call/jmp address

2012-03-10 Thread H.J. Lu
On Wed, Mar 7, 2012 at 1:58 PM, Uros Bizjak wrote: > On Wed, Mar 7, 2012 at 5:03 PM, H.J. Lu wrote: > >>  (define_insn "*call" >> -  [(call (mem:QI (match_operand:P 0 "call_insn_operand" "zw")) >> +  [(call (mem:QI (match_operand:C 0 "call_insn_operand" "zw")) >>        (match_ope

Re: PATCH: Properly check mode for x86 call/jmp address

2012-03-07 Thread Uros Bizjak
On Wed, Mar 7, 2012 at 5:03 PM, H.J. Lu wrote: >  (define_insn "*call" > -  [(call (mem:QI (match_operand:P 0 "call_insn_operand" "zw")) > +  [(call (mem:QI (match_operand:C 0 "call_insn_operand" "zw")) >        (match_operand 1 "" ""))] > -  "!SIBLING_CALL_P (insn)" > +  

Re: PATCH: Properly check mode for x86 call/jmp address

2012-03-07 Thread H.J. Lu
On Wed, Mar 7, 2012 at 1:28 AM, Uros Bizjak wrote: > On Tue, Mar 6, 2012 at 9:57 PM, H.J. Lu wrote:  (define_insn "*call" -  [(call (mem:QI (match_operand:P 0 "call_insn_operand" "zw")) +  [(call (mem:QI (match_operand:C 0 "call_insn_operand" "zw"))        (match_operand 1 ""

Re: PATCH: Properly check mode for x86 call/jmp address

2012-03-07 Thread Uros Bizjak
On Wed, Mar 7, 2012 at 11:07 AM, Uros Bizjak wrote: > Ah, I vaguely remember that indirect call/jmp is invalid on X32 for This should read "... indirect call/jmp FROM MEMORY is invalid on X32 ...". It looks I've had too much morning coffee already ;) Uros.

Re: PATCH: Properly check mode for x86 call/jmp address

2012-03-07 Thread Uros Bizjak
On Wed, Mar 7, 2012 at 11:07 AM, Uros Bizjak wrote: > On Wed, Mar 7, 2012 at 10:28 AM, Uros Bizjak wrote: > >> +  if (TARGET_X32) >> +    operands[0] = convert_memory_address (word_mode, operands[0]); >> >> This addition to indirect_jump and tablejump should be the only >> change, needed in i386.

Re: PATCH: Properly check mode for x86 call/jmp address

2012-03-07 Thread Uros Bizjak
On Wed, Mar 7, 2012 at 10:28 AM, Uros Bizjak wrote: > +  if (TARGET_X32) > +    operands[0] = convert_memory_address (word_mode, operands[0]); > > This addition to indirect_jump and tablejump should be the only > change, needed in i386.md now. Please write the condition > > if (Pmode != word_mode

Re: PATCH: Properly check mode for x86 call/jmp address

2012-03-07 Thread Uros Bizjak
On Tue, Mar 6, 2012 at 9:57 PM, H.J. Lu wrote: >>>  (define_insn "*call" >>> -  [(call (mem:QI (match_operand:P 0 "call_insn_operand" "zw")) >>> +  [(call (mem:QI (match_operand:C 0 "call_insn_operand" "zw")) >>>        (match_operand 1 "" ""))] >>> -  "!SIBLING_CALL_P (insn)" >>> +  "!SIBLING_CAL

Re: PATCH: Properly check mode for x86 call/jmp address

2012-03-06 Thread H.J. Lu
On Tue, Mar 6, 2012 at 11:47 AM, Richard Henderson wrote: > On 03/06/12 11:10, H.J. Lu wrote: >>  (define_insn "*call" >> -  [(call (mem:QI (match_operand:P 0 "call_insn_operand" "zw")) >> +  [(call (mem:QI (match_operand:C 0 "call_insn_operand" "zw")) >>        (match_operand 1 "" ""))] >> -  "!S

Re: PATCH: Properly check mode for x86 call/jmp address

2012-03-06 Thread Richard Henderson
On 03/06/12 11:10, H.J. Lu wrote: > (define_insn "*call" > - [(call (mem:QI (match_operand:P 0 "call_insn_operand" "zw")) > + [(call (mem:QI (match_operand:C 0 "call_insn_operand" "zw")) >(match_operand 1 "" ""))] > - "!SIBLING_CALL_P (insn)" > + "!SIBLING_CALL_P (insn) > + && (GET_C

Re: PATCH: Properly check mode for x86 call/jmp address

2012-03-06 Thread Uros Bizjak
On Tue, Mar 6, 2012 at 8:10 PM, H.J. Lu wrote: > On Tue, Mar 6, 2012 at 7:37 AM, H.J. Lu wrote: >> On Mon, Mar 5, 2012 at 9:11 AM, H.J. Lu wrote: >>> On Sun, Mar 4, 2012 at 11:47 PM, Uros Bizjak wrote: On Mon, Mar 5, 2012 at 4:53 AM, H.J. Lu wrote: > and compiler does generate th

PATCH: Properly check mode for x86 call/jmp address

2012-03-06 Thread H.J. Lu
On Tue, Mar 6, 2012 at 7:37 AM, H.J. Lu wrote: > On Mon, Mar 5, 2012 at 9:11 AM, H.J. Lu wrote: >> On Sun, Mar 4, 2012 at 11:47 PM, Uros Bizjak wrote: >>> On Mon, Mar 5, 2012 at 4:53 AM, H.J. Lu wrote: >>> and compiler does generate the same output. i386.c also has        xasm =