[arm] Fix a double-register push operation.
authorjacob.bramley <jacob.bramley@arm.com>
Tue, 29 Sep 2015 15:11:18 +0000 (08:11 -0700)
committerCommit bot <commit-bot@chromium.org>
Tue, 29 Sep 2015 15:11:30 +0000 (15:11 +0000)
commitf20d6461526eaf1ee1306e6e6048e06ae0f1688c
treef33ea686a31d4a241ce10799ee72600fab341f91
parent1d03fc17b40aa1d7bd8a89991a25859917870fb0
[arm] Fix a double-register push operation.

It is not safe to access memory below sp, and this is also forbidden by
the ABI. When pushing, we must either use an atomic operation (such as
vstm+db_w) or move sp before writing the data.

This patch fixes one stack access, and also adds vpush and vpop helpers
to simplify similar code.

BUG=

Review URL: https://codereview.chromium.org/1378563002

Cr-Commit-Position: refs/heads/master@{#31008}
src/arm/assembler-arm.cc
src/arm/assembler-arm.h
src/arm/lithium-gap-resolver-arm.cc
src/compiler/arm/code-generator-arm.cc