qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] ba0059: disas/i386.c: disassemble movbe instr


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] ba0059: disas/i386.c: disassemble movbe instruction
Date: Thu, 30 Jan 2014 11:30:05 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: ba00599cc32626b53ba151c627a763518c76c49f
      
https://github.com/qemu/qemu/commit/ba00599cc32626b53ba151c627a763518c76c49f
  Author: Aurelien Jarno <address@hidden>
  Date:   2014-01-25 (Sat, 25 Jan 2014)

  Changed paths:
    M disas/i386.c

  Log Message:
  -----------
  disas/i386.c: disassemble movbe instruction

Signed-off-by: Aurelien Jarno <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: c9d78213b8bf6e0da9ff30b53c33e93fb0373249
      
https://github.com/qemu/qemu/commit/c9d78213b8bf6e0da9ff30b53c33e93fb0373249
  Author: Aurelien Jarno <address@hidden>
  Date:   2014-01-25 (Sat, 25 Jan 2014)

  Changed paths:
    M tcg/i386/tcg-target.c

  Log Message:
  -----------
  tcg/i386: remove hardcoded P_REXW value

P_REXW is defined has a constant at the beginning of i386/tcg-target.c,
but the corresponding bit is later used in a harcoded way, which defeat
the purpose of a constant.

Fix that by using a conditional expression operator instead of a shift.
On x86 this actually makes the code slightly smaller as GCC does in
practice (opc >> 8) & 8 instead of (opc & 0x800) >> 8 so the constants
are smaller to load.

Signed-off-by: Aurelien Jarno <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 2a1137753f9618283ac40394a75976d18f608e39
      
https://github.com/qemu/qemu/commit/2a1137753f9618283ac40394a75976d18f608e39
  Author: Aurelien Jarno <address@hidden>
  Date:   2014-01-25 (Sat, 25 Jan 2014)

  Changed paths:
    M tcg/i386/tcg-target.c

  Log Message:
  -----------
  tcg/i386: add support for three-byte opcodes

Add support for three-byte opcodes, starting with the 0x0f 0x38 prefix.
Use P_EXT38 as the new constant, and shift all other constants so that
P_EXT and P_EXT38 have neighbouring values.

Signed-off-by: Aurelien Jarno <address@hidden>
[RTH: Changed the name from P_EXT2 to P_EXT38.]
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 085bb5bb64069a16b843fca840f91cdfb3f40fda
      
https://github.com/qemu/qemu/commit/085bb5bb64069a16b843fca840f91cdfb3f40fda
  Author: Aurelien Jarno <address@hidden>
  Date:   2014-01-25 (Sat, 25 Jan 2014)

  Changed paths:
    M tcg/i386/tcg-target.c

  Log Message:
  -----------
  tcg/i386: use movbe instruction in qemu_ldst routines

The movbe instruction has been added on some Intel Atom CPUs and on
recent Intel Haswell CPUs. It allows to load/store a value and at the
same time bswap it.

This patch detects the avaibility of this instruction and when available
use it in the qemu load/store routines in replacement of load/store +
bswap. Note that for 16-bit unsigned loads, movbe + movzw is basically the
same as movzw + bswap, so the patch doesn't touch this case.

Signed-off-by: Aurelien Jarno <address@hidden>
[RTH: Reduced the number of conditionals using "movop".]
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 2d23d5edb5b23849c668dd729e4da7b2c63b163b
      
https://github.com/qemu/qemu/commit/2d23d5edb5b23849c668dd729e4da7b2c63b163b
  Author: Aurelien Jarno <address@hidden>
  Date:   2014-01-25 (Sat, 25 Jan 2014)

  Changed paths:
    M tcg/i386/tcg-target.c

  Log Message:
  -----------
  tcg/i386: cleanup useless #ifdef

TCG_TARGET_HAS_movcond_i32 is always defined to 1 in tcg-target.h, so
remove the corresponding #ifdef #endif sequence, left from a previous
refactoring.

Signed-off-by: Aurelien Jarno <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: dc08f85188b5976d93bff25ab9e68cf3ce62b12f
      
https://github.com/qemu/qemu/commit/dc08f85188b5976d93bff25ab9e68cf3ce62b12f
  Author: Peter Maydell <address@hidden>
  Date:   2014-01-30 (Thu, 30 Jan 2014)

  Changed paths:
    M disas/i386.c
    M tcg/i386/tcg-target.c

  Log Message:
  -----------
  Merge remote-tracking branch 'rth/tcg-movbe' into staging

* rth/tcg-movbe:
  tcg/i386: cleanup useless #ifdef
  tcg/i386: use movbe instruction in qemu_ldst routines
  tcg/i386: add support for three-byte opcodes
  tcg/i386: remove hardcoded P_REXW value
  disas/i386.c: disassemble movbe instruction

Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/0706f7c85b3c...dc08f85188b5

reply via email to

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