From 53c862a88e209ecfb42d47a16ce92f92daf68c0a Mon Sep 17 00:00:00 2001 From: bellard Date: Mon, 21 Jun 2004 16:56:45 +0000 Subject: [PATCH] endianness fixes git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@958 c046a42c-6fe2-441c-8c8c-71466251a162 --- hw/vga_template.h | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/hw/vga_template.h b/hw/vga_template.h index 349d588586..51302b3495 100644 --- a/hw/vga_template.h +++ b/hw/vga_template.h @@ -346,7 +346,7 @@ static void glue(vga_draw_line8_, DEPTH)(VGAState *s1, uint8_t *d, static void glue(vga_draw_line15_, DEPTH)(VGAState *s1, uint8_t *d, const uint8_t *s, int width) { -#if DEPTH == 15 && !defined(WORDS_BIGENDIAN) +#if DEPTH == 15 && defined(WORDS_BIGENDIAN) == defined(TARGET_WORDS_BIGENDIAN) memcpy(d, s, width * 2); #else int w; @@ -371,7 +371,7 @@ static void glue(vga_draw_line15_, DEPTH)(VGAState *s1, uint8_t *d, static void glue(vga_draw_line16_, DEPTH)(VGAState *s1, uint8_t *d, const uint8_t *s, int width) { -#if DEPTH == 16 && !defined(WORDS_BIGENDIAN) +#if DEPTH == 16 && defined(WORDS_BIGENDIAN) == defined(TARGET_WORDS_BIGENDIAN) memcpy(d, s, width * 2); #else int w; @@ -401,9 +401,15 @@ static void glue(vga_draw_line24_, DEPTH)(VGAState *s1, uint8_t *d, w = width; do { +#if defined(TARGET_WORDS_BIGENDIAN) + r = s[0]; + g = s[1]; + b = s[2]; +#else b = s[0]; g = s[1]; r = s[2]; +#endif ((PIXEL_TYPE *)d)[0] = glue(rgb_to_pixel, DEPTH)(r, g, b); s += 3; d += BPP; @@ -416,7 +422,7 @@ static void glue(vga_draw_line24_, DEPTH)(VGAState *s1, uint8_t *d, static void glue(vga_draw_line32_, DEPTH)(VGAState *s1, uint8_t *d, const uint8_t *s, int width) { -#if DEPTH == 32 && !defined(WORDS_BIGENDIAN) +#if DEPTH == 32 && defined(WORDS_BIGENDIAN) == defined(TARGET_WORDS_BIGENDIAN) memcpy(d, s, width * 4); #else int w; @@ -424,9 +430,15 @@ static void glue(vga_draw_line32_, DEPTH)(VGAState *s1, uint8_t *d, w = width; do { +#if defined(TARGET_WORDS_BIGENDIAN) + r = s[1]; + g = s[2]; + b = s[3]; +#else b = s[0]; g = s[1]; r = s[2]; +#endif ((PIXEL_TYPE *)d)[0] = glue(rgb_to_pixel, DEPTH)(r, g, b); s += 4; d += BPP; -- 2.11.0