Index: src/a64/assembler-a64.h |
diff --git a/src/a64/assembler-a64.h b/src/a64/assembler-a64.h |
index 09a8a72014d9c7885266576e35094c6b60926e23..63fbcad825a0862644f5db3424c87cd5db660399 100644 |
--- a/src/a64/assembler-a64.h |
+++ b/src/a64/assembler-a64.h |
@@ -839,6 +839,7 @@ class Assembler : public AssemblerBase { |
static int ConstantPoolSizeAt(Instruction* instr); |
// See Assembler::CheckConstPool for more info. |
void ConstantPoolMarker(uint32_t size); |
+ void EmitPoolGuard(); |
void ConstantPoolGuard(); |
// Prevent veneer pool emission until EndBlockVeneerPool is called. |
@@ -877,20 +878,20 @@ class Assembler : public AssemblerBase { |
// Record the emission of a constant pool. |
// |
- // The emission of constant pool depends on the size of the code generated and |
- // the number of RelocInfo recorded. |
+ // The emission of constant and veneer pools depends on the size of the code |
+ // generated and the number of RelocInfo recorded. |
// The Debug mechanism needs to map code offsets between two versions of a |
// function, compiled with and without debugger support (see for example |
// Debug::PrepareForBreakPoints()). |
// Compiling functions with debugger support generates additional code |
- // (Debug::GenerateSlot()). This may affect the emission of the constant |
- // pools and cause the version of the code with debugger support to have |
- // constant pools generated in different places. |
- // Recording the position and size of emitted constant pools allows to |
- // correctly compute the offset mappings between the different versions of a |
- // function in all situations. |
+ // (Debug::GenerateSlot()). This may affect the emission of the pools and |
+ // cause the version of the code with debugger support to have pools generated |
+ // in different places. |
+ // Recording the position and size of emitted pools allows to correctly |
+ // compute the offset mappings between the different versions of a function in |
+ // all situations. |
// |
- // The parameter indicates the size of the constant pool (in bytes), including |
+ // The parameter indicates the size of the pool (in bytes), including |
// the marker and branch over the data. |
void RecordConstPool(int size); |
@@ -1754,11 +1755,12 @@ class Assembler : public AssemblerBase { |
// in the future for example if we decide to add nops between the veneers. |
static const int kMaxVeneerCodeSize = 1 * kInstructionSize; |
+ void RecordVeneerPool(int location_offset, int size); |
// Emits veneers for branches that are approaching their maximum range. |
// If need_protection is true, the veneers are protected by a branch jumping |
// over the code. |
void EmitVeneers(bool need_protection, int margin = kVeneerDistanceMargin); |
- void EmitVeneersGuard(); |
+ void EmitVeneersGuard() { EmitPoolGuard(); } |
// Checks whether veneers need to be emitted at this point. |
void CheckVeneerPool(bool require_jump, int margin = kVeneerDistanceMargin); |