Index: src/ia32/lithium-codegen-ia32.h |
=================================================================== |
--- src/ia32/lithium-codegen-ia32.h (revision 6848) |
+++ src/ia32/lithium-codegen-ia32.h (working copy) |
@@ -60,6 +60,7 @@ |
status_(UNUSED), |
deferred_(8), |
osr_pc_offset_(-1), |
+ reloc_padding_count_(0), |
resolver_(this) { |
PopulateDeoptimizationLiteralsWithInlinedFunctions(); |
} |
@@ -102,6 +103,8 @@ |
// Emit frame translation commands for an environment. |
void WriteTranslation(LEnvironment* environment, Translation* translation); |
+ void AddRelocPadding(int count) { reloc_padding_count_ += count; } |
Søren Thygesen Gjesse
2011/02/21 13:27:20
AddRelocPadding -> AddRelocPaddingForDeoptimizatio
|
+ |
// Declare methods that deal with the individual node types. |
#define DECLARE_DO(type) void Do##type(L##type* node); |
LITHIUM_CONCRETE_INSTRUCTION_LIST(DECLARE_DO) |
@@ -151,6 +154,9 @@ |
bool GeneratePrologue(); |
bool GenerateBody(); |
bool GenerateDeferredCode(); |
+ // Pad the reloc info to ensure that we have enough space to patch during |
+ // deoptimization. |
+ bool GenerateRelocPadding(); |
bool GenerateSafepointTable(); |
void CallCode(Handle<Code> code, RelocInfo::Mode mode, LInstruction* instr, |
@@ -250,6 +256,7 @@ |
TranslationBuffer translations_; |
ZoneList<LDeferredCode*> deferred_; |
int osr_pc_offset_; |
+ int reloc_padding_count_; |
Søren Thygesen Gjesse
2011/02/21 13:27:20
reloc_padding_count_ -> reloc_padding_count_for_de
|
// Builder that keeps track of safepoints in the code. The table |
// itself is emitted at the end of the generated code. |