qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 1/3] target-m68k: add abcd/sbcd/nbcd


From: Richard Henderson
Subject: Re: [Qemu-devel] [PATCH 1/3] target-m68k: add abcd/sbcd/nbcd
Date: Mon, 31 Oct 2016 06:13:29 -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:
+    tcg_gen_subi_i32(addr_src, addr_src, opsize_bytes(OS_BYTE));
+    src = gen_load(s, OS_BYTE, addr_src, 0);
+
+    addr_dest = tcg_temp_new();
+    if (REG(insn, 0) == REG(insn, 9)) {
+        tcg_gen_mov_i32(addr_dest, addr_src);
+    } else {
+        tcg_gen_mov_i32(addr_dest, AREG(insn, 9));
+    }
+    tcg_gen_subi_i32(addr_dest, addr_dest, opsize_bytes(OS_BYTE));
+    dest = gen_load(s, OS_BYTE, addr_dest, 0);

Write backs before loads.


+    bcd_neg(tmp, src);
+    bcd_add(tmp, dest);

Didn't we simplify the subtraction algorithm to make neg? Why not un-simplify it and let nbcd provide a zero (and then let the tcg optimizer do what it can).


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]