summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/locations.h
diff options
context:
space:
mode:
authorNicolas Geoffray <ngeoffray@google.com>2015-03-09 10:28:50 +0000
committerNicolas Geoffray <ngeoffray@google.com>2015-03-11 14:23:38 +0000
commit234d69d075d1608f80adb647f7935077b62b6376 (patch)
treef6b68ff38722dc91bd0de2387609ee0ce950e0ce /compiler/optimizing/locations.h
parent31df246d330c45f5691e226d176d0c59450f8435 (diff)
downloadandroid_art-234d69d075d1608f80adb647f7935077b62b6376.tar.gz
android_art-234d69d075d1608f80adb647f7935077b62b6376.tar.bz2
android_art-234d69d075d1608f80adb647f7935077b62b6376.zip
Revert "Revert "[optimizing] Enable x86 long support.""
This reverts commit 154552e666347d41d95d7619c6ee56249ff4feca. Change-Id: Idc726551c249a888b7ff5fde8508ae50e81b2e13
Diffstat (limited to 'compiler/optimizing/locations.h')
-rw-r--r--compiler/optimizing/locations.h22
1 files changed, 16 insertions, 6 deletions
diff --git a/compiler/optimizing/locations.h b/compiler/optimizing/locations.h
index 198cc15cce..566c0daf1e 100644
--- a/compiler/optimizing/locations.h
+++ b/compiler/optimizing/locations.h
@@ -211,15 +211,25 @@ class Location : public ValueObject {
}
Location ToLow() const {
- return IsRegisterPair()
- ? Location::RegisterLocation(low())
- : Location::FpuRegisterLocation(low());
+ if (IsRegisterPair()) {
+ return Location::RegisterLocation(low());
+ } else if (IsFpuRegisterPair()) {
+ return Location::FpuRegisterLocation(low());
+ } else {
+ DCHECK(IsDoubleStackSlot());
+ return Location::StackSlot(GetStackIndex());
+ }
}
Location ToHigh() const {
- return IsRegisterPair()
- ? Location::RegisterLocation(high())
- : Location::FpuRegisterLocation(high());
+ if (IsRegisterPair()) {
+ return Location::RegisterLocation(high());
+ } else if (IsFpuRegisterPair()) {
+ return Location::FpuRegisterLocation(high());
+ } else {
+ DCHECK(IsDoubleStackSlot());
+ return Location::StackSlot(GetHighStackIndex(4));
+ }
}
static uintptr_t EncodeStackIndex(intptr_t stack_index) {