diff options
author | Roland Levillain <rpl@google.com> | 2015-04-13 17:00:20 +0100 |
---|---|---|
committer | Roland Levillain <rpl@google.com> | 2015-04-13 17:00:20 +0100 |
commit | 0a18601f141d864a26d4b74ff5613e69ae411483 (patch) | |
tree | f8f716fe135199e620c552244a867a8c2a6f7be9 /compiler/utils/x86/assembler_x86.cc | |
parent | 9134a1a405d471b0dfbf299ab0d4c2d629778632 (diff) | |
download | art-0a18601f141d864a26d4b74ff5613e69ae411483.tar.gz art-0a18601f141d864a26d4b74ff5613e69ae411483.tar.bz2 art-0a18601f141d864a26d4b74ff5613e69ae411483.zip |
Exercise the x86 and x86-64 FILD and FISTP instructions.
- Ensure the double- and quadword x87 (FPU) instructions for
integer loading (resp. fildl and fildll) are properly
generated by the x86 and x86-64 generators (resp.
X86Assembler::filds/X86_64Assembler::filds and
X86Assembler::fildl/X86_64Assembler::fildl).
- Ensure the double- and quadword x87 (FPU) instructions for
integer storing & popping (resp. filstpl and fistpll) are
properly generated by the x86 and x86-64 generators (resp.
X86Assembler::fistps/X86_64Assembler::fistps and
X86Assembler::fistpl/X86_64Assembler::fistpl).
These instructions can be used in the implementation of the
long-to-float and long-to-double Dex type conversions.
Change-Id: Iade52a9aee326d189d77d3dbd352a2b5dab52e46
Diffstat (limited to 'compiler/utils/x86/assembler_x86.cc')
-rw-r--r-- | compiler/utils/x86/assembler_x86.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/compiler/utils/x86/assembler_x86.cc b/compiler/utils/x86/assembler_x86.cc index 51cc7acbd0..329698ce1e 100644 --- a/compiler/utils/x86/assembler_x86.cc +++ b/compiler/utils/x86/assembler_x86.cc @@ -883,6 +883,13 @@ void X86Assembler::fildl(const Address& src) { } +void X86Assembler::filds(const Address& src) { + AssemblerBuffer::EnsureCapacity ensured(&buffer_); + EmitUint8(0xDB); + EmitOperand(0, src); +} + + void X86Assembler::fincstp() { AssemblerBuffer::EnsureCapacity ensured(&buffer_); EmitUint8(0xD9); |