Lines Matching refs:string
34 // Helper for a constexpr string length.
61 typedef std::string (*TestFn)(AssemblerTest* assembler_test, Ass* assembler);
63 void DriverFn(TestFn f, const std::string& test_name) {
68 void DriverStr(const std::string& assembly_string, const std::string& test_name) {
76 std::string RepeatR(void (Ass::*f)(Reg), const std::string& fmt) {
83 std::string Repeatr(void (Ass::*f)(Reg), const std::string& fmt) {
90 std::string RepeatRR(void (Ass::*f)(Reg, Reg), const std::string& fmt) {
99 std::string RepeatRRNoDupes(void (Ass::*f)(Reg, Reg), const std::string& fmt) {
108 std::string Repeatrr(void (Ass::*f)(Reg, Reg), const std::string& fmt) {
117 std::string Repeatww(void (Ass::*f)(Reg, Reg), const std::string& fmt) {
126 std::string Repeatbb(void (Ass::*f)(Reg, Reg), const std::string& fmt) {
135 std::string RepeatRRR(void (Ass::*f)(Reg, Reg, Reg), const std::string& fmt) {
146 std::string Repeatrb(void (Ass::*f)(Reg, Reg), const std::string& fmt) {
155 std::string RepeatRr(void (Ass::*f)(Reg, Reg), const std::string& fmt) {
164 std::string RepeatRI(void (Ass::*f)(Reg, const Imm&), size_t imm_bytes, const std::string& fmt) {
168 std::string RepeatrI(void (Ass::*f)(Reg, const Imm&), size_t imm_bytes, const std::string& fmt) {
172 std::string RepeatwI(void (Ass::*f)(Reg, const Imm&), size_t imm_bytes, const std::string& fmt) {
176 std::string RepeatbI(void (Ass::*f)(Reg, const Imm&), size_t imm_bytes, const std::string& fmt) {
181 std::string RepeatTemplatedRegistersImmBits(void (Ass::*f)(Reg1, Reg2, ImmType),
185 std::string (AssemblerTest::*GetName1)(const Reg1&),
186 std::string (AssemblerTest::*GetName2)(const Reg2&),
187 const std::string& fmt,
190 std::string str;
200 std::string base = fmt;
202 std::string reg1_string = (this->*GetName1)(*reg1);
204 while ((reg1_index = base.find(REG1_TOKEN)) != std::string::npos) {
208 std::string reg2_string = (this->*GetName2)(*reg2);
210 while ((reg2_index = base.find(REG2_TOKEN)) != std::string::npos) {
215 if (imm_index != std::string::npos) {
218 std::string imm_string = sreg.str();
235 std::string RepeatTemplatedRegistersImmBits(void (Ass::*f)(Reg1, Reg2, Reg3, ImmType),
240 std::string (AssemblerTest::*GetName1)(const Reg1&),
241 std::string (AssemblerTest::*GetName2)(const Reg2&),
242 std::string (AssemblerTest::*GetName3)(const Reg3&),
243 std::string fmt,
245 std::string str;
256 std::string base = fmt;
258 std::string reg1_string = (this->*GetName1)(*reg1);
260 while ((reg1_index = base.find(REG1_TOKEN)) != std::string::npos) {
264 std::string reg2_string = (this->*GetName2)(*reg2);
266 while ((reg2_index = base.find(REG2_TOKEN)) != std::string::npos) {
270 std::string reg3_string = (this->*GetName3)(*reg3);
272 while ((reg3_index = base.find(REG3_TOKEN)) != std::string::npos) {
277 if (imm_index != std::string::npos) {
280 std::string imm_string = sreg.str();
298 std::string RepeatTemplatedImmBitsRegisters(void (Ass::*f)(ImmType, Reg1, Reg2),
301 std::string (AssemblerTest::*GetName1)(const Reg1&),
302 std::string (AssemblerTest::*GetName2)(const Reg2&),
304 const std::string& fmt) {
309 std::string str;
317 std::string base = fmt;
319 std::string reg1_string = (this->*GetName1)(*reg1);
321 while ((reg1_index = base.find(REG1_TOKEN)) != std::string::npos) {
325 std::string reg2_string = (this->*GetName2)(*reg2);
327 while ((reg2_index = base.find(REG2_TOKEN)) != std::string::npos) {
332 if (imm_index != std::string::npos) {
335 std::string imm_string = sreg.str();
352 std::string RepeatTemplatedRegisterImmBits(void (Ass::*f)(RegType, ImmType),
355 std::string (AssemblerTest::*GetName)(const RegType&),
356 const std::string& fmt,
358 std::string str;
367 std::string base = fmt;
369 std::string reg_string = (this->*GetName)(*reg);
371 while ((reg_index = base.find(REG_TOKEN)) != std::string::npos) {
376 if (imm_index != std::string::npos) {
379 std::string imm_string = sreg.str();
395 std::string RepeatRRIb(void (Ass::*f)(Reg, Reg, ImmType),
397 const std::string& fmt,
410 std::string RepeatRRRIb(void (Ass::*f)(Reg, Reg, Reg, ImmType),
412 const std::string& fmt,
427 std::string RepeatRIb(void (Ass::*f)(Reg, ImmType), int imm_bits, std::string fmt, int bias = 0) {
437 std::string RepeatFRIb(void (Ass::*f)(FPReg, Reg, ImmType),
439 const std::string& fmt,
451 std::string RepeatFF(void (Ass::*f)(FPReg, FPReg), const std::string& fmt) {
460 std::string RepeatFFF(void (Ass::*f)(FPReg, FPReg, FPReg), const std::string& fmt) {
471 std::string RepeatFFR(void (Ass::*f)(FPReg, FPReg, Reg), const std::string& fmt) {
483 std::string RepeatFFI(void (Ass::*f)(FPReg, FPReg, const Imm&),
485 const std::string& fmt) {
496 std::string RepeatFFIb(void (Ass::*f)(FPReg, FPReg, ImmType),
498 const std::string& fmt) {
509 std::string RepeatIbFF(void (Ass::*f)(ImmType, FPReg, FPReg),
511 const std::string& fmt) {
521 std::string RepeatFR(void (Ass::*f)(FPReg, Reg), const std::string& fmt) {
530 std::string RepeatFr(void (Ass::*f)(FPReg, Reg), const std::string& fmt) {
539 std::string RepeatRF(void (Ass::*f)(Reg, FPReg), const std::string& fmt) {
548 std::string RepeatrF(void (Ass::*f)(Reg, FPReg), const std::string& fmt) {
557 std::string RepeatI(void (Ass::*f)(const Imm&),
559 const std::string& fmt,
561 std::string str;
571 std::string base = fmt;
574 if (imm_index != std::string::npos) {
577 std::string imm_string = sreg.str();
591 std::string RepeatVV(void (Ass::*f)(VecReg, VecReg), const std::string& fmt) {
600 std::string RepeatVVV(void (Ass::*f)(VecReg, VecReg, VecReg), const std::string& fmt) {
611 std::string RepeatVR(void (Ass::*f)(VecReg, Reg), const std::string& fmt) {
622 std::string RepeatVIb(void (Ass::*f)(VecReg, ImmType),
624 std::string fmt,
635 std::string RepeatVRIb(void (Ass::*f)(VecReg, Reg, ImmType),
637 const std::string& fmt,
653 std::string RepeatRVIb(void (Ass::*f)(Reg, VecReg, ImmType),
655 const std::string& fmt,
671 std::string RepeatVVIb(void (Ass::*f)(VecReg, VecReg, ImmType),
673 const std::string& fmt,
715 virtual std::string GetSecondaryRegisterName(const Reg& reg ATTRIBUTE_UNUSED) {
721 virtual std::string GetTertiaryRegisterName(const Reg& reg ATTRIBUTE_UNUSED) {
727 virtual std::string GetQuaternaryRegisterName(const Reg& reg ATTRIBUTE_UNUSED) {
732 std::string GetRegisterName(const Reg& reg) {
770 virtual std::string GetArchitectureString() = 0;
773 virtual std::string GetAssemblerCmdName() {
778 virtual std::string GetAssemblerParameters() {
783 virtual std::string GetObjdumpCmdName() {
788 virtual std::string GetObjdumpParameters() {
793 virtual std::string GetDisassembleCmdName() {
799 virtual std::string GetDisassembleParameters() = 0;
909 std::string RepeatA(void (Ass::*f)(const Addr&), const std::string& fmt) {
915 std::string RepeatA(void (Ass::*f)(const Addr&),
917 const std::string& fmt) {
922 std::string RepeatAI(void (Ass::*f)(const Addr&, const Imm&),
924 const std::string& fmt) {
930 std::string RepeatAI(void (Ass::*f)(const Addr&, const Imm&),
933 const std::string& fmt) {
938 std::string RepeatRA(void (Ass::*f)(Reg, const Addr&), const std::string& fmt) {
944 std::string RepeatRA(void (Ass::*f)(Reg, const Addr&),
946 const std::string& fmt) {
957 std::string RepeatrA(void (Ass::*f)(Reg, const Addr&), const std::string& fmt) {
963 std::string RepeatrA(void (Ass::*f)(Reg, const Addr&),
965 const std::string& fmt) {
976 std::string RepeatwA(void (Ass::*f)(Reg, const Addr&), const std::string& fmt) {
982 std::string RepeatwA(void (Ass::*f)(Reg, const Addr&),
984 const std::string& fmt) {
995 std::string RepeatbA(void (Ass::*f)(Reg, const Addr&), const std::string& fmt) {
1001 std::string RepeatbA(void (Ass::*f)(Reg, const Addr&),
1003 const std::string& fmt) {
1014 std::string RepeatFA(void (Ass::*f)(FPReg, const Addr&), const std::string& fmt) {
1020 std::string RepeatFA(void (Ass::*f)(FPReg, const Addr&),
1022 const std::string& fmt) {
1033 std::string RepeatAR(void (Ass::*f)(const Addr&, Reg), const std::string& fmt) {
1039 std::string RepeatAR(void (Ass::*f)(const Addr&, Reg),
1041 const std::string& fmt) {
1052 std::string RepeatAr(void (Ass::*f)(const Addr&, Reg), const std::string& fmt) {
1058 std::string RepeatAr(void (Ass::*f)(const Addr&, Reg),
1060 const std::string& fmt) {
1071 std::string RepeatAw(void (Ass::*f)(const Addr&, Reg), const std::string& fmt) {
1077 std::string RepeatAw(void (Ass::*f)(const Addr&, Reg),
1079 const std::string& fmt) {
1090 std::string RepeatAb(void (Ass::*f)(const Addr&, Reg), const std::string& fmt) {
1096 std::string RepeatAb(void (Ass::*f)(const Addr&, Reg),
1098 const std::string& fmt) {
1109 std::string RepeatAF(void (Ass::*f)(const Addr&, FPReg), const std::string& fmt) {
1115 std::string RepeatAF(void (Ass::*f)(const Addr&, FPReg),
1117 const std::string& fmt) {
1128 std::string RepeatTemplatedMem(void (Ass::*f)(const AddrType&),
1130 std::string (AssemblerTest::*GetAName)(const AddrType&),
1131 const std::string& fmt) {
1133 std::string str;
1138 std::string base = fmt;
1140 std::string addr_string = (this->*GetAName)(addr);
1142 if ((addr_index = base.find(ADDRESS_TOKEN)) != std::string::npos) {
1157 std::string RepeatTemplatedMemImm(void (Ass::*f)(const AddrType&, const Imm&),
1160 std::string (AssemblerTest::*GetAName)(const AddrType&),
1161 const std::string& fmt) {
1164 std::string str;
1171 std::string base = fmt;
1173 std::string addr_string = (this->*GetAName)(addr);
1175 if ((addr_index = base.find(ADDRESS_TOKEN)) != std::string::npos) {
1180 if (imm_index != std::string::npos) {
1183 std::string imm_string = sreg.str();
1199 std::string RepeatTemplatedRegMem(void (Ass::*f)(RegType, const AddrType&),
1202 std::string (AssemblerTest::*GetRName)(const RegType&),
1203 std::string (AssemblerTest::*GetAName)(const AddrType&),
1204 const std::string& fmt) {
1206 std::string str;
1212 std::string base = fmt;
1214 std::string reg_string = (this->*GetRName)(*reg);
1216 if ((reg_index = base.find(REG_TOKEN)) != std::string::npos) {
1220 std::string addr_string = (this->*GetAName)(addr);
1222 if ((addr_index = base.find(ADDRESS_TOKEN)) != std::string::npos) {
1238 std::string RepeatTemplatedMemReg(void (Ass::*f)(const AddrType&, RegType),
1241 std::string (AssemblerTest::*GetAName)(const AddrType&),
1242 std::string (AssemblerTest::*GetRName)(const RegType&),
1243 const std::string& fmt) {
1245 std::string str;
1251 std::string base = fmt;
1253 std::string addr_string = (this->*GetAName)(addr);
1255 if ((addr_index = base.find(ADDRESS_TOKEN)) != std::string::npos) {
1259 std::string reg_string = (this->*GetRName)(*reg);
1261 if ((reg_index = base.find(REG_TOKEN)) != std::string::npos) {
1281 std::string RepeatTemplatedRegister(void (Ass::*f)(RegType),
1283 std::string (AssemblerTest::*GetName)(const RegType&),
1284 const std::string& fmt) {
1285 std::string str;
1290 std::string base = fmt;
1292 std::string reg_string = (this->*GetName)(*reg);
1294 if ((reg_index = base.find(REG_TOKEN)) != std::string::npos) {
1309 std::string RepeatTemplatedRegisters(void (Ass::*f)(Reg1, Reg2),
1312 std::string (AssemblerTest::*GetName1)(const Reg1&),
1313 std::string (AssemblerTest::*GetName2)(const Reg2&),
1314 const std::string& fmt) {
1317 std::string str;
1323 std::string base = fmt;
1325 std::string reg1_string = (this->*GetName1)(*reg1);
1327 while ((reg1_index = base.find(REG1_TOKEN)) != std::string::npos) {
1331 std::string reg2_string = (this->*GetName2)(*reg2);
1333 while ((reg2_index = base.find(REG2_TOKEN)) != std::string::npos) {
1349 std::string RepeatTemplatedRegistersNoDupes(void (Ass::*f)(Reg1, Reg2),
1352 std::string (AssemblerTest::*GetName1)(const Reg1&),
1353 std::string (AssemblerTest::*GetName2)(const Reg2&),
1354 const std::string& fmt) {
1357 std::string str;
1364 std::string base = fmt;
1366 std::string reg1_string = (this->*GetName1)(*reg1);
1368 while ((reg1_index = base.find(REG1_TOKEN)) != std::string::npos) {
1372 std::string reg2_string = (this->*GetName2)(*reg2);
1374 while ((reg2_index = base.find(REG2_TOKEN)) != std::string::npos) {
1390 std::string RepeatTemplatedRegisters(void (Ass::*f)(Reg1, Reg2, Reg3),
1394 std::string (AssemblerTest::*GetName1)(const Reg1&),
1395 std::string (AssemblerTest::*GetName2)(const Reg2&),
1396 std::string (AssemblerTest::*GetName3)(const Reg3&),
1397 const std::string& fmt) {
1398 std::string str;
1405 std::string base = fmt;
1407 std::string reg1_string = (this->*GetName1)(*reg1);
1409 while ((reg1_index = base.find(REG1_TOKEN)) != std::string::npos) {
1413 std::string reg2_string = (this->*GetName2)(*reg2);
1415 while ((reg2_index = base.find(REG2_TOKEN)) != std::string::npos) {
1419 std::string reg3_string = (this->*GetName3)(*reg3);
1421 while ((reg3_index = base.find(REG3_TOKEN)) != std::string::npos) {
1438 std::string RepeatTemplatedRegistersImm(void (Ass::*f)(Reg1, Reg2, const Imm&),
1441 std::string (AssemblerTest::*GetName1)(const Reg1&),
1442 std::string (AssemblerTest::*GetName2)(const Reg2&),
1444 const std::string& fmt) {
1448 std::string str;
1456 std::string base = fmt;
1458 std::string reg1_string = (this->*GetName1)(*reg1);
1460 while ((reg1_index = base.find(REG1_TOKEN)) != std::string::npos) {
1464 std::string reg2_string = (this->*GetName2)(*reg2);
1466 while ((reg2_index = base.find(REG2_TOKEN)) != std::string::npos) {
1471 if (imm_index != std::string::npos) {
1474 std::string imm_string = sreg.str();
1490 std::string GetAddrName(const Addr& addr) {
1497 std::string GetRegName(const Reg& reg) {
1519 std::string GetFPRegName(const FPReg& reg) {
1525 std::string GetVecRegName(const VecReg& reg) {
1551 std::string RepeatRegisterImm(void (Ass::*f)(Reg, const Imm&),
1553 const std::string& fmt) {
1555 std::string str;
1566 std::string base = fmt;
1568 std::string reg_string = GetRegName<kRegView>(*reg);
1570 while ((reg_index = base.find(REG_TOKEN)) != std::string::npos) {
1575 if (imm_index != std::string::npos) {
1578 std::string imm_string = sreg.str();
1597 void DriverWrapper(const std::string& assembly_text, const std::string& test_name) {