diff options
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); } |