summaryrefslogtreecommitdiffstats
path: root/runtime/arch/instruction_set.cc
diff options
context:
space:
mode:
authorAndreas Gampe <agampe@google.com>2015-01-14 15:45:59 -0800
committerAndreas Gampe <agampe@google.com>2015-01-15 11:32:48 -0800
commit57b34294758e9c00993913ebe43c7ee4698a5cc6 (patch)
tree981821619027686f83fbe00445299b0522f1df05 /runtime/arch/instruction_set.cc
parent4945bfef00ac446d9c5458e55500229d463ab4c3 (diff)
downloadart-57b34294758e9c00993913ebe43c7ee4698a5cc6.zip
art-57b34294758e9c00993913ebe43c7ee4698a5cc6.tar.gz
art-57b34294758e9c00993913ebe43c7ee4698a5cc6.tar.bz2
ART: Allow to compile interpret-only mips64 files
Include enough infrastructure to allow cross-compiling for mips64, interpret-only. This includes the instruction-set-features, frame size info and utils assembler. Also add a disassembler for oatdump, and support in patchoat. Note: the runtime cannot run mips64, yet. Change-Id: Id106581fa76b478984741c62a8a03be0f370d992
Diffstat (limited to 'runtime/arch/instruction_set.cc')
-rw-r--r--runtime/arch/instruction_set.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/runtime/arch/instruction_set.cc b/runtime/arch/instruction_set.cc
index 92fa727..5ab461b 100644
--- a/runtime/arch/instruction_set.cc
+++ b/runtime/arch/instruction_set.cc
@@ -57,7 +57,7 @@ InstructionSet GetInstructionSetFromString(const char* isa_str) {
} else if (strcmp("mips", isa_str) == 0) {
return kMips;
} else if (strcmp("mips64", isa_str) == 0) {
- return kMips;
+ return kMips64;
}
return kNone;
@@ -76,6 +76,8 @@ size_t GetInstructionSetAlignment(InstructionSet isa) {
case kX86_64:
return kX86Alignment;
case kMips:
+ // Fall-through.
+ case kMips64:
return kMipsAlignment;
case kNone:
LOG(FATAL) << "ISA kNone does not have alignment.";
@@ -88,6 +90,7 @@ size_t GetInstructionSetAlignment(InstructionSet isa) {
static constexpr size_t kDefaultStackOverflowReservedBytes = 16 * KB;
static constexpr size_t kMipsStackOverflowReservedBytes = kDefaultStackOverflowReservedBytes;
+static constexpr size_t kMips64StackOverflowReservedBytes = kDefaultStackOverflowReservedBytes;
static constexpr size_t kArmStackOverflowReservedBytes = 8 * KB;
static constexpr size_t kArm64StackOverflowReservedBytes = 8 * KB;
@@ -106,6 +109,9 @@ size_t GetStackOverflowReservedBytes(InstructionSet isa) {
case kMips:
return kMipsStackOverflowReservedBytes;
+ case kMips64:
+ return kMips64StackOverflowReservedBytes;
+
case kX86:
return kX86StackOverflowReservedBytes;