| Index: src/arm/macro-assembler-arm.h
|
| ===================================================================
|
| --- src/arm/macro-assembler-arm.h (revision 8221)
|
| +++ src/arm/macro-assembler-arm.h (working copy)
|
| @@ -191,18 +191,23 @@
|
| Condition cc,
|
| Label* condition_met);
|
|
|
| - // Check if object is in new space.
|
| - // scratch can be object itself, but it will be clobbered.
|
| - void InNewSpace(Register object,
|
| - Register scratch,
|
| - Condition cond, // eq for new space, ne otherwise.
|
| - Label* branch);
|
| + // Check if object is in new space. Jumps if the object is not in new space.
|
| + // The register scratch can be object itself, but it will be clobbered.
|
| + void JumpIfNotInNewSpace(Register object,
|
| + Register scratch,
|
| + Label* branch) {
|
| + InNewSpace(object, scratch, ne, branch);
|
| + }
|
|
|
| - // Check if an object has a given incremental marking color. The color bits
|
| - // are found by splitting the address at the bit offset indicated by the
|
| - // mask: bits that are zero in the mask are used for the address of the
|
| - // bitmap, and bits that are one in the mask are used for the index of the
|
| - // bit.
|
| + // Check if object is in new space. Jumps if the object is in new space.
|
| + // The register scratch can be object itself, but it will be clobbered.
|
| + void JumpIfInNewSpace(Register object,
|
| + Register scratch,
|
| + Label* branch) {
|
| + InNewSpace(object, scratch, eq, branch);
|
| + }
|
| +
|
| + // Check if an object has a given incremental marking color.
|
| void HasColor(Register object,
|
| Register scratch0,
|
| Register scratch1,
|
| @@ -230,8 +235,7 @@
|
| // garbage collector.
|
| void IsDataObject(Register value,
|
| Register scratch,
|
| - Label* not_data_object,
|
| - Label::Distance not_data_object_distance);
|
| + Label* not_data_object);
|
|
|
| // Notify the garbage collector that we wrote a pointer into an object.
|
| // |object| is the object being stored into, |value| is the object being
|
| @@ -1138,6 +1142,12 @@
|
| Register scratch1,
|
| Register scratch2);
|
|
|
| + // Helper for implementing JumpIfNotInNewSpace and JumpIfInNewSpace.
|
| + void InNewSpace(Register object,
|
| + Register scratch,
|
| + Condition cond, // eq for new space, ne otherwise.
|
| + Label* branch);
|
| +
|
| // Helper for finding the mark bits for an address. Afterwards, the
|
| // bitmap register points at the word with the mark bits and the mask
|
| // the position of the first bit. Leaves addr_reg unchanged.
|
|
|