| Index: src/ia32/macro-assembler-ia32.h
 | 
| ===================================================================
 | 
| --- src/ia32/macro-assembler-ia32.h	(revision 2828)
 | 
| +++ src/ia32/macro-assembler-ia32.h	(working copy)
 | 
| @@ -1,4 +1,4 @@
 | 
| -// Copyright 2006-2008 the V8 project authors. All rights reserved.
 | 
| +// Copyright 2006-2009 the V8 project authors. All rights reserved.
 | 
|  // Redistribution and use in source and binary forms, with or without
 | 
|  // modification, are permitted provided that the following conditions are
 | 
|  // met:
 | 
| @@ -56,6 +56,18 @@
 | 
|  };
 | 
|  
 | 
|  
 | 
| +// Flags used for the AllocateObjectInNewSpace functions.
 | 
| +enum AllocationFlags {
 | 
| +  // No special flags.
 | 
| +  NO_ALLOCATION_FLAGS = 0,
 | 
| +  // Return the pointer to the allocated already tagged as a heap object.
 | 
| +  TAG_OBJECT = 1 << 0,
 | 
| +  // The content of the result register already contains the allocation top in
 | 
| +  // new space.
 | 
| +  RESULT_CONTAINS_TOP = 1 << 1
 | 
| +};
 | 
| +
 | 
| +
 | 
|  // MacroAssembler implements a collection of frequently used macros.
 | 
|  class MacroAssembler: public Assembler {
 | 
|   public:
 | 
| @@ -201,7 +213,7 @@
 | 
|                                  Register result_end,
 | 
|                                  Register scratch,
 | 
|                                  Label* gc_required,
 | 
| -                                bool result_contains_top_on_entry);
 | 
| +                                AllocationFlags flags);
 | 
|  
 | 
|    void AllocateObjectInNewSpace(int header_size,
 | 
|                                  ScaleFactor element_size,
 | 
| @@ -210,14 +222,14 @@
 | 
|                                  Register result_end,
 | 
|                                  Register scratch,
 | 
|                                  Label* gc_required,
 | 
| -                                bool result_contains_top_on_entry);
 | 
| +                                AllocationFlags flags);
 | 
|  
 | 
|    void AllocateObjectInNewSpace(Register object_size,
 | 
|                                  Register result,
 | 
|                                  Register result_end,
 | 
|                                  Register scratch,
 | 
|                                  Label* gc_required,
 | 
| -                                bool result_contains_top_on_entry);
 | 
| +                                AllocationFlags flags);
 | 
|  
 | 
|    // Undo allocation in new space. The object passed and objects allocated after
 | 
|    // it will no longer be allocated. Make sure that no pointers are left to the
 | 
| @@ -350,7 +362,7 @@
 | 
|    void LoadAllocationTopHelper(Register result,
 | 
|                                 Register result_end,
 | 
|                                 Register scratch,
 | 
| -                               bool result_contains_top_on_entry);
 | 
| +                               AllocationFlags flags);
 | 
|    void UpdateAllocationTopHelper(Register result_end, Register scratch);
 | 
|  };
 | 
|  
 | 
| 
 |