|
| 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] |