Lines Matching refs:MacroAssembler
58 void Initialise(MacroAssembler* masm,
83 void Initialise(MacroAssembler* masm,
90 void Initialise(MacroAssembler* masm,
96 void Initialise(MacroAssembler* masm, const PRegister& pd, uint64_t value0) {
115 void Initialise(MacroAssembler* masm,
1805 // The MacroAssembler implements non-destructive operations using movprfx.
1953 // The MacroAssembler implements non-destructive operations using movprfx.
2101 // The MacroAssembler implements non-destructive operations using movprfx.
2761 typedef void (MacroAssembler::*PfirstPnextFn)(const PRegisterWithLaneSize& pd,
2782 // If pd.Is(pn), the MacroAssembler simply passes the arguments directly to
2791 // The MacroAssembler supports non-destructive use.
2841 &MacroAssembler::Pfirst,
2855 &MacroAssembler::Pnext,
3383 MacroAssembler::*AssemblePtrueFn)(const PRegisterWithLaneSize& pd,
3385 AssemblePtrueFn assemble = &MacroAssembler::ptrue;
3387 assemble = &MacroAssembler::ptrues;
3506 // logical effect, so the MacroAssembler accepts anything.
3693 typedef void (MacroAssembler::*CntFn)(const Register& dst,
3698 void GenerateCntSequence(MacroAssembler* masm,
3814 CntHelper(config, &MacroAssembler::Cntb, 1, kBRegSize);
3815 CntHelper(config, &MacroAssembler::Cntb, 2, kBRegSize);
3816 CntHelper(config, &MacroAssembler::Cntb, 15, kBRegSize);
3817 CntHelper(config, &MacroAssembler::Cntb, 16, kBRegSize);
3821 CntHelper(config, &MacroAssembler::Cnth, 1, kHRegSize);
3822 CntHelper(config, &MacroAssembler::Cnth, 2, kHRegSize);
3823 CntHelper(config, &MacroAssembler::Cnth, 15, kHRegSize);
3824 CntHelper(config, &MacroAssembler::Cnth, 16, kHRegSize);
3828 CntHelper(config, &MacroAssembler::Cntw, 1, kWRegSize);
3829 CntHelper(config, &MacroAssembler::Cntw, 2, kWRegSize);
3830 CntHelper(config, &MacroAssembler::Cntw, 15, kWRegSize);
3831 CntHelper(config, &MacroAssembler::Cntw, 16, kWRegSize);
3835 CntHelper(config, &MacroAssembler::Cntd, 1, kDRegSize);
3836 CntHelper(config, &MacroAssembler::Cntd, 2, kDRegSize);
3837 CntHelper(config, &MacroAssembler::Cntd, 15, kDRegSize);
3838 CntHelper(config, &MacroAssembler::Cntd, 16, kDRegSize);
3842 DecHelper(config, &MacroAssembler::Decb, 1, kBRegSize, 42);
3843 DecHelper(config, &MacroAssembler::Decb, 2, kBRegSize, -1);
3844 DecHelper(config, &MacroAssembler::Decb, 15, kBRegSize, INT64_MIN);
3845 DecHelper(config, &MacroAssembler::Decb, 16, kBRegSize, -42);
3849 DecHelper(config, &MacroAssembler::Dech, 1, kHRegSize, 42);
3850 DecHelper(config, &MacroAssembler::Dech, 2, kHRegSize, -1);
3851 DecHelper(config, &MacroAssembler::Dech, 15, kHRegSize, INT64_MIN);
3852 DecHelper(config, &MacroAssembler::Dech, 16, kHRegSize, -42);
3856 DecHelper(config, &MacroAssembler::Decw, 1, kWRegSize, 42);
3857 DecHelper(config, &MacroAssembler::Decw, 2, kWRegSize, -1);
3858 DecHelper(config, &MacroAssembler::Decw, 15, kWRegSize, INT64_MIN);
3859 DecHelper(config, &MacroAssembler::Decw, 16, kWRegSize, -42);
3863 DecHelper(config, &MacroAssembler::Decd, 1, kDRegSize, 42);
3864 DecHelper(config, &MacroAssembler::Decd, 2, kDRegSize, -1);
3865 DecHelper(config, &MacroAssembler::Decd, 15, kDRegSize, INT64_MIN);
3866 DecHelper(config, &MacroAssembler::Decd, 16, kDRegSize, -42);
3870 IncHelper(config, &MacroAssembler::Incb, 1, kBRegSize, 42);
3871 IncHelper(config, &MacroAssembler::Incb, 2, kBRegSize, -1);
3872 IncHelper(config, &MacroAssembler::Incb, 15, kBRegSize, INT64_MAX);
3873 IncHelper(config, &MacroAssembler::Incb, 16, kBRegSize, -42);
3877 IncHelper(config, &MacroAssembler::Inch, 1, kHRegSize, 42);
3878 IncHelper(config, &MacroAssembler::Inch, 2, kHRegSize, -1);
3879 IncHelper(config, &MacroAssembler::Inch, 15, kHRegSize, INT64_MAX);
3880 IncHelper(config, &MacroAssembler::Inch, 16, kHRegSize, -42);
3884 IncHelper(config, &MacroAssembler::Incw, 1, kWRegSize, 42);
3885 IncHelper(config, &MacroAssembler::Incw, 2, kWRegSize, -1);
3886 IncHelper(config, &MacroAssembler::Incw, 15, kWRegSize, INT64_MAX);
3887 IncHelper(config, &MacroAssembler::Incw, 16, kWRegSize, -42);
3891 IncHelper(config, &MacroAssembler::Incd, 1, kDRegSize, 42);
3892 IncHelper(config, &MacroAssembler::Incd, 2, kDRegSize, -1);
3893 IncHelper(config, &MacroAssembler::Incd, 15, kDRegSize, INT64_MAX);
3894 IncHelper(config, &MacroAssembler::Incd, 16, kDRegSize, -42);
3986 QDecHelper<int64_t>(config, &MacroAssembler::Sqdecb, 1, kBRegSize, 1);
3987 QDecHelper<int64_t>(config, &MacroAssembler::Sqdecb, 2, kBRegSize, bigneg);
3988 QDecHelper<int64_t>(config, &MacroAssembler::Sqdecb, 15, kBRegSize, 999);
3989 QDecHelper<int64_t>(config, &MacroAssembler::Sqdecb, 16, kBRegSize, bigpos);
3995 QDecHelper<int64_t>(config, &MacroAssembler::Sqdech, 1, kHRegSize, 1);
3996 QDecHelper<int64_t>(config, &MacroAssembler::Sqdech, 2, kHRegSize, bigneg);
3997 QDecHelper<int64_t>(config, &MacroAssembler::Sqdech, 15, kHRegSize, 999);
3998 QDecHelper<int64_t>(config, &MacroAssembler::Sqdech, 16, kHRegSize, bigpos);
4004 QDecHelper<int64_t>(config, &MacroAssembler::Sqdecw, 1, kWRegSize, 1);
4005 QDecHelper<int64_t>(config, &MacroAssembler::Sqdecw, 2, kWRegSize, bigneg);
4006 QDecHelper<int64_t>(config, &MacroAssembler::Sqdecw, 15, kWRegSize, 999);
4007 QDecHelper<int64_t>(config, &MacroAssembler::Sqdecw, 16, kWRegSize, bigpos);
4013 QDecHelper<int64_t>(config, &MacroAssembler::Sqdecd, 1, kDRegSize, 1);
4014 QDecHelper<int64_t>(config, &MacroAssembler::Sqdecd, 2, kDRegSize, bigneg);
4015 QDecHelper<int64_t>(config, &MacroAssembler::Sqdecd, 15, kDRegSize, 999);
4016 QDecHelper<int64_t>(config, &MacroAssembler::Sqdecd, 16, kDRegSize, bigpos);
4022 QIncHelper<int64_t>(config, &MacroAssembler::Sqincb, 1, kBRegSize, 1);
4023 QIncHelper<int64_t>(config, &MacroAssembler::Sqincb, 2, kBRegSize, bigneg);
4024 QIncHelper<int64_t>(config, &MacroAssembler::Sqincb, 15, kBRegSize, 999);
4025 QIncHelper<int64_t>(config, &MacroAssembler::Sqincb, 16, kBRegSize, bigpos);
4031 QIncHelper<int64_t>(config, &MacroAssembler::Sqinch, 1, kHRegSize, 1);
4032 QIncHelper<int64_t>(config, &MacroAssembler::Sqinch, 2, kHRegSize, bigneg);
4033 QIncHelper<int64_t>(config, &MacroAssembler::Sqinch, 15, kHRegSize, 999);
4034 QIncHelper<int64_t>(config, &MacroAssembler::Sqinch, 16, kHRegSize, bigpos);
4040 QIncHelper<int64_t>(config, &MacroAssembler::Sqincw, 1, kWRegSize, 1);
4041 QIncHelper<int64_t>(config, &MacroAssembler::Sqincw, 2, kWRegSize, bigneg);
4042 QIncHelper<int64_t>(config, &MacroAssembler::Sqincw, 15, kWRegSize, 999);
4043 QIncHelper<int64_t>(config, &MacroAssembler::Sqincw, 16, kWRegSize, bigpos);
4049 QIncHelper<int64_t>(config, &MacroAssembler::Sqincd, 1, kDRegSize, 1);
4050 QIncHelper<int64_t>(config, &MacroAssembler::Sqincd, 2, kDRegSize, bigneg);
4051 QIncHelper<int64_t>(config, &MacroAssembler::Sqincd, 15, kDRegSize, 999);
4052 QIncHelper<int64_t>(config, &MacroAssembler::Sqincd, 16, kDRegSize, bigpos);
4058 QDecHelper<uint32_t>(config, &MacroAssembler::Uqdecb, 1, kBRegSize, 1);
4059 QDecHelper<uint32_t>(config, &MacroAssembler::Uqdecb, 2, kBRegSize, 42);
4060 QDecHelper<uint32_t>(config, &MacroAssembler::Uqdecb, 15, kBRegSize, 999);
4061 QDecHelper<uint32_t>(config, &MacroAssembler::Uqdecb, 16, kBRegSize, big32);
4062 QDecHelper<uint64_t>(config, &MacroAssembler::Uqdecb, 1, kBRegSize, 1);
4063 QDecHelper<uint64_t>(config, &MacroAssembler::Uqdecb, 2, kBRegSize, 42);
4064 QDecHelper<uint64_t>(config, &MacroAssembler::Uqdecb, 15, kBRegSize, 999);
4065 QDecHelper<uint64_t>(config, &MacroAssembler::Uqdecb, 16, kBRegSize, big64);
4071 QDecHelper<uint32_t>(config, &MacroAssembler::Uqdech, 1, kHRegSize, 1);
4072 QDecHelper<uint32_t>(config, &MacroAssembler::Uqdech, 2, kHRegSize, 42);
4073 QDecHelper<uint32_t>(config, &MacroAssembler::Uqdech, 15, kHRegSize, 999);
4074 QDecHelper<uint32_t>(config, &MacroAssembler::Uqdech, 16, kHRegSize, big32);
4075 QDecHelper<uint64_t>(config, &MacroAssembler::Uqdech, 1, kHRegSize, 1);
4076 QDecHelper<uint64_t>(config, &MacroAssembler::Uqdech, 2, kHRegSize, 42);
4077 QDecHelper<uint64_t>(config, &MacroAssembler::Uqdech, 15, kHRegSize, 999);
4078 QDecHelper<uint64_t>(config, &MacroAssembler::Uqdech, 16, kHRegSize, big64);
4084 QDecHelper<uint32_t>(config, &MacroAssembler::Uqdecw, 1, kWRegSize, 1);
4085 QDecHelper<uint32_t>(config, &MacroAssembler::Uqdecw, 2, kWRegSize, 42);
4086 QDecHelper<uint32_t>(config, &MacroAssembler::Uqdecw, 15, kWRegSize, 999);
4087 QDecHelper<uint32_t>(config, &MacroAssembler::Uqdecw, 16, kWRegSize, big32);
4088 QDecHelper<uint64_t>(config, &MacroAssembler::Uqdecw, 1, kWRegSize, 1);
4089 QDecHelper<uint64_t>(config, &MacroAssembler::Uqdecw, 2, kWRegSize, 42);
4090 QDecHelper<uint64_t>(config, &MacroAssembler::Uqdecw, 15, kWRegSize, 999);
4091 QDecHelper<uint64_t>(config, &MacroAssembler::Uqdecw, 16, kWRegSize, big64);
4097 QDecHelper<uint32_t>(config, &MacroAssembler::Uqdecd, 1, kDRegSize, 1);
4098 QDecHelper<uint32_t>(config, &MacroAssembler::Uqdecd, 2, kDRegSize, 42);
4099 QDecHelper<uint32_t>(config, &MacroAssembler::Uqdecd, 15, kDRegSize, 999);
4100 QDecHelper<uint32_t>(config, &MacroAssembler::Uqdecd, 16, kDRegSize, big32);
4101 QDecHelper<uint64_t>(config, &MacroAssembler::Uqdecd, 1, kDRegSize, 1);
4102 QDecHelper<uint64_t>(config, &MacroAssembler::Uqdecd, 2, kDRegSize, 42);
4103 QDecHelper<uint64_t>(config, &MacroAssembler::Uqdecd, 15, kDRegSize, 999);
4104 QDecHelper<uint64_t>(config, &MacroAssembler::Uqdecd, 16, kDRegSize, big64);
4110 QIncHelper<uint32_t>(config, &MacroAssembler::Uqincb, 1, kBRegSize, 1);
4111 QIncHelper<uint32_t>(config, &MacroAssembler::Uqincb, 2, kBRegSize, 42);
4112 QIncHelper<uint32_t>(config, &MacroAssembler::Uqincb, 15, kBRegSize, 999);
4113 QIncHelper<uint32_t>(config, &MacroAssembler::Uqincb, 16, kBRegSize, big32);
4114 QIncHelper<uint64_t>(config, &MacroAssembler::Uqincb, 1, kBRegSize, 1);
4115 QIncHelper<uint64_t>(config, &MacroAssembler::Uqincb, 2, kBRegSize, 42);
4116 QIncHelper<uint64_t>(config, &MacroAssembler::Uqincb, 15, kBRegSize, 999);
4117 QIncHelper<uint64_t>(config, &MacroAssembler::Uqincb, 16, kBRegSize, big64);
4123 QIncHelper<uint32_t>(config, &MacroAssembler::Uqinch, 1, kHRegSize, 1);
4124 QIncHelper<uint32_t>(config, &MacroAssembler::Uqinch, 2, kHRegSize, 42);
4125 QIncHelper<uint32_t>(config, &MacroAssembler::Uqinch, 15, kHRegSize, 999);
4126 QIncHelper<uint32_t>(config, &MacroAssembler::Uqinch, 16, kHRegSize, big32);
4127 QIncHelper<uint64_t>(config, &MacroAssembler::Uqinch, 1, kHRegSize, 1);
4128 QIncHelper<uint64_t>(config, &MacroAssembler::Uqinch, 2, kHRegSize, 42);
4129 QIncHelper<uint64_t>(config, &MacroAssembler::Uqinch, 15, kHRegSize, 999);
4130 QIncHelper<uint64_t>(config, &MacroAssembler::Uqinch, 16, kHRegSize, big64);
4136 QIncHelper<uint32_t>(config, &MacroAssembler::Uqincw, 1, kWRegSize, 1);
4137 QIncHelper<uint32_t>(config, &MacroAssembler::Uqincw, 2, kWRegSize, 42);
4138 QIncHelper<uint32_t>(config, &MacroAssembler::Uqincw, 15, kWRegSize, 999);
4139 QIncHelper<uint32_t>(config, &MacroAssembler::Uqincw, 16, kWRegSize, big32);
4140 QIncHelper<uint64_t>(config, &MacroAssembler::Uqincw, 1, kWRegSize, 1);
4141 QIncHelper<uint64_t>(config, &MacroAssembler::Uqincw, 2, kWRegSize, 42);
4142 QIncHelper<uint64_t>(config, &MacroAssembler::Uqincw, 15, kWRegSize, 999);
4143 QIncHelper<uint64_t>(config, &MacroAssembler::Uqincw, 16, kWRegSize, big64);
4149 QIncHelper<uint32_t>(config, &MacroAssembler::Uqincd, 1, kDRegSize, 1);
4150 QIncHelper<uint32_t>(config, &MacroAssembler::Uqincd, 2, kDRegSize, 42);
4151 QIncHelper<uint32_t>(config, &MacroAssembler::Uqincd, 15, kDRegSize, 999);
4152 QIncHelper<uint32_t>(config, &MacroAssembler::Uqincd, 16, kDRegSize, big32);
4153 QIncHelper<uint64_t>(config, &MacroAssembler::Uqincd, 1, kDRegSize, 1);
4154 QIncHelper<uint64_t>(config, &MacroAssembler::Uqincd, 2, kDRegSize, 42);
4155 QIncHelper<uint64_t>(config, &MacroAssembler::Uqincd, 15, kDRegSize, 999);
4156 QIncHelper<uint64_t>(config, &MacroAssembler::Uqincd, 16, kDRegSize, big64);
4159 typedef void (MacroAssembler::*QIncDecXWFn)(const Register& dst,
4268 QDecXWHelper(config, &MacroAssembler::Sqdecb, 1, kBRegSize, 1);
4269 QDecXWHelper(config, &MacroAssembler::Sqdecb, 2, kBRegSize, INT32_MIN + 42);
4270 QDecXWHelper(config, &MacroAssembler::Sqdecb, 15, kBRegSize, 999);
4271 QDecXWHelper(config, &MacroAssembler::Sqdecb, 16, kBRegSize, INT32_MAX - 42);
4275 QDecXWHelper(config, &MacroAssembler::Sqdech, 1, kHRegSize, 1);
4276 QDecXWHelper(config, &MacroAssembler::Sqdech, 2, kHRegSize, INT32_MIN + 42);
4277 QDecXWHelper(config, &MacroAssembler::Sqdech, 15, kHRegSize, 999);
4278 QDecXWHelper(config, &MacroAssembler::Sqdech, 16, kHRegSize, INT32_MAX - 42);
4282 QDecXWHelper(config, &MacroAssembler::Sqdecw, 1, kWRegSize, 1);
4283 QDecXWHelper(config, &MacroAssembler::Sqdecw, 2, kWRegSize, INT32_MIN + 42);
4284 QDecXWHelper(config, &MacroAssembler::Sqdecw, 15, kWRegSize, 999);
4285 QDecXWHelper(config, &MacroAssembler::Sqdecw, 16, kWRegSize, INT32_MAX - 42);
4289 QDecXWHelper(config, &MacroAssembler::Sqdecd, 1, kDRegSize, 1);
4290 QDecXWHelper(config, &MacroAssembler::Sqdecd, 2, kDRegSize, INT32_MIN + 42);
4291 QDecXWHelper(config, &MacroAssembler::Sqdecd, 15, kDRegSize, 999);
4292 QDecXWHelper(config, &MacroAssembler::Sqdecd, 16, kDRegSize, INT32_MAX - 42);
4296 QIncXWHelper(config, &MacroAssembler::Sqincb, 1, kBRegSize, 1);
4297 QIncXWHelper(config, &MacroAssembler::Sqincb, 2, kBRegSize, INT32_MIN + 42);
4298 QIncXWHelper(config, &MacroAssembler::Sqincb, 15, kBRegSize, 999);
4299 QIncXWHelper(config, &MacroAssembler::Sqincb, 16, kBRegSize, INT32_MAX - 42);
4303 QIncXWHelper(config, &MacroAssembler::Sqinch, 1, kHRegSize, 1);
4304 QIncXWHelper(config, &MacroAssembler::Sqinch, 2, kHRegSize, INT32_MIN + 42);
4305 QIncXWHelper(config, &MacroAssembler::Sqinch, 15, kHRegSize, 999);
4306 QIncXWHelper(config, &MacroAssembler::Sqinch, 16, kHRegSize, INT32_MAX - 42);
4310 QIncXWHelper(config, &MacroAssembler::Sqincw, 1, kWRegSize, 1);
4311 QIncXWHelper(config, &MacroAssembler::Sqincw, 2, kWRegSize, INT32_MIN + 42);
4312 QIncXWHelper(config, &MacroAssembler::Sqincw, 15, kWRegSize, 999);
4313 QIncXWHelper(config, &MacroAssembler::Sqincw, 16, kWRegSize, INT32_MAX - 42);
4317 QIncXWHelper(config, &MacroAssembler::Sqincd, 1, kDRegSize, 1);
4318 QIncXWHelper(config, &MacroAssembler::Sqincd, 2, kDRegSize, INT32_MIN + 42);
4319 QIncXWHelper(config, &MacroAssembler::Sqincd, 15, kDRegSize, 999);
4320 QIncXWHelper(config, &MacroAssembler::Sqincd, 16, kDRegSize, INT32_MAX - 42);
4323 typedef void (MacroAssembler::*IncDecZFn)(const ZRegister& dst,
4326 typedef void (MacroAssembler::*AddSubFn)(const ZRegister& dst,
4422 CntFn cnth = &MacroAssembler::Cnth;
4423 CntFn cntw = &MacroAssembler::Cntw;
4424 CntFn cntd = &MacroAssembler::Cntd;
4425 AddSubFn sub = &MacroAssembler::Sub;
4426 AddSubFn add = &MacroAssembler::Add;
4428 IncDecZHelper(config, &MacroAssembler::Dech, cnth, sub, mult, kHRegSize);
4429 IncDecZHelper(config, &MacroAssembler::Decw, cntw, sub, mult, kSRegSize);
4430 IncDecZHelper(config, &MacroAssembler::Decd, cntd, sub, mult, kDRegSize);
4431 IncDecZHelper(config, &MacroAssembler::Inch, cnth, add, mult, kHRegSize);
4432 IncDecZHelper(config, &MacroAssembler::Incw, cntw, add, mult, kSRegSize);
4433 IncDecZHelper(config, &MacroAssembler::Incd, cntd, add, mult, kDRegSize);
4438 CntFn cnth = &MacroAssembler::Cnth;
4439 CntFn cntw = &MacroAssembler::Cntw;
4440 CntFn cntd = &MacroAssembler::Cntd;
4441 AddSubFn sub = &MacroAssembler::Uqsub;
4442 AddSubFn add = &MacroAssembler::Uqadd;
4444 IncDecZHelper(config, &MacroAssembler::Uqdech, cnth, sub, mult, kHRegSize);
4445 IncDecZHelper(config, &MacroAssembler::Uqdecw, cntw, sub, mult, kSRegSize);
4446 IncDecZHelper(config, &MacroAssembler::Uqdecd, cntd, sub, mult, kDRegSize);
4447 IncDecZHelper(config, &MacroAssembler::Uqinch, cnth, add, mult, kHRegSize);
4448 IncDecZHelper(config, &MacroAssembler::Uqincw, cntw, add, mult, kSRegSize);
4449 IncDecZHelper(config, &MacroAssembler::Uqincd, cntd, add, mult, kDRegSize);
4454 CntFn cnth = &MacroAssembler::Cnth;
4455 CntFn cntw = &MacroAssembler::Cntw;
4456 CntFn cntd = &MacroAssembler::Cntd;
4457 AddSubFn sub = &MacroAssembler::Sqsub;
4458 AddSubFn add = &MacroAssembler::Sqadd;
4460 IncDecZHelper(config, &MacroAssembler::Sqdech, cnth, sub, mult, kHRegSize);
4461 IncDecZHelper(config, &MacroAssembler::Sqdecw, cntw, sub, mult, kSRegSize);
4462 IncDecZHelper(config, &MacroAssembler::Sqdecd, cntd, sub, mult, kDRegSize);
4463 IncDecZHelper(config, &MacroAssembler::Sqinch, cnth, add, mult, kHRegSize);
4464 IncDecZHelper(config, &MacroAssembler::Sqincw, cntw, add, mult, kSRegSize);
4465 IncDecZHelper(config, &MacroAssembler::Sqincd, cntd, add, mult, kDRegSize);
4469 typedef void (MacroAssembler::*ArithPredicatedFn)(const ZRegister& zd,
4580 ArithPredicatedFn fn = &MacroAssembler::Add;
4599 fn = &MacroAssembler::Sub;
4647 ArithPredicatedFn fn = &MacroAssembler::Umax;
4663 fn = &MacroAssembler::Umin;
4680 fn = &MacroAssembler::Uabd;
4728 ArithPredicatedFn fn = &MacroAssembler::Smax;
4745 fn = &MacroAssembler::Smin;
4761 fn = &MacroAssembler::Sabd;
4809 ArithPredicatedFn fn = &MacroAssembler::Mul;
4826 fn = &MacroAssembler::Umulh;
4865 ArithPredicatedFn fn = &MacroAssembler::Smulh;
4906 ArithPredicatedFn fn = &MacroAssembler::And;
4922 fn = &MacroAssembler::Bic;
4938 fn = &MacroAssembler::Eor;
4954 fn = &MacroAssembler::Orr;
4991 ArithPredicatedFn fn = &MacroAssembler::Sdiv;
5026 ArithPredicatedFn fn = &MacroAssembler::Udiv;
5032 typedef void (MacroAssembler::*ArithFn)(const ZRegister& zd,
5070 ArithFn fn = &MacroAssembler::Add;
5083 fn = &MacroAssembler::Sqadd;
5096 fn = &MacroAssembler::Uqadd;
5128 ArithFn fn = &MacroAssembler::Sub;
5152 fn = &MacroAssembler::Sqsub;
5176 fn = &MacroAssembler::Uqsub;
5215 // For unencodable multipliers, the MacroAssembler uses a sequence of
5257 // There is no `rdpl` instruction, so the MacroAssembler maps `Rdpl` onto
5271 // For unencodable multipliers, the MacroAssembler uses a sequence of
5322 // For unencodable multipliers, the MacroAssembler uses `Rdvl` and `Add`.
5404 // For unencodable multipliers, the MacroAssembler uses `Addvl` if it can, or
5479 // Shadow the `MacroAssembler` type so that the test macros work without
5481 typedef CalculateSVEAddressMacroAssembler MacroAssembler;
8731 static void ScalarLoadHelper(MacroAssembler* masm,
8776 static void ScalarLoadHelper(MacroAssembler* masm,
8799 typedef void (MacroAssembler::*Ld1Macro)(const ZRegister& zt,
9020 Ld1Macro ldff1b = &MacroAssembler::Ldff1b;
9021 Ld1Macro ld1b = &MacroAssembler::Ld1b;
9027 Ld1Macro ldff1sb = &MacroAssembler::Ldff1sb;
9028 Ld1Macro ld1sb = &MacroAssembler::Ld1sb;
9044 Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
9045 Ld1Macro ld1h = &MacroAssembler::Ld1h;
9050 Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
9051 Ld1Macro ld1w = &MacroAssembler::Ld1w;
9055 Ld1Macro ldff1d = &MacroAssembler::Ldff1d;
9056 Ld1Macro ld1d = &MacroAssembler::Ld1d;
9059 Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
9060 Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
9064 Ld1Macro ldff1sw = &MacroAssembler::Ldff1sw;
9065 Ld1Macro ld1sw = &MacroAssembler::Ld1sw;
9083 Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
9084 Ld1Macro ld1h = &MacroAssembler::Ld1h;
9088 Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
9089 Ld1Macro ld1w = &MacroAssembler::Ld1w;
9093 Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
9094 Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
9112 Ld1Macro ldff1b = &MacroAssembler::Ldff1b;
9113 Ld1Macro ld1b = &MacroAssembler::Ld1b;
9117 Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
9118 Ld1Macro ld1h = &MacroAssembler::Ld1h;
9122 Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
9123 Ld1Macro ld1w = &MacroAssembler::Ld1w;
9127 Ld1Macro ldff1sb = &MacroAssembler::Ldff1sb;
9128 Ld1Macro ld1sb = &MacroAssembler::Ld1sb;
9132 Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
9133 Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
9152 Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
9153 Ld1Macro ld1h = &MacroAssembler::Ld1h;
9157 Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
9158 Ld1Macro ld1w = &MacroAssembler::Ld1w;
9162 Ld1Macro ldff1d = &MacroAssembler::Ldff1d;
9163 Ld1Macro ld1d = &MacroAssembler::Ld1d;
9167 Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
9168 Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
9172 Ld1Macro ldff1sw = &MacroAssembler::Ldff1sw;
9173 Ld1Macro ld1sw = &MacroAssembler::Ld1sw;
9192 Ld1Macro ldff1b = &MacroAssembler::Ldff1b;
9193 Ld1Macro ld1b = &MacroAssembler::Ld1b;
9197 Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
9198 Ld1Macro ld1h = &MacroAssembler::Ld1h;
9202 Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
9203 Ld1Macro ld1w = &MacroAssembler::Ld1w;
9207 Ld1Macro ldff1d = &MacroAssembler::Ldff1d;
9208 Ld1Macro ld1d = &MacroAssembler::Ld1d;
9212 Ld1Macro ldff1sb = &MacroAssembler::Ldff1sb;
9213 Ld1Macro ld1sb = &MacroAssembler::Ld1sb;
9217 Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
9218 Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
9222 Ld1Macro ldff1sw = &MacroAssembler::Ldff1sw;
9223 Ld1Macro ld1sw = &MacroAssembler::Ld1sw;
9241 Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
9242 Ld1Macro ld1h = &MacroAssembler::Ld1h;
9245 Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
9246 Ld1Macro ld1w = &MacroAssembler::Ld1w;
9249 Ld1Macro ldff1d = &MacroAssembler::Ldff1d;
9250 Ld1Macro ld1d = &MacroAssembler::Ld1d;
9253 Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
9254 Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
9257 Ld1Macro ldff1sw = &MacroAssembler::Ldff1sw;
9258 Ld1Macro ld1sw = &MacroAssembler::Ld1sw;
9275 Ld1Macro ldff1b = &MacroAssembler::Ldff1b;
9276 Ld1Macro ld1b = &MacroAssembler::Ld1b;
9279 Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
9280 Ld1Macro ld1h = &MacroAssembler::Ld1h;
9283 Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
9284 Ld1Macro ld1w = &MacroAssembler::Ld1w;
9287 Ld1Macro ldff1d = &MacroAssembler::Ldff1d;
9288 Ld1Macro ld1d = &MacroAssembler::Ld1d;
9291 Ld1Macro ldff1sb = &MacroAssembler::Ldff1sb;
9292 Ld1Macro ld1sb = &MacroAssembler::Ld1sb;
9295 Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
9296 Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
9299 Ld1Macro ldff1sw = &MacroAssembler::Ldff1sw;
9300 Ld1Macro ld1sw = &MacroAssembler::Ld1sw;
10027 &MacroAssembler::Ld1b,
10035 &MacroAssembler::Ld1h,
10043 &MacroAssembler::Ld1w,
10051 &MacroAssembler::Ld1d,
10059 &MacroAssembler::Ld1sb,
10067 &MacroAssembler::Ld1sh,
10075 &MacroAssembler::Ld1sw,
10083 &MacroAssembler::Ld1b,
10091 &MacroAssembler::Ld1h,
10099 &MacroAssembler::Ld1w,
10107 &MacroAssembler::Ld1sb,
10115 &MacroAssembler::Ld1sh,
10131 Ld1Macro ld1h = &MacroAssembler::Ld1h;
10132 Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
10136 Ld1Macro ld1w = &MacroAssembler::Ld1w;
10137 Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
10141 Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
10142 Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
10159 Ld1Macro ld1b = &MacroAssembler::Ld1b;
10160 Ld1Macro ldff1b = &MacroAssembler::Ldff1b;
10164 Ld1Macro ld1h = &MacroAssembler::Ld1h;
10165 Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
10169 Ld1Macro ld1w = &MacroAssembler::Ld1w;
10170 Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
10174 Ld1Macro ld1sb = &MacroAssembler::Ld1sb;
10175 Ld1Macro ldff1sb = &MacroAssembler::Ldff1sb;
10179 Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
10180 Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
10197 Ld1Macro ld1h = &MacroAssembler::Ld1h;
10198 Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
10202 Ld1Macro ld1w = &MacroAssembler::Ld1w;
10203 Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
10207 Ld1Macro ld1d = &MacroAssembler::Ld1d;
10208 Ld1Macro ldff1d = &MacroAssembler::Ldff1d;
10212 Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
10213 Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
10217 Ld1Macro ld1sw = &MacroAssembler::Ld1sw;
10218 Ld1Macro ldff1sw = &MacroAssembler::Ldff1sw;
10235 Ld1Macro ld1h = &MacroAssembler::Ld1h;
10236 Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
10240 Ld1Macro ld1w = &MacroAssembler::Ld1w;
10241 Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
10245 Ld1Macro ld1d = &MacroAssembler::Ld1d;
10246 Ld1Macro ldff1d = &MacroAssembler::Ldff1d;
10250 Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
10251 Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
10255 Ld1Macro ld1sw = &MacroAssembler::Ld1sw;
10256 Ld1Macro ldff1sw = &MacroAssembler::Ldff1sw;
10273 Ld1Macro ld1h = &MacroAssembler::Ld1h;
10274 Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
10277 Ld1Macro ld1w = &MacroAssembler::Ld1w;
10278 Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
10281 Ld1Macro ld1d = &MacroAssembler::Ld1d;
10282 Ld1Macro ldff1d = &MacroAssembler::Ldff1d;
10285 Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
10286 Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
10289 Ld1Macro ld1sw = &MacroAssembler::Ld1sw;
10290 Ld1Macro ldff1sw = &MacroAssembler::Ldff1sw;
10306 Ld1Macro ld1b = &MacroAssembler::Ld1b;
10307 Ld1Macro ldff1b = &MacroAssembler::Ldff1b;
10310 Ld1Macro ld1h = &MacroAssembler::Ld1h;
10311 Ld1Macro ldff1h = &MacroAssembler::Ldff1h;
10314 Ld1Macro ld1w = &MacroAssembler::Ld1w;
10315 Ld1Macro ldff1w = &MacroAssembler::Ldff1w;
10318 Ld1Macro ld1d = &MacroAssembler::Ld1d;
10319 Ld1Macro ldff1d = &MacroAssembler::Ldff1d;
10322 Ld1Macro ld1sb = &MacroAssembler::Ld1sb;
10323 Ld1Macro ldff1sb = &MacroAssembler::Ldff1sb;
10326 Ld1Macro ld1sh = &MacroAssembler::Ld1sh;
10327 Ld1Macro ldff1sh = &MacroAssembler::Ldff1sh;
10330 Ld1Macro ld1sw = &MacroAssembler::Ld1sw;
10331 Ld1Macro ldff1sw = &MacroAssembler::Ldff1sw;
10776 typedef void (MacroAssembler::*IntWideImmFn)(const ZRegister& zd,
10804 // The MacroAssembler needs a P scratch register for some of these macros,
10833 IntWideImmFn fn = &MacroAssembler::Smax;
10863 IntWideImmFn fn = &MacroAssembler::Smin;
10893 IntWideImmFn fn = &MacroAssembler::Umax;
10923 IntWideImmFn fn = &MacroAssembler::Umin;
10953 IntWideImmFn fn = &MacroAssembler::Mul;
10988 IntWideImmFn fn = &MacroAssembler::Add;
11034 IntWideImmFn fn = &MacroAssembler::Sqadd;
11065 IntWideImmFn fn = &MacroAssembler::Uqadd;
11095 IntWideImmFn fn = &MacroAssembler::Sub;
11141 IntWideImmFn fn = &MacroAssembler::Sqsub;
11172 IntWideImmFn fn = &MacroAssembler::Uqsub;
11907 static void IntSegmentPatternHelper(MacroAssembler* masm,
12145 ArithFn fn = &MacroAssembler::Fadd;
12189 ArithFn fn = &MacroAssembler::Fsub;
12233 ArithFn fn = &MacroAssembler::Fmul;
12266 typedef void (MacroAssembler::*FPArithPredicatedFn)(
12273 typedef void (MacroAssembler::*FPArithPredicatedNoNaNOptFn)(
12411 &MacroAssembler::Fdiv,
12432 &MacroAssembler::Fdiv,
12453 &MacroAssembler::Fdiv,
12541 &MacroAssembler::Fmax,
12559 &MacroAssembler::Fmin,
12598 &MacroAssembler::Fmax,
12616 &MacroAssembler::Fmin,
12655 &MacroAssembler::Fmax,
12673 &MacroAssembler::Fmin,
12787 macro = &MacroAssembler::Asr;
12796 macro = &MacroAssembler::Lsr;
12799 macro = &MacroAssembler::Lsl;
13363 typedef void (MacroAssembler::*BrkpFn)(const PRegisterWithLaneSize& pd,
13419 &MacroAssembler::Brkpa,
13420 &MacroAssembler::Brkpas,
13434 &MacroAssembler::Brkpb,
13435 &MacroAssembler::Brkpbs,
14106 typedef void (MacroAssembler::*BrkFn)(const PRegisterWithLaneSize& pd,
14110 typedef void (MacroAssembler::*BrksFn)(const PRegisterWithLaneSize& pd,
14175 &MacroAssembler::Brka,
14176 &MacroAssembler::Brkas,
14241 &MacroAssembler::Brkb,
14242 &MacroAssembler::Brkbs,
14300 typedef void (MacroAssembler::*BrknFn)(const PRegisterWithLaneSize& pd,
14305 typedef void (MacroAssembler::*BrknsFn)(const PRegisterWithLaneSize& pd,
14796 static void FPSegmentPatternHelper(MacroAssembler* masm,
14981 static void BasicFPArithHelper(MacroAssembler* masm,
15346 typedef void (MacroAssembler::*FcvtFrintMFn)(const ZRegister& zd,
15350 typedef void (MacroAssembler::*FcvtFrintZFn)(const ZRegister& zd,
15489 &MacroAssembler::Fcvtzs,
15497 &MacroAssembler::Fcvtzu,
15521 &MacroAssembler::Fcvtzs,
15529 &MacroAssembler::Fcvtzu,
15553 &MacroAssembler::Fcvtzs,
15561 &MacroAssembler::Fcvtzu,
15620 &MacroAssembler::Fcvtzs,
15628 &MacroAssembler::Fcvtzu,
15663 &MacroAssembler::Fcvtzs,
15671 &MacroAssembler::Fcvtzu,
15755 &MacroAssembler::Fcvtzs,
15763 &MacroAssembler::Fcvtzu,
15810 &MacroAssembler::Fcvtzs,
15818 &MacroAssembler::Fcvtzu,
15876 {{&MacroAssembler::Frinta, &MacroAssembler::Frinta, zd_expected_a},
15877 {&MacroAssembler::Frinti, &MacroAssembler::Frinti, zd_expected_i},
15878 {&MacroAssembler::Frintm, &MacroAssembler::Frintm, zd_expected_m},
15879 {&MacroAssembler::Frintn, &MacroAssembler::Frintn, zd_expected_n},
15880 {&MacroAssembler::Frintp, &MacroAssembler::Frintp, zd_expected_p},
15881 {&MacroAssembler::Frintx, &MacroAssembler::Frintx, zd_expected_x},
15882 {&MacroAssembler::Frintz, &MacroAssembler::Frintz, zd_expected_z}};
16631 typedef void (MacroAssembler::*FPMulAccFn)(
16743 &MacroAssembler::Fmla,
16757 &MacroAssembler::Fmla,
16771 &MacroAssembler::Fmla,
16794 &MacroAssembler::Fmls,
16808 &MacroAssembler::Fmls,
16822 &MacroAssembler::Fmls,
16845 &MacroAssembler::Fnmla,
16859 &MacroAssembler::Fnmla,
16873 &MacroAssembler::Fnmla,
16896 &MacroAssembler::Fnmls,
16910 &MacroAssembler::Fnmls,
16924 &MacroAssembler::Fnmls,
16933 typedef void (MacroAssembler::*FPMulAccIdxFn)(const ZRegister& zd,
17062 &MacroAssembler::Fmla, // vector form
17063 &MacroAssembler::Fmla, // indexed form
17069 &MacroAssembler::Fmls, // vector form
17070 &MacroAssembler::Fmls, // indexed form
17082 &MacroAssembler::Fmla, // vector form
17083 &MacroAssembler::Fmla, // indexed form
17089 &MacroAssembler::Fmls, // vector form
17090 &MacroAssembler::Fmls, // indexed form
17105 ArithFn arith_unpredicated_macro[] = {&MacroAssembler::Fadd,
17106 &MacroAssembler::Fsub,
17107 &MacroAssembler::Fmul};
17118 FPArithPredicatedFn arith_predicated_macro[] = {&MacroAssembler::Fmax,
17119 &MacroAssembler::Fmin};
17131 &MacroAssembler::Fdiv,
17176 &MacroAssembler::Fmla,
17186 &MacroAssembler::Fmls,
17196 &MacroAssembler::Fnmla,
17206 &MacroAssembler::Fnmls,
17685 typedef void (MacroAssembler::*FCmpFn)(const PRegisterWithLaneSize& pd,
17690 typedef void (MacroAssembler::*FCmpZeroFn)(const PRegisterWithLaneSize& pd,
17695 typedef void (MacroAssembler::*CmpFn)(const PRegisterWithLaneSize& pd,
17703 return &MacroAssembler::Facge;
17705 return &MacroAssembler::Facgt;
17707 return &MacroAssembler::Facle;
17709 return &MacroAssembler::Faclt;
17719 return &MacroAssembler::Fcmge;
17721 return &MacroAssembler::Fcmgt;
17723 return &MacroAssembler::Fcmle;
17725 return &MacroAssembler::Fcmlt;
17727 return &MacroAssembler::Fcmeq;
17729 return &MacroAssembler::Fcmne;
17731 return &MacroAssembler::Fcmuo;
17741 return &MacroAssembler::Fcmge;
17743 return &MacroAssembler::Fcmgt;
17745 return &MacroAssembler::Fcmle;
17747 return &MacroAssembler::Fcmlt;
17749 return &MacroAssembler::Fcmeq;
17751 return &MacroAssembler::Fcmne;
17761 return &MacroAssembler::Cmpge;
17763 return &MacroAssembler::Cmpgt;
17765 return &MacroAssembler::Cmple;
17767 return &MacroAssembler::Cmplt;
17769 return &MacroAssembler::Cmpeq;
17771 return &MacroAssembler::Cmpne;
17995 typedef void (MacroAssembler::*FPUnaryMFn)(const ZRegister& zd,
17999 typedef void (MacroAssembler::*FPUnaryZFn)(const ZRegister& zd,
18149 &MacroAssembler::Fcvt, // Merging form.
18150 &MacroAssembler::Fcvt); // Zerging form.
18229 &MacroAssembler::Frecpx, // Merging form.
18230 &MacroAssembler::Frecpx); // Zerging form.
18332 &MacroAssembler::Fsqrt, // Merging form.
18333 &MacroAssembler::Fsqrt); // Zerging form.
18590 LoadBcastHelper(config, kBRegSize, kBRegSize, &MacroAssembler::Ld1rb, false);
18591 LoadBcastHelper(config, kBRegSize, kHRegSize, &MacroAssembler::Ld1rb, false);
18592 LoadBcastHelper(config, kBRegSize, kSRegSize, &MacroAssembler::Ld1rb, false);
18593 LoadBcastHelper(config, kBRegSize, kDRegSize, &MacroAssembler::Ld1rb, false);
18597 LoadBcastHelper(config, kHRegSize, kHRegSize, &MacroAssembler::Ld1rh, false);
18598 LoadBcastHelper(config, kHRegSize, kSRegSize, &MacroAssembler::Ld1rh, false);
18599 LoadBcastHelper(config, kHRegSize, kDRegSize, &MacroAssembler::Ld1rh, false);
18603 LoadBcastHelper(config, kSRegSize, kSRegSize, &MacroAssembler::Ld1rw, false);
18604 LoadBcastHelper(config, kSRegSize, kDRegSize, &MacroAssembler::Ld1rw, false);
18608 LoadBcastHelper(config, kDRegSize, kDRegSize, &MacroAssembler::Ld1rd, false);
18612 LoadBcastHelper(config, kBRegSize, kHRegSize, &MacroAssembler::Ld1rsb, true);
18613 LoadBcastHelper(config, kBRegSize, kSRegSize, &MacroAssembler::Ld1rsb, true);
18614 LoadBcastHelper(config, kBRegSize, kDRegSize, &MacroAssembler::Ld1rsb, true);
18618 LoadBcastHelper(config, kHRegSize, kSRegSize, &MacroAssembler::Ld1rsh, true);
18619 LoadBcastHelper(config, kHRegSize, kDRegSize, &MacroAssembler::Ld1rsh, true);
18623 LoadBcastHelper(config, kSRegSize, kDRegSize, &MacroAssembler::Ld1rsw, true);