ARM64: Fix EnsureSpace to not emit pools.

The EnsureSpace scope must not trigger any code emission, so it should only grow
the buffer, and not check for pools.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20714 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
alexandre.rames@arm.com 2014-04-14 11:04:46 +00:00
parent 0182a0f16a
commit b0938269dc
2 changed files with 8 additions and 2 deletions

View File

@ -1199,11 +1199,16 @@ void Assembler::LoadRelocated(const CPURegister& rt, const Operand& operand) {
}
inline void Assembler::CheckBuffer() {
inline void Assembler::CheckBufferSpace() {
ASSERT(pc_ < (buffer_ + buffer_size_));
if (buffer_space() < kGap) {
GrowBuffer();
}
}
inline void Assembler::CheckBuffer() {
CheckBufferSpace();
if (pc_offset() >= next_veneer_pool_check_) {
CheckVeneerPool(false, true);
}

View File

@ -2040,6 +2040,7 @@ class Assembler : public AssemblerBase {
}
void GrowBuffer();
void CheckBufferSpace();
void CheckBuffer();
// Pc offset of the next constant pool check.
@ -2238,7 +2239,7 @@ class PatchingAssembler : public Assembler {
class EnsureSpace BASE_EMBEDDED {
public:
explicit EnsureSpace(Assembler* assembler) {
assembler->CheckBuffer();
assembler->CheckBufferSpace();
}
};