diff options
author | Richard Henderson <rth@twiddle.net> | 2013-09-04 08:51:07 -0700 |
---|---|---|
committer | Richard Henderson <rth@twiddle.net> | 2013-10-12 16:19:19 -0700 |
commit | b3e2bc500f5fe09763a107e2e28cb0e2d39ffb7c (patch) | |
tree | 46a6479cee93ddd3a821cb52af3f15420dac00bb /tcg/i386/tcg-target.h | |
parent | 7352ee546ce0aba261d0e64595eae6e74e75e49d (diff) |
tcg-i386: Remove "cb" output restriction from qemu_st8 for i386
Once we form a combined qemu_st_i32 opcode, we won't be able to
have separate constraints based on size. This one is fairly easy
to work around, since eax is available as a scratch register.
When storing variable data, this tends to merely exchange one mov
for another. E.g.
-: mov %esi,%ecx
...
-: mov %cl,(%edx)
+: mov %esi,%eax
+: mov %al,(%edx)
Where we do have a regression is when storing constant data, in which
we may load the constant into edi, when only ecx/ebx ought to be used.
The proper way to recover this regression is to allow constants as
arguments to qemu_st_i32, so that we never load the constant data into
a register at all, must less the wrong register. TBD.
Signed-off-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'tcg/i386/tcg-target.h')
0 files changed, 0 insertions, 0 deletions