| 248 | |
| 249 | #if !defined(ASMJIT_DISABLE_BUILDER) |
| 250 | static Error formatTypeId(StringBuilder& sb, uint32_t typeId) noexcept { |
| 251 | if (typeId == TypeId::kVoid) |
| 252 | return sb.appendString("void"); |
| 253 | |
| 254 | if (!TypeId::isValid(typeId)) |
| 255 | return sb.appendString("unknown"); |
| 256 | |
| 257 | const char* typeName = "unknown"; |
| 258 | uint32_t typeSize = TypeId::sizeOf(typeId); |
| 259 | |
| 260 | uint32_t elementId = TypeId::elementOf(typeId); |
| 261 | switch (elementId) { |
| 262 | case TypeId::kIntPtr : typeName = "intptr" ; break; |
| 263 | case TypeId::kUIntPtr: typeName = "uintptr"; break; |
| 264 | case TypeId::kI8 : typeName = "i8" ; break; |
| 265 | case TypeId::kU8 : typeName = "u8" ; break; |
| 266 | case TypeId::kI16 : typeName = "i16" ; break; |
| 267 | case TypeId::kU16 : typeName = "u16" ; break; |
| 268 | case TypeId::kI32 : typeName = "i32" ; break; |
| 269 | case TypeId::kU32 : typeName = "u32" ; break; |
| 270 | case TypeId::kI64 : typeName = "i64" ; break; |
| 271 | case TypeId::kU64 : typeName = "u64" ; break; |
| 272 | case TypeId::kF32 : typeName = "f32" ; break; |
| 273 | case TypeId::kF64 : typeName = "f64" ; break; |
| 274 | case TypeId::kF80 : typeName = "f80" ; break; |
| 275 | case TypeId::kMask8 : typeName = "mask8" ; break; |
| 276 | case TypeId::kMask16 : typeName = "mask16" ; break; |
| 277 | case TypeId::kMask32 : typeName = "mask32" ; break; |
| 278 | case TypeId::kMask64 : typeName = "mask64" ; break; |
| 279 | case TypeId::kMmx32 : typeName = "mmx32" ; break; |
| 280 | case TypeId::kMmx64 : typeName = "mmx64" ; break; |
| 281 | } |
| 282 | |
| 283 | uint32_t elementSize = TypeId::sizeOf(elementId); |
| 284 | if (typeSize > elementSize) { |
| 285 | unsigned int numElements = typeSize / elementSize; |
| 286 | return sb.appendFormat("%sx%u", typeName, numElements); |
| 287 | } |
| 288 | else { |
| 289 | return sb.appendString(typeName); |
| 290 | } |
| 291 | } |
| 292 | |
| 293 | static Error formatFuncDetailValue( |
| 294 | StringBuilder& sb, |
no test coverage detected