From 09ed1a3125849ec6ac07cb886e3c502e1dcfada2 Mon Sep 17 00:00:00 2001 From: Mark Mendell Date: Wed, 25 Mar 2015 08:30:06 -0400 Subject: [optimizing] Implement X86 intrinsic support Implement the supported intrinsics for X86. Enhance the graph visualizer to print for unallocated locations, to allow calling the graph dumper from within register allocation for debugging purposes. Change-Id: I3b0319eb70a9a4ea228f67065b4c52d13a1ae775 Signed-off-by: Mark Mendell --- compiler/utils/x86/assembler_x86.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'compiler/utils/x86/assembler_x86.h') 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); -- cgit v1.2.3-59-g8ed1b