mirror of https://gitee.com/openkylin/qemu.git
cirrus: avoid write only variables
Compiling with GCC 4.6.0 20100925 produced a lot of warnings like: In file included from /src/qemu/hw/cirrus_vga_rop.h:174:0, from /src/qemu/hw/cirrus_vga.c:284: /src/qemu/hw/cirrus_vga_rop2.h: In function 'cirrus_patternfill_0_8': /src/qemu/hw/cirrus_vga_rop2.h:48:18: error: variable 'col' set but not used [-Werror=unused-but-set-variable] /src/qemu/hw/cirrus_vga_rop2.h: In function 'cirrus_colorexpand_transp_0_8': /src/qemu/hw/cirrus_vga_rop2.h:104:18: error: variable 'col' set but not used [-Werror=unused-but-set-variable] Fix the warnings by introducing an inline function, which avoids exposing write-only variables. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
parent
83e3f76c25
commit
8c78881f48
|
@ -280,63 +280,63 @@ static void cirrus_bitblt_fill_nop(CirrusVGAState *s,
|
|||
}
|
||||
|
||||
#define ROP_NAME 0
|
||||
#define ROP_OP(d, s) d = 0
|
||||
#define ROP_FN(d, s) 0
|
||||
#include "cirrus_vga_rop.h"
|
||||
|
||||
#define ROP_NAME src_and_dst
|
||||
#define ROP_OP(d, s) d = (s) & (d)
|
||||
#define ROP_FN(d, s) (s) & (d)
|
||||
#include "cirrus_vga_rop.h"
|
||||
|
||||
#define ROP_NAME src_and_notdst
|
||||
#define ROP_OP(d, s) d = (s) & (~(d))
|
||||
#define ROP_FN(d, s) (s) & (~(d))
|
||||
#include "cirrus_vga_rop.h"
|
||||
|
||||
#define ROP_NAME notdst
|
||||
#define ROP_OP(d, s) d = ~(d)
|
||||
#define ROP_FN(d, s) ~(d)
|
||||
#include "cirrus_vga_rop.h"
|
||||
|
||||
#define ROP_NAME src
|
||||
#define ROP_OP(d, s) d = s
|
||||
#define ROP_FN(d, s) s
|
||||
#include "cirrus_vga_rop.h"
|
||||
|
||||
#define ROP_NAME 1
|
||||
#define ROP_OP(d, s) d = ~0
|
||||
#define ROP_FN(d, s) ~0
|
||||
#include "cirrus_vga_rop.h"
|
||||
|
||||
#define ROP_NAME notsrc_and_dst
|
||||
#define ROP_OP(d, s) d = (~(s)) & (d)
|
||||
#define ROP_FN(d, s) (~(s)) & (d)
|
||||
#include "cirrus_vga_rop.h"
|
||||
|
||||
#define ROP_NAME src_xor_dst
|
||||
#define ROP_OP(d, s) d = (s) ^ (d)
|
||||
#define ROP_FN(d, s) (s) ^ (d)
|
||||
#include "cirrus_vga_rop.h"
|
||||
|
||||
#define ROP_NAME src_or_dst
|
||||
#define ROP_OP(d, s) d = (s) | (d)
|
||||
#define ROP_FN(d, s) (s) | (d)
|
||||
#include "cirrus_vga_rop.h"
|
||||
|
||||
#define ROP_NAME notsrc_or_notdst
|
||||
#define ROP_OP(d, s) d = (~(s)) | (~(d))
|
||||
#define ROP_FN(d, s) (~(s)) | (~(d))
|
||||
#include "cirrus_vga_rop.h"
|
||||
|
||||
#define ROP_NAME src_notxor_dst
|
||||
#define ROP_OP(d, s) d = ~((s) ^ (d))
|
||||
#define ROP_FN(d, s) ~((s) ^ (d))
|
||||
#include "cirrus_vga_rop.h"
|
||||
|
||||
#define ROP_NAME src_or_notdst
|
||||
#define ROP_OP(d, s) d = (s) | (~(d))
|
||||
#define ROP_FN(d, s) (s) | (~(d))
|
||||
#include "cirrus_vga_rop.h"
|
||||
|
||||
#define ROP_NAME notsrc
|
||||
#define ROP_OP(d, s) d = (~(s))
|
||||
#define ROP_FN(d, s) (~(s))
|
||||
#include "cirrus_vga_rop.h"
|
||||
|
||||
#define ROP_NAME notsrc_or_dst
|
||||
#define ROP_OP(d, s) d = (~(s)) | (d)
|
||||
#define ROP_FN(d, s) (~(s)) | (d)
|
||||
#include "cirrus_vga_rop.h"
|
||||
|
||||
#define ROP_NAME notsrc_and_notdst
|
||||
#define ROP_OP(d, s) d = (~(s)) & (~(d))
|
||||
#define ROP_FN(d, s) (~(s)) & (~(d))
|
||||
#include "cirrus_vga_rop.h"
|
||||
|
||||
static const cirrus_bitblt_rop_t cirrus_fwd_rop[16] = {
|
||||
|
|
|
@ -22,6 +22,26 @@
|
|||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
static inline void glue(rop_8_,ROP_NAME)(uint8_t *dst, uint8_t src)
|
||||
{
|
||||
*dst = ROP_FN(*dst, src);
|
||||
}
|
||||
|
||||
static inline void glue(rop_16_,ROP_NAME)(uint16_t *dst, uint16_t src)
|
||||
{
|
||||
*dst = ROP_FN(*dst, src);
|
||||
}
|
||||
|
||||
static inline void glue(rop_32_,ROP_NAME)(uint32_t *dst, uint32_t src)
|
||||
{
|
||||
*dst = ROP_FN(*dst, src);
|
||||
}
|
||||
|
||||
#define ROP_OP(d, s) glue(rop_8_,ROP_NAME)(d, s)
|
||||
#define ROP_OP_16(d, s) glue(rop_16_,ROP_NAME)(d, s)
|
||||
#define ROP_OP_32(d, s) glue(rop_32_,ROP_NAME)(d, s)
|
||||
#undef ROP_FN
|
||||
|
||||
static void
|
||||
glue(cirrus_bitblt_rop_fwd_, ROP_NAME)(CirrusVGAState *s,
|
||||
uint8_t *dst,const uint8_t *src,
|
||||
|
@ -39,7 +59,7 @@ glue(cirrus_bitblt_rop_fwd_, ROP_NAME)(CirrusVGAState *s,
|
|||
|
||||
for (y = 0; y < bltheight; y++) {
|
||||
for (x = 0; x < bltwidth; x++) {
|
||||
ROP_OP(*dst, *src);
|
||||
ROP_OP(dst, *src);
|
||||
dst++;
|
||||
src++;
|
||||
}
|
||||
|
@ -59,7 +79,7 @@ glue(cirrus_bitblt_rop_bkwd_, ROP_NAME)(CirrusVGAState *s,
|
|||
srcpitch += bltwidth;
|
||||
for (y = 0; y < bltheight; y++) {
|
||||
for (x = 0; x < bltwidth; x++) {
|
||||
ROP_OP(*dst, *src);
|
||||
ROP_OP(dst, *src);
|
||||
dst--;
|
||||
src--;
|
||||
}
|
||||
|
@ -81,7 +101,7 @@ glue(glue(cirrus_bitblt_rop_fwd_transp_, ROP_NAME),_8)(CirrusVGAState *s,
|
|||
for (y = 0; y < bltheight; y++) {
|
||||
for (x = 0; x < bltwidth; x++) {
|
||||
p = *dst;
|
||||
ROP_OP(p, *src);
|
||||
ROP_OP(&p, *src);
|
||||
if (p != s->vga.gr[0x34]) *dst = p;
|
||||
dst++;
|
||||
src++;
|
||||
|
@ -104,7 +124,7 @@ glue(glue(cirrus_bitblt_rop_bkwd_transp_, ROP_NAME),_8)(CirrusVGAState *s,
|
|||
for (y = 0; y < bltheight; y++) {
|
||||
for (x = 0; x < bltwidth; x++) {
|
||||
p = *dst;
|
||||
ROP_OP(p, *src);
|
||||
ROP_OP(&p, *src);
|
||||
if (p != s->vga.gr[0x34]) *dst = p;
|
||||
dst--;
|
||||
src--;
|
||||
|
@ -128,8 +148,8 @@ glue(glue(cirrus_bitblt_rop_fwd_transp_, ROP_NAME),_16)(CirrusVGAState *s,
|
|||
for (x = 0; x < bltwidth; x+=2) {
|
||||
p1 = *dst;
|
||||
p2 = *(dst+1);
|
||||
ROP_OP(p1, *src);
|
||||
ROP_OP(p2, *(src+1));
|
||||
ROP_OP(&p1, *src);
|
||||
ROP_OP(&p2, *(src + 1));
|
||||
if ((p1 != s->vga.gr[0x34]) || (p2 != s->vga.gr[0x35])) {
|
||||
*dst = p1;
|
||||
*(dst+1) = p2;
|
||||
|
@ -156,8 +176,8 @@ glue(glue(cirrus_bitblt_rop_bkwd_transp_, ROP_NAME),_16)(CirrusVGAState *s,
|
|||
for (x = 0; x < bltwidth; x+=2) {
|
||||
p1 = *(dst-1);
|
||||
p2 = *dst;
|
||||
ROP_OP(p1, *(src-1));
|
||||
ROP_OP(p2, *src);
|
||||
ROP_OP(&p1, *(src - 1));
|
||||
ROP_OP(&p2, *src);
|
||||
if ((p1 != s->vga.gr[0x34]) || (p2 != s->vga.gr[0x35])) {
|
||||
*(dst-1) = p1;
|
||||
*dst = p2;
|
||||
|
@ -184,3 +204,5 @@ glue(glue(cirrus_bitblt_rop_bkwd_transp_, ROP_NAME),_16)(CirrusVGAState *s,
|
|||
|
||||
#undef ROP_NAME
|
||||
#undef ROP_OP
|
||||
#undef ROP_OP_16
|
||||
#undef ROP_OP_32
|
||||
|
|
|
@ -23,15 +23,15 @@
|
|||
*/
|
||||
|
||||
#if DEPTH == 8
|
||||
#define PUTPIXEL() ROP_OP(d[0], col)
|
||||
#define PUTPIXEL() ROP_OP(&d[0], col)
|
||||
#elif DEPTH == 16
|
||||
#define PUTPIXEL() ROP_OP(((uint16_t *)d)[0], col);
|
||||
#define PUTPIXEL() ROP_OP_16((uint16_t *)&d[0], col)
|
||||
#elif DEPTH == 24
|
||||
#define PUTPIXEL() ROP_OP(d[0], col); \
|
||||
ROP_OP(d[1], (col >> 8)); \
|
||||
ROP_OP(d[2], (col >> 16))
|
||||
#define PUTPIXEL() ROP_OP(&d[0], col); \
|
||||
ROP_OP(&d[1], (col >> 8)); \
|
||||
ROP_OP(&d[2], (col >> 16))
|
||||
#elif DEPTH == 32
|
||||
#define PUTPIXEL() ROP_OP(((uint32_t *)d)[0], col)
|
||||
#define PUTPIXEL() ROP_OP_32(((uint32_t *)&d[0]), col)
|
||||
#else
|
||||
#error unsupported DEPTH
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue