| Index: src/arm/macro-assembler-arm.h
|
| ===================================================================
|
| --- src/arm/macro-assembler-arm.h (revision 2828)
|
| +++ src/arm/macro-assembler-arm.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:
|
| @@ -67,6 +67,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:
|
| @@ -199,13 +211,13 @@
|
| Register scratch1,
|
| Register scratch2,
|
| Label* gc_required,
|
| - bool tag_allocated_object);
|
| + AllocationFlags flags);
|
| void AllocateObjectInNewSpace(Register object_size,
|
| Register result,
|
| Register scratch1,
|
| Register scratch2,
|
| Label* gc_required,
|
| - bool tag_allocated_object);
|
| + AllocationFlags flags);
|
|
|
| // Undo allocation in new space. The object passed and objects allocated after
|
| // it will no longer be allocated. The caller must make sure that no pointers
|
|
|