Skip to content

Commit

Permalink
sm501: Clean up local variables in sm501_2d_operation
Browse files Browse the repository at this point in the history
Make variables local to the block they are used in to make it clearer
which operation they are needed for.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: ae59f8138afe7f6a5a4a82539d0f61496a906b06.1590089984.git.balaton@eik.bme.hu
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
  • Loading branch information
zbalaton authored and kraxel committed May 28, 2020
1 parent 2824809 commit 3d0b096
Showing 1 changed file with 16 additions and 15 deletions.
31 changes: 16 additions & 15 deletions hw/display/sm501.c
Expand Up @@ -699,28 +699,19 @@ static inline void hwc_invalidate(SM501State *s, int crt)

static void sm501_2d_operation(SM501State *s)
{
/* obtain operation parameters */
int cmd = (s->twoD_control >> 16) & 0x1F;
int rtl = s->twoD_control & BIT(27);
int src_x = (s->twoD_source >> 16) & 0x01FFF;
int src_y = s->twoD_source & 0xFFFF;
int dst_x = (s->twoD_destination >> 16) & 0x01FFF;
int dst_y = s->twoD_destination & 0xFFFF;
int width = (s->twoD_dimension >> 16) & 0x1FFF;
int height = s->twoD_dimension & 0xFFFF;
uint32_t color = s->twoD_foreground;
int format = (s->twoD_stretch >> 20) & 0x3;
int rop_mode = (s->twoD_control >> 15) & 0x1; /* 1 for rop2, else rop3 */
/* 1 if rop2 source is the pattern, otherwise the source is the bitmap */
int rop2_source_is_pattern = (s->twoD_control >> 14) & 0x1;
int rop = s->twoD_control & 0xFF;
uint32_t src_base = s->twoD_source_base & 0x03FFFFFF;
int dst_x = (s->twoD_destination >> 16) & 0x01FFF;
int dst_y = s->twoD_destination & 0xFFFF;
int width = (s->twoD_dimension >> 16) & 0x1FFF;
int height = s->twoD_dimension & 0xFFFF;
uint32_t dst_base = s->twoD_destination_base & 0x03FFFFFF;

/* get frame buffer info */
uint8_t *src = s->local_mem + src_base;
uint8_t *dst = s->local_mem + dst_base;
int src_pitch = s->twoD_pitch & 0x1FFF;
int dst_pitch = (s->twoD_pitch >> 16) & 0x1FFF;
int crt = (s->dc_crt_control & SM501_DC_CRT_CONTROL_SEL) ? 1 : 0;
int fb_len = get_width(s, crt) * get_height(s, crt) * get_bpp(s, crt);
Expand Down Expand Up @@ -758,6 +749,13 @@ static void sm501_2d_operation(SM501State *s)

switch (cmd) {
case 0x00: /* copy area */
{
int src_x = (s->twoD_source >> 16) & 0x01FFF;
int src_y = s->twoD_source & 0xFFFF;
uint32_t src_base = s->twoD_source_base & 0x03FFFFFF;
uint8_t *src = s->local_mem + src_base;
int src_pitch = s->twoD_pitch & 0x1FFF;

#define COPY_AREA(_bpp, _pixel_type, rtl) { \
int y, x, index_d, index_s; \
for (y = 0; y < height; y++) { \
Expand Down Expand Up @@ -793,8 +791,11 @@ static void sm501_2d_operation(SM501State *s)
break;
}
break;

}
case 0x01: /* fill rectangle */
{
uint32_t color = s->twoD_foreground;

#define FILL_RECT(_bpp, _pixel_type) { \
int y, x; \
for (y = 0; y < height; y++) { \
Expand All @@ -819,7 +820,7 @@ static void sm501_2d_operation(SM501State *s)
break;
}
break;

}
default:
qemu_log_mask(LOG_UNIMP, "sm501: not implemented 2D operation: %d\n",
cmd);
Expand Down

0 comments on commit 3d0b096

Please sign in to comment.