diff mbox

[3/7] tcg-i386: Implement movcond

Message ID 20120925224841.GJ23819@ohm.aurel32.net
State New
Headers show

Commit Message

Aurelien Jarno Sept. 25, 2012, 10:48 p.m. UTC
On Mon, Sep 24, 2012 at 02:54:27PM -0700, Richard Henderson wrote:
> On 09/24/2012 02:37 PM, Alex Barcelo wrote:
> > just finished a git-bisect and I found this... and now I do not fully
> > understand why I have the problem.
> > 
> > To replicate the error (in a i386 machine, at least):
> > $ make clean && ./configure --enable-debug && make -j && make install
> > [Note: I tried both ppc and i386 targets, so doesn't seem machine-dependent]
> > $ ./path/to/qemu/bin/qemu-i386 doesntmatter
> > Invalid op definition for movcond_i32
> > /mnt/DATA/DARCO/qemu-git/tcg/tcg.c:1170: tcg fatal error
> > Aborted
> 
> Ah, right.  I only tried with -march=i686.
> 
> >> +    { INDEX_op_movcond_i32, { "r", "r", "ri", "r", "0" } },
> 
> Should be protected by 
> 
> #if TCG_TARGET_HAS_movcond_i32
> 
> If no one beats me to this, I'll submit a patch this evening.
> 
> 

I have applied the following patch to fix the issue.


commit f813cb838f19ee8637d3c365659e6a6bb0c9c974
Author: Aurelien Jarno <aurelien@aurel32.net>
Date:   Wed Sep 26 00:30:12 2012 +0200

    tcg/i386: fix build with -march < i686
    
    The movcond_i32 op has to be protected with TCG_TARGET_HAS_movcond_i32
    to fix the build with -march < i686.
    
    Thanks to Richard Henderson for the hint.
    
    Reported-by: Alex Barcelo <abarcelo@ac.upc.edu>
    Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
diff mbox

Patch

diff --git a/tcg/i386/tcg-target.c b/tcg/i386/tcg-target.c
index 122d636..0e218c8 100644
--- a/tcg/i386/tcg-target.c
+++ b/tcg/i386/tcg-target.c
@@ -1893,7 +1893,9 @@  static const TCGTargetOpDef x86_op_defs[] = {
     { INDEX_op_setcond_i32, { "q", "r", "ri" } },
 
     { INDEX_op_deposit_i32, { "Q", "0", "Q" } },
+#if TCG_TARGET_HAS_movcond_i32
     { INDEX_op_movcond_i32, { "r", "r", "ri", "r", "0" } },
+#endif
 
 #if TCG_TARGET_REG_BITS == 32
     { INDEX_op_mulu2_i32, { "a", "d", "a", "r" } },