Support for cross compilation.
Refactor architecture specific files into arm and x86 name spaces. Make
assemblers and calling conventions use the factory pattern and an
instruction set specifier.
Change-Id: I20cd7aecacc1ae3d418221d98bbe1d69be9162a7
diff --git a/src/assembler.cc b/src/assembler.cc
index 9e67f12..4ab882e 100644
--- a/src/assembler.cc
+++ b/src/assembler.cc
@@ -1,8 +1,12 @@
// Copyright 2011 Google Inc. All Rights Reserved.
+#include "assembler.h"
+
#include <algorithm>
#include <vector>
-#include "assembler.h"
+
+#include "assembler_arm.h"
+#include "assembler_x86.h"
#include "globals.h"
#include "memory_region.h"
@@ -118,4 +122,14 @@
CHECK_EQ(Size(), old_size);
}
+
+Assembler* Assembler::Create(InstructionSet instruction_set) {
+ if (instruction_set == kX86) {
+ return new x86::X86Assembler();
+ } else {
+ CHECK(instruction_set == kArm || instruction_set == kThumb2);
+ return new arm::ArmAssembler();
+ }
+}
+
} // namespace art