public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug target/47502] New: [x32] can’t find a register in class ‘SIREG’ while reloading ‘asm’ @ 2011-01-28 0:23 hjl.tools at gmail dot com 2011-01-28 3:23 ` [Bug rtl-optimization/47502] " hjl.tools at gmail dot com ` (6 more replies) 0 siblings, 7 replies; 8+ messages in thread From: hjl.tools at gmail dot com @ 2011-01-28 0:23 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47502 Summary: [x32] can’t find a register in class ‘SIREG’ while reloading ‘asm’ Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned@gcc.gnu.org ReportedBy: hjl.tools@gmail.com On x32 branch, I got [hjl@gnu-6 ilp32-19]$ cat x.i int foo (const void *set, void *oset) { unsigned int resultvar; asm volatile ("int $0x80\n\t" : "=a" (resultvar) : "0" (14), "c" ((set)), "d" ((oset)), "S" (8) : "memory", "cc"); return resultvar; } [hjl@gnu-6 ilp32-19]$ make /export/build/gnu/gcc-x32/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/gcc-x32/build-x86_64-linux/gcc/ -S -o x.s -mx32 -O -dp x.i x.i: In function ‘foo’: x.i:5:3: error: can’t find a register in class ‘SIREG’ while reloading ‘asm’ x.i:5:3: error: ‘asm’ operand has impossible constraints make: *** [x.s] Error 1 [hjl@gnu-6 ilp32-19]$ ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug rtl-optimization/47502] [x32] can’t find a register in class ‘SIREG’ while reloading ‘asm’ 2011-01-28 0:23 [Bug target/47502] New: [x32] can’t find a register in class ‘SIREG’ while reloading ‘asm’ hjl.tools at gmail dot com @ 2011-01-28 3:23 ` hjl.tools at gmail dot com 2011-01-28 3:27 ` hjl.tools at gmail dot com ` (5 subsequent siblings) 6 siblings, 0 replies; 8+ messages in thread From: hjl.tools at gmail dot com @ 2011-01-28 3:23 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47502 H.J. Lu <hjl.tools at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ebotcazou at gcc dot | |gnu.org Component|target |rtl-optimization --- Comment #1 from H.J. Lu <hjl.tools at gmail dot com> 2011-01-28 00:12:14 UTC --- Combine ignores asm constraints and turns (set (reg:SI 64 [ resultvar ]) (asm_operands/v:SI ("int $0x80 ") ("=a") 0 [ (reg:SI 65) (subreg/s/u:SI (reg/v/f:DI 62 [ xxxxx ]) 0) (subreg/s/u:SI (reg/v/f:DI 63 [ yyyyy ]) 0) (reg:SI 66) ] [ (asm_input:SI ("0") (null):0) (asm_input:SI ("c") (null):0) (asm_input:SI ("d") (null):0) (asm_input:SI ("S") (null):0) ] [] x.i:10)) (clobber (reg:QI 18 fpsr)) (clobber (reg:QI 17 flags)) (clobber (mem:BLK (scratch) [0 A8])) ]) x.i:5 -1 into (set (reg:SI 64 [ resultvar ]) (asm_operands/v:SI ("int $0x80 ") ("=a") 0 [ (reg:SI 65) (reg:SI 5 di [ xxxxx ]) (subreg/s/u:SI (reg/v/f:DI 63 [ yyyyy ]) 0) (reg:SI 66) ] [ (asm_input:SI ("0") (null):0) (asm_input:SI ("c") (null):0) (asm_input:SI ("d") (null):0) (asm_input:SI ("S") (null):0) ] [] x.i:10)) (clobber (reg:QI 18 fpsr)) (clobber (reg:QI 17 flags)) (clobber (mem:BLK (scratch) [0 A8])) ]) Things go downhill from here. ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug rtl-optimization/47502] [x32] can’t find a register in class ‘SIREG’ while reloading ‘asm’ 2011-01-28 0:23 [Bug target/47502] New: [x32] can’t find a register in class ‘SIREG’ while reloading ‘asm’ hjl.tools at gmail dot com 2011-01-28 3:23 ` [Bug rtl-optimization/47502] " hjl.tools at gmail dot com @ 2011-01-28 3:27 ` hjl.tools at gmail dot com 2011-01-28 3:47 ` hjl.tools at gmail dot com ` (4 subsequent siblings) 6 siblings, 0 replies; 8+ messages in thread From: hjl.tools at gmail dot com @ 2011-01-28 3:27 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47502 --- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> 2011-01-28 00:16:53 UTC --- It is a bad idea for combine to replace pseudo registers in asm statements with hard registers, which is the job of RA. ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug rtl-optimization/47502] [x32] can’t find a register in class ‘SIREG’ while reloading ‘asm’ 2011-01-28 0:23 [Bug target/47502] New: [x32] can’t find a register in class ‘SIREG’ while reloading ‘asm’ hjl.tools at gmail dot com 2011-01-28 3:23 ` [Bug rtl-optimization/47502] " hjl.tools at gmail dot com 2011-01-28 3:27 ` hjl.tools at gmail dot com @ 2011-01-28 3:47 ` hjl.tools at gmail dot com 2011-01-28 5:00 ` hjl at gcc dot gnu.org ` (3 subsequent siblings) 6 siblings, 0 replies; 8+ messages in thread From: hjl.tools at gmail dot com @ 2011-01-28 3:47 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47502 H.J. Lu <hjl.tools at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ubizjak at gmail dot com --- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> 2011-01-28 00:23:39 UTC --- It is a 4.6 regression. Combine in 4.4 doesn't do it. ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug rtl-optimization/47502] [x32] can’t find a register in class ‘SIREG’ while reloading ‘asm’ 2011-01-28 0:23 [Bug target/47502] New: [x32] can’t find a register in class ‘SIREG’ while reloading ‘asm’ hjl.tools at gmail dot com ` (2 preceding siblings ...) 2011-01-28 3:47 ` hjl.tools at gmail dot com @ 2011-01-28 5:00 ` hjl at gcc dot gnu.org 2011-03-21 8:06 ` hjl at gcc dot gnu.org ` (2 subsequent siblings) 6 siblings, 0 replies; 8+ messages in thread From: hjl at gcc dot gnu.org @ 2011-01-28 5:00 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47502 --- Comment #4 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> 2011-01-28 02:15:25 UTC --- Author: hjl Date: Fri Jan 28 02:15:22 2011 New Revision: 169351 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=169351 Log: Never combine asm statement. gcc/ 2011-01-27 H.J. Lu <hongjiu.lu@intel.com> PR rtl-optimization/47502 * combine.c (cant_combine_insn_p): Never combine asm statement. gcc/testsuite/ 2011-01-27 H.J. Lu <hongjiu.lu@intel.com> PR rtl-optimization/47502 * gcc.target/i386/pr47502-1.c: New. * gcc.target/i386/pr47502-2.c: Likewise. Added: branches/x32/gcc/testsuite/gcc.target/i386/pr47502-1.c branches/x32/gcc/testsuite/gcc.target/i386/pr47502-2.c Modified: branches/x32/gcc/ChangeLog.x32 branches/x32/gcc/combine.c branches/x32/gcc/testsuite/ChangeLog.x32 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug rtl-optimization/47502] [x32] can’t find a register in class ‘SIREG’ while reloading ‘asm’ 2011-01-28 0:23 [Bug target/47502] New: [x32] can’t find a register in class ‘SIREG’ while reloading ‘asm’ hjl.tools at gmail dot com ` (3 preceding siblings ...) 2011-01-28 5:00 ` hjl at gcc dot gnu.org @ 2011-03-21 8:06 ` hjl at gcc dot gnu.org 2011-04-02 5:47 ` hjl at gcc dot gnu.org 2011-07-28 14:01 ` hjl.tools at gmail dot com 6 siblings, 0 replies; 8+ messages in thread From: hjl at gcc dot gnu.org @ 2011-03-21 8:06 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47502 --- Comment #5 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> 2011-03-21 03:28:45 UTC --- Author: hjl Date: Mon Mar 21 03:28:40 2011 New Revision: 171205 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=171205 Log: Add 2 testcases for PR rtl-optimization/47502. Added: trunk/gcc/testsuite/gcc.target/i386/pr47502-1.c trunk/gcc/testsuite/gcc.target/i386/pr47502-2.c Modified: trunk/gcc/testsuite/ChangeLog ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug rtl-optimization/47502] [x32] can’t find a register in class ‘SIREG’ while reloading ‘asm’ 2011-01-28 0:23 [Bug target/47502] New: [x32] can’t find a register in class ‘SIREG’ while reloading ‘asm’ hjl.tools at gmail dot com ` (4 preceding siblings ...) 2011-03-21 8:06 ` hjl at gcc dot gnu.org @ 2011-04-02 5:47 ` hjl at gcc dot gnu.org 2011-07-28 14:01 ` hjl.tools at gmail dot com 6 siblings, 0 replies; 8+ messages in thread From: hjl at gcc dot gnu.org @ 2011-04-02 5:47 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47502 --- Comment #6 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> 2011-04-02 05:47:07 UTC --- Author: hjl Date: Sat Apr 2 05:47:04 2011 New Revision: 171874 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=171874 Log: Don't check asm statement in cant_combine_insn_p. 2011-03-28 H.J. Lu <hongjiu.lu@intel.com> PR rtl-optimization/47502 * combine.c (cant_combine_insn_p): Don't check asm statement. Modified: branches/x32/gcc/ChangeLog.x32 branches/x32/gcc/combine.c ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug rtl-optimization/47502] [x32] can’t find a register in class ‘SIREG’ while reloading ‘asm’ 2011-01-28 0:23 [Bug target/47502] New: [x32] can’t find a register in class ‘SIREG’ while reloading ‘asm’ hjl.tools at gmail dot com ` (5 preceding siblings ...) 2011-04-02 5:47 ` hjl at gcc dot gnu.org @ 2011-07-28 14:01 ` hjl.tools at gmail dot com 6 siblings, 0 replies; 8+ messages in thread From: hjl.tools at gmail dot com @ 2011-07-28 14:01 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47502 H.J. Lu <hjl.tools at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED --- Comment #7 from H.J. Lu <hjl.tools at gmail dot com> 2011-07-28 14:00:41 UTC --- It is fixed by function pointer argument promotion. ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2011-07-28 14:01 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2011-01-28 0:23 [Bug target/47502] New: [x32] can’t find a register in class ‘SIREG’ while reloading ‘asm’ hjl.tools at gmail dot com 2011-01-28 3:23 ` [Bug rtl-optimization/47502] " hjl.tools at gmail dot com 2011-01-28 3:27 ` hjl.tools at gmail dot com 2011-01-28 3:47 ` hjl.tools at gmail dot com 2011-01-28 5:00 ` hjl at gcc dot gnu.org 2011-03-21 8:06 ` hjl at gcc dot gnu.org 2011-04-02 5:47 ` hjl at gcc dot gnu.org 2011-07-28 14:01 ` hjl.tools at gmail dot com
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).