summaryrefslogtreecommitdiffstats
path: root/compiler/utils/assembler.cc
diff options
context:
space:
mode:
authorDmitry Petrochenko <dmitry.petrochenko@intel.com>2014-03-21 11:21:37 +0700
committerDmitry Petrochenko <dmitry.petrochenko@intel.com>2014-03-28 13:55:19 +0700
commitfca82208f7128fcda09b6a4743199308332558a2 (patch)
tree8bed3f2fd50773003647daba43570335a74b5c90 /compiler/utils/assembler.cc
parentad174d1b54bf2fa477bec71a0ca93595f54b8fe9 (diff)
downloadart-fca82208f7128fcda09b6a4743199308332558a2.tar.gz
art-fca82208f7128fcda09b6a4743199308332558a2.tar.bz2
art-fca82208f7128fcda09b6a4743199308332558a2.zip
x86_64: JNI compiler
Passed all tests from jni_compiler_test and art/test on host with jni_copiler. Incoming argument spill is enabled, entry_spills refactored. Now each entry spill contains data type size (4 or 8) and offset which should be used for spill. Assembler REX support implemented in opcodes used in JNI compiler. Please note, JNI compiler is not enabled by default yet (see compiler_driver.cc:1875). Change-Id: I5fd19cca72122b197aec07c3708b1e80c324be44 Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
Diffstat (limited to 'compiler/utils/assembler.cc')
-rw-r--r--compiler/utils/assembler.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/compiler/utils/assembler.cc b/compiler/utils/assembler.cc
index a7cb2784a..1921b2823 100644
--- a/compiler/utils/assembler.cc
+++ b/compiler/utils/assembler.cc
@@ -23,6 +23,7 @@
#include "arm64/assembler_arm64.h"
#include "mips/assembler_mips.h"
#include "x86/assembler_x86.h"
+#include "x86_64/assembler_x86_64.h"
#include "globals.h"
#include "memory_region.h"
@@ -111,9 +112,10 @@ Assembler* Assembler::Create(InstructionSet instruction_set) {
return new arm64::Arm64Assembler();
case kMips:
return new mips::MipsAssembler();
- case kX86: // Fall-through.
- case kX86_64:
+ case kX86:
return new x86::X86Assembler();
+ case kX86_64:
+ return new x86_64::X86_64Assembler();
default:
LOG(FATAL) << "Unknown InstructionSet: " << instruction_set;
return NULL;