http://codereview.chromium.org/7633014/diff/5001/src/arm/code-stubs-arm.cc File src/arm/code-stubs-arm.cc (right):
http://codereview.chromium.org/7633014/diff/5001/src/arm/code-stubs-arm.cc#newcode6323 src/arm/code-stubs-arm.cc:6323: __ add(ip, pc, Operand(4)); Replace 4 with kInstrSize, and assert on the size of the code generated for str() and Jump(). http://codereview.chromium.org/7633014/diff/5001/src/arm/code-stubs-arm.cc#newcode6335 src/arm/code-stubs-arm.cc:6335: __ add(ip, pc, Operand(4)); As above. http://codereview.chromium.org/7633014/diff/5001/src/arm/deoptimizer-arm.cc File src/arm/deoptimizer-arm.cc (right): http://codereview.chromium.org/7633014/diff/5001/src/arm/deoptimizer-arm.cc#newcode597 src/arm/deoptimizer-arm.cc:597: // handle this a bit differently. The ARM ARM also deprecates using sp in an stm. Additionally, it says "Instructions with the base register in the list and ! specified [...] the use of such instructions is deprecated. If the base register is not the lowest-numbered register in the list, such an instruction stores an UNKNOWN value for the base register." Thus, if restored_regs is populated, the updated sp is UNKNOWN. In practice, this seems to work, but it may break in new ARM implementations. Perhaps add some debug code to check the sp stored on the stack is as expected? http://codereview.chromium.org/7633014/ -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
