public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/24209] strange instruction selected for an annuled delay slot
[not found] <bug-24209-4@http.gcc.gnu.org/bugzilla/>
@ 2013-04-18 21:06 ` steven at gcc dot gnu.org
0 siblings, 0 replies; 2+ messages in thread
From: steven at gcc dot gnu.org @ 2013-04-18 21:06 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24209
Steven Bosscher <steven at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed|2005-10-05 11:06:49 |2013-04-18 11:06:49
CC|gcc-bugs at gcc dot gnu.org |steven at gcc dot gnu.org
--- Comment #3 from Steven Bosscher <steven at gcc dot gnu.org> 2013-04-18 21:06:17 UTC ---
Current trunk still picks that ldsb insn for the delay slot.
Here's what it produces:
.file "t.c"
.section ".text"
.align 4
.global PointToRowCol
.type PointToRowCol, #function
.proc 020
PointToRowCol:
sethi %hi(term+4), %g1
sethi %hi(firstValidRow), %g2
ld [%g1+%lo(term+4)], %g1
ld [%g2+%lo(firstValidRow)], %g2
ld [%g1], %g4
ld [%g1+12], %g3
sub %o0, %g4, %o0
sra %o0, 31, %o5
wr %o5, 0, %y
ld [%g3+4], %o5
nop
nop
sdiv %o0, %o5, %o0
cmp %o0, %g2
bl,a .L12
ldsb [%g1+16], %o4
sethi %hi(lastValidRow), %o5
ld [%o5+%lo(lastValidRow)], %o5
cmp %o0, %o5
bg .L10
mov %o0, %g2
.L2:
ldsb [%g1+16], %o4
.L12:
cmp %o4, 0
bne .L4
mov 0, %o5
ld [%g3+8], %o5
.L4:
add %o5, %g4, %g4
sub %o1, %g4, %o1
sra %o1, 31, %g4
wr %g4, 0, %y
ld [%g3], %g4
nop
nop
sdiv %o1, %g4, %o1
cmp %o1, 0
bl,a .L8
st %g2, [%o2]
ld [%g1+4], %g1
add %g1, 1, %g1
cmp %o1, %g1
bg .L11
st %g2, [%o2]
jmp %o7+8
st %o1, [%o3]
.L11:
mov %g1, %o1
jmp %o7+8
st %o1, [%o3]
.L10:
b .L2
mov %o5, %g2
.L8:
mov 0, %o1
jmp %o7+8
st %o1, [%o3]
.size PointToRowCol, .-PointToRowCol
.ident "GCC: (GNU) 4.9.0 20130418 (experimental) [trunk revision
198052]"
.section .note.GNU-stack,"",@progbits
for this test case:
typedef char Boolean;
typedef struct {
int width;
} SbInfo;
struct _vtwin {
int f_width;
int f_height;
SbInfo sb_info;
};
typedef struct {
int border;
int max_col;
struct _vtwin *whichVwin;
} TScreen;
typedef struct _Misc {
Boolean useRight;
} Misc;
typedef struct _XtermWidgetRec {
TScreen screen;
Misc misc;
} XtermWidgetRec, *XtermWidget;
extern int firstValidRow, lastValidRow;
extern XtermWidget term;
void
PointToRowCol(int y, int x, int *r, int *c)
{
TScreen *screen = &term->screen;
int row, col;
row = (y - screen->border) / screen->whichVwin->f_height;
if (row < firstValidRow)
row = firstValidRow;
else if (row > lastValidRow)
row = lastValidRow;
col = (x - (((term->misc.useRight) ? 0 : screen->whichVwin->sb_info.width) +
screen->border) ) / screen->whichVwin->f_width;
if (col < 0)
col = 0;
else if (col > screen->max_col + 1)
col = screen->max_col + 1;
*r = row;
*c = col;
}
with options: "-mcpu=v8 -m32 -O2".
^ permalink raw reply [flat|nested] 2+ messages in thread
* [Bug rtl-optimization/24209] strange instruction selected for an annuled delay slot
2005-10-05 5:12 [Bug rtl-optimization/24209] New: strange instruction selected for an annuled slot on sparc dann at godzilla dot ics dot uci dot edu
@ 2005-10-05 11:06 ` ebotcazou at gcc dot gnu dot org
0 siblings, 0 replies; 2+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2005-10-05 11:06 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from ebotcazou at gcc dot gnu dot org 2005-10-05 11:06 -------
Looks indeed weird.
--
ebotcazou at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ebotcazou at gcc dot gnu dot
| |org
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
GCC target triplet|sparc-sun-solaris2.8 |sparc-*-*
Last reconfirmed|0000-00-00 00:00:00 |2005-10-05 11:06:49
date| |
Summary|strange instruction selected|strange instruction selected
|for an annuled slot on sparc|for an annuled delay slot
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24209
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-04-18 21:06 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <bug-24209-4@http.gcc.gnu.org/bugzilla/>
2013-04-18 21:06 ` [Bug rtl-optimization/24209] strange instruction selected for an annuled delay slot steven at gcc dot gnu.org
2005-10-05 5:12 [Bug rtl-optimization/24209] New: strange instruction selected for an annuled slot on sparc dann at godzilla dot ics dot uci dot edu
2005-10-05 11:06 ` [Bug rtl-optimization/24209] strange instruction selected for an annuled delay slot ebotcazou at gcc dot gnu dot org
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).