Commit b8ed223bfe3b1af434adce07b2981ce8b5b9ecb4
1 parent
c970a162
big endian fixes
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@437 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
15 additions
and
19 deletions
hw/vga.c
@@ -141,12 +141,24 @@ static const uint8_t gr_mask[16] = { | @@ -141,12 +141,24 @@ static const uint8_t gr_mask[16] = { | ||
141 | (((uint32_t)(__x) & (uint32_t)0x00ff0000UL) >> 8) | \ | 141 | (((uint32_t)(__x) & (uint32_t)0x00ff0000UL) >> 8) | \ |
142 | (((uint32_t)(__x) & (uint32_t)0xff000000UL) >> 24) )) | 142 | (((uint32_t)(__x) & (uint32_t)0xff000000UL) >> 24) )) |
143 | 143 | ||
144 | -#ifdef WORD_BIGENDIAN | 144 | +#ifdef WORDS_BIGENDIAN |
145 | #define PAT(x) cbswap_32(x) | 145 | #define PAT(x) cbswap_32(x) |
146 | #else | 146 | #else |
147 | #define PAT(x) (x) | 147 | #define PAT(x) (x) |
148 | #endif | 148 | #endif |
149 | 149 | ||
150 | +#ifdef WORDS_BIGENDIAN | ||
151 | +#define BIG 1 | ||
152 | +#else | ||
153 | +#define BIG 0 | ||
154 | +#endif | ||
155 | + | ||
156 | +#ifdef WORDS_BIGENDIAN | ||
157 | +#define GET_PLANE(data, p) (((data) >> (24 - (p) * 8)) & 0xff) | ||
158 | +#else | ||
159 | +#define GET_PLANE(data, p) (((data) >> ((p) * 8)) & 0xff) | ||
160 | +#endif | ||
161 | + | ||
150 | static const uint32_t mask16[16] = { | 162 | static const uint32_t mask16[16] = { |
151 | PAT(0x00000000), | 163 | PAT(0x00000000), |
152 | PAT(0x000000ff), | 164 | PAT(0x000000ff), |
@@ -168,7 +180,7 @@ static const uint32_t mask16[16] = { | @@ -168,7 +180,7 @@ static const uint32_t mask16[16] = { | ||
168 | 180 | ||
169 | #undef PAT | 181 | #undef PAT |
170 | 182 | ||
171 | -#ifdef WORD_BIGENDIAN | 183 | +#ifdef WORDS_BIGENDIAN |
172 | #define PAT(x) (x) | 184 | #define PAT(x) (x) |
173 | #else | 185 | #else |
174 | #define PAT(x) cbswap_32(x) | 186 | #define PAT(x) cbswap_32(x) |
@@ -465,11 +477,7 @@ static uint32_t vga_mem_readb(uint32_t addr) | @@ -465,11 +477,7 @@ static uint32_t vga_mem_readb(uint32_t addr) | ||
465 | if (!(s->gr[5] & 0x08)) { | 477 | if (!(s->gr[5] & 0x08)) { |
466 | /* read mode 0 */ | 478 | /* read mode 0 */ |
467 | plane = s->gr[4]; | 479 | plane = s->gr[4]; |
468 | -#ifdef WORD_BIGENDIAN | ||
469 | - ret = (s->latch >> (24 - (plane * 8))) & 0xff; | ||
470 | -#else | ||
471 | - ret = (s->latch >> (plane * 8)) & 0xff; | ||
472 | -#endif | 480 | + ret = GET_PLANE(s->latch, plane); |
473 | } else { | 481 | } else { |
474 | /* read mode 1 */ | 482 | /* read mode 1 */ |
475 | ret = (s->latch ^ mask16[s->gr[2]]) & mask16[s->gr[7]]; | 483 | ret = (s->latch ^ mask16[s->gr[2]]) & mask16[s->gr[7]]; |
@@ -641,18 +649,6 @@ void vga_mem_writel(uint32_t addr, uint32_t val) | @@ -641,18 +649,6 @@ void vga_mem_writel(uint32_t addr, uint32_t val) | ||
641 | vga_mem_writeb(addr + 3, (val >> 24) & 0xff); | 649 | vga_mem_writeb(addr + 3, (val >> 24) & 0xff); |
642 | } | 650 | } |
643 | 651 | ||
644 | -#ifdef WORD_BIGENDIAN | ||
645 | -#define BIG 1 | ||
646 | -#else | ||
647 | -#define BIG 0 | ||
648 | -#endif | ||
649 | - | ||
650 | -#ifdef WORDS_BIGENDIAN | ||
651 | -#define GET_PLANE(data, p) (((data) >> (24 - (p) * 8)) & 0xff) | ||
652 | -#else | ||
653 | -#define GET_PLANE(data, p) (((data) >> ((p) * 8)) & 0xff) | ||
654 | -#endif | ||
655 | - | ||
656 | typedef void vga_draw_glyph8_func(uint8_t *d, int linesize, | 652 | typedef void vga_draw_glyph8_func(uint8_t *d, int linesize, |
657 | const uint8_t *font_ptr, int h, | 653 | const uint8_t *font_ptr, int h, |
658 | uint32_t fgcol, uint32_t bgcol); | 654 | uint32_t fgcol, uint32_t bgcol); |