: EnumSet<SmiOperationConstraint, byte>(bits) { }
};
-bool AreAliased(Register r1, Register r2, Register r3, Register r4);
+#ifdef DEBUG
+bool AreAliased(Register reg1,
+ Register reg2,
+ Register reg3 = no_reg,
+ Register reg4 = no_reg,
+ Register reg5 = no_reg,
+ Register reg6 = no_reg,
+ Register reg7 = no_reg,
+ Register reg8 = no_reg);
+#endif
// Forward declaration.
class JumpTarget;
// ---------------------------------------------------------------------------
- // SIMD macros.
- void absps(XMMRegister dst);
- void abspd(XMMRegister dst);
- void negateps(XMMRegister dst);
- void negatepd(XMMRegister dst);
- void notps(XMMRegister dst);
- void pnegd(XMMRegister dst);
-
-
- // ---------------------------------------------------------------------------
// String macros.
// Generate code to do a lookup in the number string cache. If the number in
void Move(Register dst, void* ptr, RelocInfo::Mode rmode) {
// This method must not be used with heap object references. The stored
// address is not GC safe. Use the handle version instead.
- ASSERT(rmode > RelocInfo::LAST_GCED_ENUM);
+ DCHECK(rmode > RelocInfo::LAST_GCED_ENUM);
movp(dst, ptr, rmode);
}
void Move(Register dst, Handle<Object> value, RelocInfo::Mode rmode) {
AllowDeferredHandleDereference using_raw_address;
- ASSERT(!RelocInfo::IsNone(rmode));
- ASSERT(value->IsHeapObject());
- ASSERT(!isolate()->heap()->InNewSpace(*value));
+ DCHECK(!RelocInfo::IsNone(rmode));
+ DCHECK(value->IsHeapObject());
+ DCHECK(!isolate()->heap()->InNewSpace(*value));
movp(dst, reinterpret_cast<void*>(value.location()), rmode);
}
} else {
static const int shift = Field::kShift;
static const int mask = (Field::kMask >> Field::kShift) << kSmiTagSize;
- ASSERT(SmiValuesAre31Bits());
- ASSERT(kSmiShift == kSmiTagSize);
- ASSERT((mask & 0x80000000u) == 0);
+ DCHECK(SmiValuesAre31Bits());
+ DCHECK(kSmiShift == kSmiTagSize);
+ DCHECK((mask & 0x80000000u) == 0);
if (shift < kSmiShift) {
shlp(reg, Immediate(kSmiShift - shift));
} else if (shift > kSmiShift) {
// space is full.
void AllocateHeapNumber(Register result,
Register scratch,
- Label* gc_required);
-
- // Allocate a float32x4, float64x2 and int32x4 object in new space with
- // undefined value.
- // Returns tagged pointer in result register, or jumps to gc_required if new
- // space is full.
- void AllocateFloat32x4(Register result,
- Register scratch1,
- Register scratch2,
- Register scratch3,
- Label* gc_required);
-
- void AllocateFloat64x2(Register result,
- Register scratch1,
- Register scratch2,
- Register scratch3,
- Label* gc_required);
-
- void AllocateInt32x4(Register result,
- Register scratch1,
- Register scratch2,
- Register scratch3,
- Label* gc_required);
+ Label* gc_required,
+ MutableMode mode = IMMUTABLE);
// Allocate a sequential string. All the header fields of the string object
// are initialized.
void Ret(int bytes_dropped, Register scratch);
Handle<Object> CodeObject() {
- ASSERT(!code_object_.is_null());
+ DCHECK(!code_object_.is_null());
return code_object_;
}