| /* { dg-do compile { target powerpc*-*-* ia64-*-* i?86-*-* x86_64-*-* } } */ |
| /* { dg-options "-O3 -fselective-scheduling2 -fsel-sched-pipelining" } */ |
| typedef unsigned short int uint16_t; |
| __extension__ typedef __UINTPTR_TYPE__ uintptr_t; |
| typedef struct GFX_VTABLE |
| { |
| int color_depth; |
| unsigned char *line[]; |
| } |
| BITMAP; |
| extern int _drawing_mode; |
| extern BITMAP *_drawing_pattern; |
| extern int _drawing_y_anchor; |
| extern unsigned int _drawing_x_mask; |
| extern unsigned int _drawing_y_mask; |
| extern uintptr_t bmp_write_line (BITMAP *, int); |
| void |
| _linear_hline15 (BITMAP * dst, int dx1, int dy, int dx2, int color) |
| { |
| int w; |
| if (_drawing_mode == 0) |
| { |
| int x, curw; |
| unsigned short *sline = |
| (unsigned short *) (_drawing_pattern-> |
| line[((dy) - |
| _drawing_y_anchor) & _drawing_y_mask]); |
| unsigned short *s; |
| unsigned short *d = |
| ((unsigned short *) (bmp_write_line (dst, dy)) + (dx1)); |
| s = ((unsigned short *) (sline) + (x)); |
| if (_drawing_mode == 2) |
| { |
| } |
| else if (_drawing_mode == 3) |
| { |
| do |
| { |
| w -= curw; |
| do |
| { |
| unsigned long c = (*(s)); |
| if (!((unsigned long) (c) == 0x7C1F)) |
| { |
| (*((uint16_t *) ((uintptr_t) (d))) = ((color))); |
| } |
| ((s)++); |
| } |
| while (--curw > 0); |
| s = sline; |
| curw = |
| (((w) < |
| ((int) _drawing_x_mask + |
| 1)) ? (w) : ((int) _drawing_x_mask + 1)); |
| } |
| while (curw > 0); |
| } |
| } |
| } |