diff options
author | Mark Mendell <mark.p.mendell@intel.com> | 2015-03-25 08:30:06 -0400 |
---|---|---|
committer | Mark Mendell <mark.p.mendell@intel.com> | 2015-03-26 21:28:33 -0400 |
commit | 09ed1a3125849ec6ac07cb886e3c502e1dcfada2 (patch) | |
tree | d86be714298806cfcd6a16be674573369474e8f7 /compiler/utils/x86/assembler_x86.h | |
parent | 03910065cd025ecb07781b85c2240be69c202d75 (diff) | |
download | android_art-09ed1a3125849ec6ac07cb886e3c502e1dcfada2.tar.gz android_art-09ed1a3125849ec6ac07cb886e3c502e1dcfada2.tar.bz2 android_art-09ed1a3125849ec6ac07cb886e3c502e1dcfada2.zip |
[optimizing] Implement X86 intrinsic support
Implement the supported intrinsics for X86.
Enhance the graph visualizer to print <U> for unallocated locations, to
allow calling the graph dumper from within register allocation for
debugging purposes.
Change-Id: I3b0319eb70a9a4ea228f67065b4c52d13a1ae775
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Diffstat (limited to 'compiler/utils/x86/assembler_x86.h')
-rw-r--r-- | compiler/utils/x86/assembler_x86.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/compiler/utils/x86/assembler_x86.h b/compiler/utils/x86/assembler_x86.h index 4d20db03a9..6ccf2e365d 100644 --- a/compiler/utils/x86/assembler_x86.h +++ b/compiler/utils/x86/assembler_x86.h @@ -231,6 +231,8 @@ class X86Assembler FINAL : public Assembler { void movl(const Address& dst, const Immediate& imm); void movl(const Address& dst, Label* lbl); + void bswapl(Register dst); + void movzxb(Register dst, ByteRegister src); void movzxb(Register dst, const Address& src); void movsxb(Register dst, ByteRegister src); @@ -318,7 +320,13 @@ class X86Assembler FINAL : public Assembler { void xorps(XmmRegister dst, const Address& src); void xorps(XmmRegister dst, XmmRegister src); + void andpd(XmmRegister dst, XmmRegister src); void andpd(XmmRegister dst, const Address& src); + void andps(XmmRegister dst, XmmRegister src); + void andps(XmmRegister dst, const Address& src); + + void orpd(XmmRegister dst, XmmRegister src); + void orps(XmmRegister dst, XmmRegister src); void flds(const Address& src); void fstps(const Address& dst); @@ -389,6 +397,7 @@ class X86Assembler FINAL : public Assembler { void subl(Register dst, Register src); void subl(Register reg, const Immediate& imm); void subl(Register reg, const Address& address); + void subl(const Address& address, Register src); void cdq(); @@ -407,6 +416,7 @@ class X86Assembler FINAL : public Assembler { void sbbl(Register dst, Register src); void sbbl(Register reg, const Immediate& imm); void sbbl(Register reg, const Address& address); + void sbbl(const Address& address, Register src); void incl(Register reg); void incl(const Address& address); |