diff options
author | 2014-05-06 03:17:00 +0000 | |
---|---|---|
committer | 2014-05-06 03:17:00 +0000 | |
commit | 2a12ad460af139a03c3e9bf5fc7886a7521b333e (patch) | |
tree | a7364eb7915712e022cd4dcf67b18e2ecf31d7e3 /compiler/dex/quick/codegen_util.cc | |
parent | fac805ba18254db0cb84661dc2085763730e95e7 (diff) | |
parent | f29a4244bbc278843237f0ae242de077e093b580 (diff) |
Merge "x86_64: Fix frame size calculation for 64-bit"
Diffstat (limited to 'compiler/dex/quick/codegen_util.cc')
-rw-r--r-- | compiler/dex/quick/codegen_util.cc | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/compiler/dex/quick/codegen_util.cc b/compiler/dex/quick/codegen_util.cc index 396195450a..9f84e098d9 100644 --- a/compiler/dex/quick/codegen_util.cc +++ b/compiler/dex/quick/codegen_util.cc @@ -1050,10 +1050,11 @@ size_t Mir2Lir::GetNumBytesForCompilerTempSpillRegion() { int Mir2Lir::ComputeFrameSize() { /* Figure out the frame size */ static const uint32_t kAlignMask = kStackAlignment - 1; - uint32_t size = ((num_core_spills_ + num_fp_spills_ + - 1 /* filler word */ + cu_->num_regs + cu_->num_outs) - * sizeof(uint32_t)) + - GetNumBytesForCompilerTempSpillRegion(); + uint32_t size = num_core_spills_ * GetBytesPerGprSpillLocation(cu_->instruction_set) + + num_fp_spills_ * GetBytesPerFprSpillLocation(cu_->instruction_set) + + sizeof(uint32_t) // Filler. + + (cu_->num_regs + cu_->num_outs) * sizeof(uint32_t) + + GetNumBytesForCompilerTempSpillRegion(); /* Align and set */ return (size + kAlignMask) & ~(kAlignMask); } |