|
From: | Richard Henderson |
Subject: | Re: [Qemu-devel] [PATCH 2/3] target-m68k: implement 680x0 movem |
Date: | Mon, 31 Oct 2016 06:19:43 -0700 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 |
On 10/31/2016 03:20 AM, Laurent Vivier wrote:
+ uint16_t mask2 = mask; + TCGv r[16]; + for (i = 0; i < 16; i++, mask >>= 1) { + if (mask & 1) { + r[i] = gen_load(s, opsize, addr, 1); + tcg_gen_add_i32(addr, addr, incr); + } + } + for (i = 0; i < 16; i++, mask2 >>= 1) { + if (mask2 & 1) { + tcg_gen_mov_i32(mreg(i), r[i]); + tcg_temp_free(r[i]); + } + }
While it's not wrong, why not examine mask non-destructively. if ((mask >> i) & 1) r~
[Prev in Thread] | Current Thread | [Next in Thread] |