Lines Matching refs:Register

38   V(Ldrb, Register&, rt, LDRB_w)                              \
39 V(Strb, Register&, rt, STRB_w) \
40 V(Ldrsb, Register&, rt, rt.Is64Bits() ? LDRSB_x : LDRSB_w) \
41 V(Ldrh, Register&, rt, LDRH_w) \
42 V(Strh, Register&, rt, STRH_w) \
43 V(Ldrsh, Register&, rt, rt.Is64Bits() ? LDRSH_x : LDRSH_w) \
46 V(Ldrsw, Register&, rt, LDRSW_x)
58 inline MemOperand FieldMemOperand(Register object, int offset);
59 inline MemOperand UntagSmiFieldMemOperand(Register object, int offset);
62 inline MemOperand UntagSmiMemOperand(Register object, int offset);
140 inline void And(const Register& rd,
141 const Register& rn,
143 inline void Ands(const Register& rd,
144 const Register& rn,
146 inline void Bic(const Register& rd,
147 const Register& rn,
149 inline void Bics(const Register& rd,
150 const Register& rn,
152 inline void Orr(const Register& rd,
153 const Register& rn,
155 inline void Orn(const Register& rd,
156 const Register& rn,
158 inline void Eor(const Register& rd,
159 const Register& rn,
161 inline void Eon(const Register& rd,
162 const Register& rn,
164 inline void Tst(const Register& rn, const Operand& operand);
165 void LogicalMacro(const Register& rd,
166 const Register& rn,
171 inline void Add(const Register& rd,
172 const Register& rn,
174 inline void Adds(const Register& rd,
175 const Register& rn,
177 inline void Sub(const Register& rd,
178 const Register& rn,
180 inline void Subs(const Register& rd,
181 const Register& rn,
183 inline void Cmn(const Register& rn, const Operand& operand);
184 inline void Cmp(const Register& rn, const Operand& operand);
185 inline void Neg(const Register& rd,
187 inline void Negs(const Register& rd,
190 void AddSubMacro(const Register& rd,
191 const Register& rn,
197 inline void Adc(const Register& rd,
198 const Register& rn,
200 inline void Adcs(const Register& rd,
201 const Register& rn,
203 inline void Sbc(const Register& rd,
204 const Register& rn,
206 inline void Sbcs(const Register& rd,
207 const Register& rn,
209 inline void Ngc(const Register& rd,
211 inline void Ngcs(const Register& rd,
213 void AddSubWithCarryMacro(const Register& rd,
214 const Register& rn,
220 void Mov(const Register& rd,
223 void Mov(const Register& rd, uint64_t imm);
224 inline void Mvn(const Register& rd, uint64_t imm);
225 void Mvn(const Register& rd, const Operand& operand);
233 bool TryOneInstrMoveImmediate(const Register& dst, int64_t imm);
240 Operand MoveImmediateForShiftedOp(const Register& dst, int64_t imm);
243 inline void Ccmp(const Register& rn,
247 inline void Ccmn(const Register& rn,
251 void ConditionalCompareMacro(const Register& rn,
256 void Csel(const Register& rd,
257 const Register& rn,
280 void Load(const Register& rt, const MemOperand& addr, Representation r);
281 void Store(const Register& rt, const MemOperand& addr, Representation r);
290 void Adr(const Register& rd, Label* label, AdrHint = kAdrNear);
293 inline void Asr(const Register& rd, const Register& rn, unsigned shift);
294 inline void Asr(const Register& rd, const Register& rn, const Register& rm);
301 void B(Label* label, BranchType type, Register reg = NoReg, int bit = -1);
306 inline void Bfi(const Register& rd,
307 const Register& rn,
310 inline void Bfxil(const Register& rd,
311 const Register& rn,
316 inline void Blr(const Register& xn);
317 inline void Br(const Register& xn);
319 void Cbnz(const Register& rt, Label* label);
320 void Cbz(const Register& rt, Label* label);
321 inline void Cinc(const Register& rd, const Register& rn, Condition cond);
322 inline void Cinv(const Register& rd, const Register& rn, Condition cond);
323 inline void Cls(const Register& rd, const Register& rn);
324 inline void Clz(const Register& rd, const Register& rn);
325 inline void Cneg(const Register& rd, const Register& rn, Condition cond);
326 inline void CzeroX(const Register& rd, Condition cond);
327 inline void CmovX(const Register& rd, const Register& rn, Condition cond);
328 inline void Cset(const Register& rd, Condition cond);
329 inline void Csetm(const Register& rd, Condition cond);
330 inline void Csinc(const Register& rd,
331 const Register& rn,
332 const Register& rm,
334 inline void Csinv(const Register& rd,
335 const Register& rn,
336 const Register& rm,
338 inline void Csneg(const Register& rd,
339 const Register& rn,
340 const Register& rm,
345 inline void Extr(const Register& rd,
346 const Register& rn,
347 const Register& rm,
364 inline void Fcvtas(const Register& rd, const FPRegister& fn);
365 inline void Fcvtau(const Register& rd, const FPRegister& fn);
366 inline void Fcvtms(const Register& rd, const FPRegister& fn);
367 inline void Fcvtmu(const Register& rd, const FPRegister& fn);
368 inline void Fcvtns(const Register& rd, const FPRegister& fn);
369 inline void Fcvtnu(const Register& rd, const FPRegister& fn);
370 inline void Fcvtzs(const Register& rd, const FPRegister& fn);
371 inline void Fcvtzu(const Register& rd, const FPRegister& fn);
392 inline void Fmov(FPRegister fd, Register rn);
405 inline void Fmov(Register rd, FPRegister fn);
440 inline void Lsl(const Register& rd, const Register& rn, unsigned shift);
441 inline void Lsl(const Register& rd, const Register& rn, const Register& rm);
442 inline void Lsr(const Register& rd, const Register& rn, unsigned shift);
443 inline void Lsr(const Register& rd, const Register& rn, const Register& rm);
444 inline void Madd(const Register& rd,
445 const Register& rn,
446 const Register& rm,
447 const Register& ra);
448 inline void Mneg(const Register& rd, const Register& rn, const Register& rm);
449 inline void Mov(const Register& rd, const Register& rm);
450 inline void Movk(const Register& rd, uint64_t imm, int shift = -1);
451 inline void Mrs(const Register& rt, SystemRegister sysreg);
452 inline void Msr(SystemRegister sysreg, const Register& rt);
453 inline void Msub(const Register& rd,
454 const Register& rn,
455 const Register& rm,
456 const Register& ra);
457 inline void Mul(const Register& rd, const Register& rn, const Register& rm);
459 inline void Rbit(const Register& rd, const Register& rn);
460 inline void Ret(const Register& xn = lr);
461 inline void Rev(const Register& rd, const Register& rn);
462 inline void Rev16(const Register& rd, const Register& rn);
463 inline void Rev32(const Register& rd, const Register& rn);
464 inline void Ror(const Register& rd, const Register& rs, unsigned shift);
465 inline void Ror(const Register& rd, const Register& rn, const Register& rm);
466 inline void Sbfiz(const Register& rd,
467 const Register& rn,
470 inline void Sbfx(const Register& rd,
471 const Register& rn,
475 const Register& rn,
477 inline void Sdiv(const Register& rd, const Register& rn, const Register& rm);
478 inline void Smaddl(const Register& rd,
479 const Register& rn,
480 const Register& rm,
481 const Register& ra);
482 inline void Smsubl(const Register& rd,
483 const Register& rn,
484 const Register& rm,
485 const Register& ra);
486 inline void Smull(const Register& rd,
487 const Register& rn,
488 const Register& rm);
489 inline void Smulh(const Register& rd,
490 const Register& rn,
491 const Register& rm);
495 inline void Sxtb(const Register& rd, const Register& rn);
496 inline void Sxth(const Register& rd, const Register& rn);
497 inline void Sxtw(const Register& rd, const Register& rn);
498 void Tbnz(const Register& rt, unsigned bit_pos, Label* label);
499 void Tbz(const Register& rt, unsigned bit_pos, Label* label);
500 inline void Ubfiz(const Register& rd,
501 const Register& rn,
504 inline void Ubfx(const Register& rd,
505 const Register& rn,
509 const Register& rn,
511 inline void Udiv(const Register& rd, const Register& rn, const Register& rm);
512 inline void Umaddl(const Register& rd,
513 const Register& rn,
514 const Register& rm,
515 const Register& ra);
516 inline void Umsubl(const Register& rd,
517 const Register& rn,
518 const Register& rm,
519 const Register& ra);
520 inline void Uxtb(const Register& rd, const Register& rn);
521 inline void Uxth(const Register& rd, const Register& rn);
522 inline void Uxtw(const Register& rd, const Register& rn);
532 void Abs(const Register& rd, const Register& rm,
570 void Push(const Register& src0, const FPRegister& src1);
619 void PushMultipleTimes(CPURegister src, Register count);
627 inline void push(Register src) {
630 inline void pop(Register dst) {
704 // Register count, the unit size must be a power of two.
706 inline void Claim(const Register& count,
709 inline void Drop(const Register& count,
714 inline void ClaimBySMI(const Register& count_smi,
716 inline void DropBySMI(const Register& count_smi,
721 inline void CompareAndBranch(const Register& lhs,
728 inline void TestAndBranchIfAnySet(const Register& reg,
734 inline void TestAndBranchIfAllClear(const Register& reg,
797 inline void SetStackPointer(const Register& stack_pointer) {
803 inline const Register& StackPointer() const {
844 void AssertFPCRState(Register fpcr = NoReg);
855 void StoreRoot(Register source,
859 void LoadTrueFalseRoots(Register true_root, Register false_root);
861 void LoadHeapObject(Register dst, Handle<HeapObject> object);
863 void LoadObject(Register result, Handle<Object> object) {
877 inline void Move(Register dst, Register src) { Mov(dst, src); }
879 void LoadInstanceDescriptors(Register map,
880 Register descriptors);
881 void EnumLengthUntagged(Register dst, Register map);
882 void EnumLengthSmi(Register dst, Register map);
883 void NumberOfOwnDescriptors(Register dst, Register map);
886 void DecodeField(Register dst, Register src) {
893 void DecodeField(Register reg) {
899 inline void SmiTag(Register dst, Register src);
900 inline void SmiTag(Register smi);
901 inline void SmiUntag(Register dst, Register src);
902 inline void SmiUntag(Register smi);
904 Register src,
907 Register src,
911 inline void SmiTagAndPush(Register src);
912 inline void SmiTagAndPush(Register src1, Register src2);
914 inline void JumpIfSmi(Register value,
917 inline void JumpIfNotSmi(Register value, Label* not_smi_label);
918 inline void JumpIfBothSmi(Register value1,
919 Register value2,
922 inline void JumpIfEitherSmi(Register value1,
923 Register value2,
926 inline void JumpIfEitherNotSmi(Register value1,
927 Register value2,
929 inline void JumpIfBothNotSmi(Register value1,
930 Register value2,
934 void AssertNotSmi(Register object, BailoutReason reason = kOperandIsASmi);
935 void AssertSmi(Register object, BailoutReason reason = kOperandIsNotASmi);
937 inline void ObjectTag(Register tagged_obj, Register obj);
938 inline void ObjectUntag(Register untagged_obj, Register obj);
941 void AssertName(Register object);
945 void AssertUndefinedOrAllocationSite(Register object, Register scratch);
948 void AssertString(Register object);
950 void JumpIfHeapNumber(Register object, Label* on_heap_number,
952 void JumpIfNotHeapNumber(Register object, Label* on_not_heap_number,
963 void JumpIfMinusZero(Register input, Label* on_negative_zero);
970 void LookupNumberStringCache(Register object,
971 Register result,
972 Register scratch1,
973 Register scratch2,
974 Register scratch3,
979 void ClampInt32ToUint8(Register in_out);
980 void ClampInt32ToUint8(Register output, Register input);
983 void ClampDoubleToUint8(Register output,
992 void TryRepresentDoubleAsInt32(Register as_int,
1007 void TryRepresentDoubleAsInt64(Register as_int,
1028 void CopyFields(Register dst, Register src, CPURegList temps, unsigned count);
1031 // 64-bit value in register filler. Register dst is corrupted.
1032 void FillFields(Register dst,
1033 Register field_count,
1034 Register filler);
1040 void CopyBytes(Register dst,
1041 Register src,
1042 Register length,
1043 Register scratch,
1052 Register first, Register second, Register scratch1, Register scratch2,
1057 void JumpIfInstanceTypeIsNotSequentialOneByte(Register type, Register scratch,
1063 Register first_object_instance_type, Register second_object_instance_type,
1064 Register scratch1, Register scratch2, Label* failure);
1069 Register first_object_instance_type, Register second_object_instance_type,
1070 Register scratch1, Register scratch2, Label* failure);
1072 void JumpIfNotUniqueNameInstanceType(Register type, Label* not_unique_name);
1080 // Register value must be x0.
1081 void Throw(Register value,
1082 Register scratch1,
1083 Register scratch2,
1084 Register scratch3,
1085 Register scratch4);
1088 // handler chain. Register value must be x0.
1089 void ThrowUncatchable(Register value,
1090 Register scratch1,
1091 Register scratch2,
1092 Register scratch3,
1093 Register scratch4);
1129 void CallCFunction(Register function,
1139 void CallApiFunctionAndReturn(Register function_address,
1171 void GetBuiltinEntry(Register target,
1172 Register function,
1176 void GetBuiltinFunction(Register target, Builtins::JavaScript id);
1178 void Jump(Register target);
1183 void Call(Register target);
1192 static int CallSize(Register target);
1209 Register code_reg,
1214 void InvokeCode(Register code,
1221 void InvokeFunction(Register function,
1225 void InvokeFunction(Register function,
1248 void TryConvertDoubleToInt64(Register result,
1255 void TruncateDoubleToI(Register result, DoubleRegister double_input);
1260 void TruncateHeapNumberToI(Register result, Register object);
1266 void TruncateNumberToI(Register object,
1267 Register result,
1268 Register heap_number_map,
1326 void Allocate(Register object_size,
1327 Register result,
1328 Register scratch1,
1329 Register scratch2,
1334 Register result,
1335 Register scratch1,
1336 Register scratch2,
1344 void UndoAllocationInNewSpace(Register object, Register scratch);
1346 void AllocateTwoByteString(Register result,
1347 Register length,
1348 Register scratch1,
1349 Register scratch2,
1350 Register scratch3,
1352 void AllocateOneByteString(Register result, Register length,
1353 Register scratch1, Register scratch2,
1354 Register scratch3, Label* gc_required);
1355 void AllocateTwoByteConsString(Register result,
1356 Register length,
1357 Register scratch1,
1358 Register scratch2,
1360 void AllocateOneByteConsString(Register result, Register length,
1361 Register scratch1, Register scratch2,
1363 void AllocateTwoByteSlicedString(Register result,
1364 Register length,
1365 Register scratch1,
1366 Register scratch2,
1368 void AllocateOneByteSlicedString(Register result, Register length,
1369 Register scratch1, Register scratch2,
1377 void AllocateHeapNumber(Register result,
1379 Register scratch1,
1380 Register scratch2,
1397 void TryGetFunctionPrototype(Register function,
1398 Register result,
1399 Register scratch,
1411 void CompareObjectType(Register heap_object,
1412 Register map,
1413 Register type_reg,
1424 void JumpIfObjectType(Register object,
1425 Register map,
1426 Register type_reg,
1431 void JumpIfNotObjectType(Register object,
1432 Register map,
1433 Register type_reg,
1440 void CompareInstanceType(Register map,
1441 Register type_reg,
1446 void CompareObjectMap(Register obj, Heap::RootListIndex index);
1450 void CompareObjectMap(Register obj, Register scratch, Handle<Map> map);
1454 void CompareMap(Register obj_map,
1461 void CheckMap(Register obj,
1462 Register scratch,
1468 void CheckMap(Register obj,
1469 Register scratch,
1476 void CheckMap(Register obj_map,
1484 void DispatchMap(Register obj,
1485 Register scratch,
1492 void TestMapBitfield(Register object, uint64_t mask);
1496 void LoadElementsKindFromMap(Register result, Register map);
1499 void CompareRoot(const Register& obj, Heap::RootListIndex index);
1502 void JumpIfRoot(const Register& obj,
1507 void JumpIfNotRoot(const Register& obj,
1516 inline void IsObjectNameType(Register object, Register type, Label* fail);
1518 inline void IsObjectJSObjectType(Register heap_object,
1519 Register map,
1520 Register scratch,
1528 inline void IsInstanceJSObjectType(Register map,
1529 Register scratch,
1538 inline void IsObjectJSStringType(Register object, Register type,
1543 void CompareAndSplit(const Register& lhs,
1552 void TestAndSplit(const Register& reg,
1560 void CheckFastElements(Register map, Register scratch, Label* fail);
1564 void CheckFastObjectElements(Register map, Register scratch, Label* fail);
1569 void StoreNumberToDoubleElements(Register value_reg,
1570 Register key_reg,
1571 Register elements_reg,
1572 Register scratch1,
1578 // Register use:
1581 void IndexFromHash(Register hash, Register index);
1586 void EmitSeqStringSetCharCheck(Register string,
1587 Register index,
1589 Register scratch,
1595 void CheckAccessGlobalProxy(Register holder_reg,
1596 Register scratch1,
1597 Register scratch2,
1602 void GetNumberHash(Register key, Register scratch);
1617 Register elements,
1618 Register key,
1619 Register result,
1620 Register scratch0,
1621 Register scratch1,
1622 Register scratch2,
1623 Register scratch3);
1633 void CheckEnumCache(Register object,
1634 Register null_value,
1635 Register scratch0,
1636 Register scratch1,
1637 Register scratch2,
1638 Register scratch3,
1647 void TestJSArrayForAllocationMemento(Register receiver,
1648 Register scratch1,
1649 Register scratch2,
1652 void JumpIfJSArrayHasAllocationMemento(Register receiver,
1653 Register scratch1,
1654 Register scratch2,
1698 const Register& scratch,
1712 const Register& scratch,
1715 void LoadContext(Register dst, int context_chain_length);
1719 void TruncatingDiv(Register result, Register dividend, int32_t divisor);
1724 void SetCounter(StatsCounter* counter, int value, Register scratch1,
1725 Register scratch2);
1726 void IncrementCounter(StatsCounter* counter, int value, Register scratch1,
1727 Register scratch2);
1728 void DecrementCounter(StatsCounter* counter, int value, Register scratch1,
1729 Register scratch2);
1742 void RememberedSetHelper(Register object, // Used for debug code.
1743 Register addr,
1744 Register scratch1,
1757 void StoreToSafepointRegisterSlot(Register src, Register dst) {
1763 void LoadFromSafepointRegisterSlot(Register dst, Register src) {
1767 void CheckPageFlagSet(const Register& object,
1768 const Register& scratch,
1772 void CheckPageFlagClear(const Register& object,
1773 const Register& scratch,
1778 Register scratch,
1782 // Register 'object' is preserved.
1783 void JumpIfNotInNewSpace(Register object,
1788 void JumpIfInNewSpace(Register object,
1799 Register object,
1801 Register value,
1802 Register scratch,
1813 Register context,
1815 Register value,
1816 Register scratch,
1835 Register object,
1836 Register map,
1837 Register dst,
1845 Register object,
1846 Register address,
1847 Register value,
1860 void EnsureNotWhite(Register object,
1861 Register scratch1,
1862 Register scratch2,
1863 Register scratch3,
1864 Register scratch4,
1869 void JumpIfDataObject(Register value,
1870 Register scratch,
1880 inline void GetMarkBits(Register addr_reg,
1881 Register bitmap_reg,
1882 Register shift_reg);
1885 void HasColor(Register object,
1886 Register scratch0,
1887 Register scratch1,
1892 void JumpIfBlack(Register object,
1893 Register scratch0,
1894 Register scratch1,
1900 void GetRelocatedValueLocation(Register ldr_location,
1901 Register result);
1910 void AssertRegisterIsClear(Register reg, BailoutReason reason);
1912 Register reg,
1915 void AssertFastElements(Register elements);
1921 void AssertHasValidColor(const Register& reg);
1926 void AssertIsString(const Register& object);
1930 void CheckRegisterIsClear(Register reg, BailoutReason reason);
1942 Register map_in_out,
1943 Register scratch1,
1944 Register scratch2,
1947 void LoadGlobalFunction(int index, Register function);
1951 void LoadGlobalFunctionInitialMap(Register function,
1952 Register map,
1953 Register scratch);
2036 void JumpIfDictionaryInPrototypeChain(Register object, Register scratch0,
2037 Register scratch1, Label* found);
2051 void CopyFieldsLoopPairsHelper(Register dst, Register src, unsigned count,
2052 Register scratch1, Register scratch2,
2053 Register scratch3, Register scratch4,
2054 Register scratch5);
2055 void CopyFieldsUnrolledPairsHelper(Register dst, Register src, unsigned count,
2056 Register scratch1, Register scratch2,
2057 Register scratch3, Register scratch4);
2058 void CopyFieldsUnrolledHelper(Register dst, Register src, unsigned count,
2059 Register scratch1, Register scratch2,
2060 Register scratch3);
2087 void JumpToHandlerEntry(Register exception,
2088 Register object,
2089 Register state,
2090 Register scratch1,
2091 Register scratch2);
2094 void InNewSpace(Register object,
2107 void TryRepresentDoubleAsInt(Register as_int,
2134 Register sp_;
2140 void InitializeNewString(Register string,
2141 Register length,
2143 Register scratch1,
2144 Register scratch2);
2242 Register AcquireW() { return AcquireNextAvailable(available_).W(); }
2243 Register AcquireX() { return AcquireNextAvailable(available_).X(); }
2247 Register UnsafeAcquire(const Register& reg) {
2248 return Register(UnsafeAcquire(available_, reg));
2251 Register AcquireSameSizeAs(const Register& reg);
2269 inline MemOperand ContextMemOperand(Register context, int index) {
2287 const Register& SmiRegister() const {
2301 static void Emit(MacroAssembler* masm, const Register& reg,
2311 Register reg_;