summaryrefslogtreecommitdiffstats
path: root/compiler/utils/x86/assembler_x86.cc
diff options
context:
space:
mode:
authorCalin Juravle <calin@google.com>2014-11-25 20:56:51 +0000
committerCalin Juravle <calin@google.com>2014-11-26 10:59:15 +0000
commitcea28ec4b9e94ec942899acf1dbf20f8999b36b4 (patch)
tree893c062f6792688671519989a78065ecc7e79de9 /compiler/utils/x86/assembler_x86.cc
parentf0c001465371279355eeb7633b67ffcc6f6738e5 (diff)
downloadart-cea28ec4b9e94ec942899acf1dbf20f8999b36b4.tar.gz
art-cea28ec4b9e94ec942899acf1dbf20f8999b36b4.tar.bz2
art-cea28ec4b9e94ec942899acf1dbf20f8999b36b4.zip
[optimizing compiler] Add CMP{L,G}_{FLOAT,DOUBLE}
- adds float comparison for arm, x86, x86_64 backends. - adds ucomis{s,d} assembly to x86 and x86_64. Change-Id: Ie91e04bfb402025073054f3803a3a569e4705caa
Diffstat (limited to 'compiler/utils/x86/assembler_x86.cc')
-rw-r--r--compiler/utils/x86/assembler_x86.cc17
1 files changed, 17 insertions, 0 deletions
diff --git a/compiler/utils/x86/assembler_x86.cc b/compiler/utils/x86/assembler_x86.cc
index a297ea3b6e..b118f9a81a 100644
--- a/compiler/utils/x86/assembler_x86.cc
+++ b/compiler/utils/x86/assembler_x86.cc
@@ -613,6 +613,23 @@ void X86Assembler::comisd(XmmRegister a, XmmRegister b) {
}
+void X86Assembler::ucomiss(XmmRegister a, XmmRegister b) {
+ AssemblerBuffer::EnsureCapacity ensured(&buffer_);
+ EmitUint8(0x0F);
+ EmitUint8(0x2E);
+ EmitXmmRegisterOperand(a, b);
+}
+
+
+void X86Assembler::ucomisd(XmmRegister a, XmmRegister b) {
+ AssemblerBuffer::EnsureCapacity ensured(&buffer_);
+ EmitUint8(0x66);
+ EmitUint8(0x0F);
+ EmitUint8(0x2E);
+ EmitXmmRegisterOperand(a, b);
+}
+
+
void X86Assembler::sqrtsd(XmmRegister dst, XmmRegister src) {
AssemblerBuffer::EnsureCapacity ensured(&buffer_);
EmitUint8(0xF2);