Lines Matching refs:format

587 // FFR has the same format as a predicate register.
1030 // vector format must be specified; SVE scatter/gather accesses typically
2179 // Indicate floating-point format lanes. (This flag is only supported for
2185 // format.
2252 // Return `format` with the kPrintRegPartial flag set.
2253 PrintRegisterFormat GetPrintRegPartial(PrintRegisterFormat format) {
2256 return static_cast<PrintRegisterFormat>(format | kPrintRegPartial);
2259 // For SVE formats, return the format of a Q register part of it.
2260 PrintRegisterFormat GetPrintRegAsQChunkOfSVE(PrintRegisterFormat format) {
2261 VIXL_ASSERT((format & kPrintRegAsVectorMask) == kPrintRegAsSVEVector);
2263 int q_format = format & (kPrintRegLaneSizeMask | kPrintRegAsFP);
2264 // The resulting format must always be partial, because we're not formatting
2273 unsigned GetPrintRegLaneSizeInBytesLog2(PrintRegisterFormat format) {
2274 VIXL_ASSERT((format & kPrintRegLaneSizeMask) != kPrintRegLaneSizeUnknown);
2275 return (format & kPrintRegLaneSizeMask) >> kPrintRegLaneSizeOffset;
2278 unsigned GetPrintRegLaneSizeInBytes(PrintRegisterFormat format) {
2279 return 1 << GetPrintRegLaneSizeInBytesLog2(format);
2282 unsigned GetPrintRegSizeInBytesLog2(PrintRegisterFormat format) {
2283 switch (format & kPrintRegAsVectorMask) {
2285 return GetPrintRegLaneSizeInBytesLog2(format);
2299 unsigned GetPrintRegSizeInBytes(PrintRegisterFormat format) {
2300 return 1 << GetPrintRegSizeInBytesLog2(format);
2303 unsigned GetPrintRegSizeInBitsLog2(PrintRegisterFormat format) {
2304 return GetPrintRegSizeInBytesLog2(format) + kBitsPerByteLog2;
2307 unsigned GetPrintRegSizeInBits(PrintRegisterFormat format) {
2308 return 1 << GetPrintRegSizeInBitsLog2(format);
2311 const char* GetPartialRegSuffix(PrintRegisterFormat format) {
2312 switch (GetPrintRegSizeInBitsLog2(format)) {
2328 unsigned GetPrintRegLaneCount(PrintRegisterFormat format) {
2329 unsigned reg_size_log2 = GetPrintRegSizeInBytesLog2(format);
2330 unsigned lane_size_log2 = GetPrintRegLaneSizeInBytesLog2(format);
2335 uint16_t GetPrintRegLaneMask(PrintRegisterFormat format) {
2336 int print_as = format & kPrintRegAsVectorMask;
2341 unsigned size_in_bytes_log2 = GetPrintRegLaneSizeInBytesLog2(format);
2371 PrintRegisterFormat GetPrintRegisterFormatTryFP(PrintRegisterFormat format) {
2372 if ((GetPrintRegLaneSizeInBytes(format) == kHRegSizeInBytes) ||
2373 (GetPrintRegLaneSizeInBytes(format) == kSRegSizeInBytes) ||
2374 (GetPrintRegLaneSizeInBytes(format) == kDRegSizeInBytes)) {
2375 return static_cast<PrintRegisterFormat>(format | kPrintRegAsFP);
2377 return format;
2441 // - The format can be used to restrict how much of the register is printed,
2444 // - If the format includes the kPrintRegAsFP flag then human-friendly FP
2449 PrintRegisterFormat format = kPrintXReg,
2452 PrintRegisterFormat format = kPrintReg1Q,
2456 void PrintZRegister(int code, PrintRegisterFormat format = kPrintRegVnQ);
2457 void PrintPRegister(int code, PrintRegisterFormat format = kPrintRegVnQ);
2458 void PrintFFR(PrintRegisterFormat format = kPrintRegVnQ);
2461 // suffix to be overridden. The format must include the kPrintRegPartial flag.
2464 PrintRegisterFormat format = kPrintRegVnQ,
2468 PrintRegisterFormat format = kPrintRegVnQ,
2473 PrintRegisterFormat format = kPrintRegVnQ,
2477 void LogRegister(unsigned code, PrintRegisterFormat format) {
2478 if (ShouldTraceRegs()) PrintRegister(code, format);
2480 void LogVRegister(unsigned code, PrintRegisterFormat format) {
2481 if (ShouldTraceVRegs()) PrintVRegister(code, format);
2483 void LogZRegister(unsigned code, PrintRegisterFormat format) {
2484 if (ShouldTraceVRegs()) PrintZRegister(code, format);
2486 void LogPRegister(unsigned code, PrintRegisterFormat format) {
2487 if (ShouldTraceVRegs()) PrintPRegister(code, format);
2489 void LogFFR(PrintRegisterFormat format) {
2490 if (ShouldTraceVRegs()) PrintFFR(format);
2506 // The *Write variants automatically set kPrintRegPartial on the format.
2507 void PrintRead(int rt_code, PrintRegisterFormat format, uintptr_t address);
2509 PrintRegisterFormat format,
2512 void PrintWrite(int rt_code, PrintRegisterFormat format, uintptr_t address);
2513 void PrintVRead(int rt_code, PrintRegisterFormat format, uintptr_t address);
2514 void PrintVWrite(int rt_code, PrintRegisterFormat format, uintptr_t address);
2516 // know the lane type, so there's no need to accept a `format`.
2533 void LogRead(int rt_code, PrintRegisterFormat format, uintptr_t address) {
2534 if (ShouldTraceRegs()) PrintRead(rt_code, format, address);
2537 PrintRegisterFormat format,
2541 PrintExtendingRead(rt_code, format, access_size_in_bytes, address);
2544 void LogWrite(int rt_code, PrintRegisterFormat format, uintptr_t address) {
2545 if (ShouldTraceWrites()) PrintWrite(rt_code, format, address);
2547 void LogVRead(int rt_code, PrintRegisterFormat format, uintptr_t address) {
2548 if (ShouldTraceVRegs()) PrintVRead(rt_code, format, address);
2550 void LogVWrite(int rt_code, PrintRegisterFormat format, uintptr_t address) {
2551 if (ShouldTraceWrites()) PrintVWrite(rt_code, format, address);
2572 PrintRegisterFormat format,
2576 PrintRegisterFormat format,
2581 // know the lane type, so these don't accept a `format`.
2588 PrintRegisterFormat format,
2595 PrintRegisterFormat format,
2601 PrintRegisterFormat format,
2609 PrintRegisterFormat format,
2616 // All lanes (according to `format`) are printed, but lanes indicated by
2623 PrintRegisterFormat format);
2630 PrintRegisterFormat format);
2649 // been printed. The format is the same as for accessed_mask.
2657 // the size of each access, and to format the accessed value.
2691 PrintRegisterFormat format);
2693 void PrintRegisterValue(const T& sim_register, PrintRegisterFormat format) {
2697 format);
2700 // As above, but format as an SVE predicate value, using binary notation with
2707 PrintRegisterFormat format);
2711 PrintRegisterFormat format) {
2712 PrintRegisterValueFPAnnotations(sim_register.GetBytes(), lane_mask, format);
2716 PrintRegisterFormat format) {
2718 GetPrintRegLaneMask(format),
2719 format);