summaryrefslogtreecommitdiffstats
path: root/test/421-large-frame/src
Commit message (Collapse)AuthorAgeFilesLines
* Move the "huge method" test into its own test case.Roland Levillain2015-04-021-2011/+0
| | | | Change-Id: Icd7c95d2a7a0cacf15f079eed38c5d1a8f138b3f
* Fix test 421-large-frame.Roland Levillain2015-04-011-1002/+2017
| | | | | | | | | | | | | | - Don't force the optimizing compiler to compile a huge method by reducing the number of local variables and instructions in Main.$opt$LargeFrame. - Prevent the optimizing compiler from "optimizing too much" (through constant folding and inlining), so as to preserve a large stack frame in Main.$opt$LargeFrame. - Keep the original huge method (without the $opt$ marker) as Main.HugeFrame. Bug: 20020727 Change-Id: I49bf8f03146020bd94bd392684e605d7bb6daf1e
* Add a branch to ensure the test is compiled.Nicolas Geoffray2014-12-021-1/+6
| | | | | | The compiler will now not compile large methods with no branch. Change-Id: Iaea284c648f7f3f754cb8ec721ad2ecffbd2f6af
* Fix store instructions to large frames in ARM opt. compiler.Roland Levillain2014-11-041-0/+2034
When accessing a stack frame at a large offset, use an additional core register (R5 or R6) as a temporary register whenever IP contains the value to store (and thus cannot be used by art::Thumb2Assembler::StoreToOffset as a temporary register to compute the memory address where the value is to be stored). The previous value of R5 (or R6) is saved on the stack before the emission of the store instruction and restored afterwards. Change-Id: Ic5fd5ab2c09d8327dd1f0f241d40d2c397ce64cd