| Index: src/ia32/macro-assembler-ia32.h
|
| diff --git a/src/ia32/macro-assembler-ia32.h b/src/ia32/macro-assembler-ia32.h
|
| index b819d7a5f507e1c52a7674634ede9487750a4749..4f36b1b7bb07d8e94d212ac4a93ad793f5cf49f0 100644
|
| --- a/src/ia32/macro-assembler-ia32.h
|
| +++ b/src/ia32/macro-assembler-ia32.h
|
| @@ -107,6 +107,16 @@ class MacroAssembler: public Assembler {
|
| j(not_equal, if_not_equal, if_not_equal_distance);
|
| }
|
|
|
| + // These functions do not arrange the registers in any particular order so
|
| + // they are not useful for calls that can cause a GC. The caller can
|
| + // exclude up to 3 registers that do not need to be saved and restored.
|
| + void PushCallerSaved(SaveFPRegsMode fp_mode, Register exclusion1 = no_reg,
|
| + Register exclusion2 = no_reg,
|
| + Register exclusion3 = no_reg);
|
| + void PopCallerSaved(SaveFPRegsMode fp_mode, Register exclusion1 = no_reg,
|
| + Register exclusion2 = no_reg,
|
| + Register exclusion3 = no_reg);
|
| +
|
| // ---------------------------------------------------------------------------
|
| // GC Support
|
| enum RememberedSetFinalAction { kReturnAtEnd, kFallThroughAtEnd };
|
| @@ -207,6 +217,11 @@ class MacroAssembler: public Assembler {
|
| PointersToHereCheck pointers_to_here_check_for_value =
|
| kPointersToHereMaybeInteresting);
|
|
|
| + // Notify the garbage collector that we wrote a code entry into a
|
| + // JSFunction. Only scratch is clobbered by the operation.
|
| + void RecordWriteCodeEntryField(Register js_function, Register code_entry,
|
| + Register scratch);
|
| +
|
| // For page containing |object| mark the region covering the object's map
|
| // dirty. |object| is the object being stored into, |map| is the Map object
|
| // that was stored.
|
|
|