Chromium Code Reviews| Index: src/ia32/lithium-codegen-ia32.h |
| diff --git a/src/ia32/lithium-codegen-ia32.h b/src/ia32/lithium-codegen-ia32.h |
| index 4414e6a26c779d3423363305e0dd6dea4c3fba3a..e71573e5382b46ce8489a58353d52d3a023e253c 100644 |
| --- a/src/ia32/lithium-codegen-ia32.h |
| +++ b/src/ia32/lithium-codegen-ia32.h |
| @@ -164,14 +164,33 @@ class LCodeGen BASE_EMBEDDED { |
| bool GenerateRelocPadding(); |
| bool GenerateSafepointTable(); |
| - void CallCode(Handle<Code> code, RelocInfo::Mode mode, LInstruction* instr, |
| - bool adjusted = true); |
| - void CallRuntime(const Runtime::Function* fun, int argc, LInstruction* instr, |
| - bool adjusted = true); |
| - void CallRuntime(Runtime::FunctionId id, int argc, LInstruction* instr, |
| - bool adjusted = true) { |
| + enum ContextMode { |
| + RESTORE_CONTEXT, |
| + CONTEXT_ADJUSTED |
| + }; |
| + |
| + enum SafepointMode { |
| + RECORD_SIMPLE_SAFEPOINT, |
| + RECORD_SAFEPOINT_WITH_REGISTERS_AND_NO_ARGUMENTS |
| + }; |
| + |
| + void CallCode(Handle<Code> code, |
| + RelocInfo::Mode mode, |
| + LInstruction* instr, |
| + ContextMode context_mode = CONTEXT_ADJUSTED, |
|
fschneider
2011/04/04 11:54:11
I'm hesitating using default arguments here (espec
|
| + SafepointMode safepoint_mode = RECORD_SIMPLE_SAFEPOINT); |
| + |
| + void CallRuntime(const Runtime::Function* fun, |
| + int argc, |
| + LInstruction* instr, |
| + ContextMode context_mode = CONTEXT_ADJUSTED); |
| + |
| + void CallRuntime(Runtime::FunctionId id, |
| + int argc, |
| + LInstruction* instr, |
| + ContextMode context_mode = CONTEXT_ADJUSTED) { |
| const Runtime::Function* function = Runtime::FunctionForId(id); |
| - CallRuntime(function, argc, instr, adjusted); |
| + CallRuntime(function, argc, instr, context_mode); |
| } |
| // Generate a direct call to a known function. Expects the function |
| @@ -182,7 +201,10 @@ class LCodeGen BASE_EMBEDDED { |
| void LoadHeapObject(Register result, Handle<HeapObject> object); |
| - void RegisterLazyDeoptimization(LInstruction* instr); |
| + void RegisterLazyDeoptimization( |
| + LInstruction* instr, |
| + SafepointMode safepoint_mode = RECORD_SIMPLE_SAFEPOINT); |
| + |
| void RegisterEnvironmentForDeoptimization(LEnvironment* environment); |
| void DeoptimizeIf(Condition cc, LEnvironment* environment); |