Lines Matching defs:ArgClass
333 enum ArgClass {
351 ArgClass &Lo, ArgClass &Hi) const {
352 Hi = Lo = ArgClass::NoClass;
353 ArgClass ¤t = byteOffset < 8 ? Lo : Hi;
358 Hi = Lo = ArgClass::Integer;
360 current = ArgClass::Integer;
365 Lo = ArgClass::X87;
366 Hi = ArgClass::X87Up;
368 Lo = ArgClass::SSE;
369 Hi = ArgClass::SSEUp;
371 current = ArgClass::SSE;
377 current = ArgClass::ComplexX87;
387 Hi = Lo = ArgClass::Integer;
389 current = ArgClass::Integer;
392 [&](fir::CharacterType character) { current = ArgClass::Integer; })
416 current = ArgClass::Integer; // Pointers.
426 std::uint64_t byteOffset, ArgClass &Lo,
427 ArgClass &Hi) const {
433 Lo = Hi = ArgClass::Memory;
440 ArgClass LoComp, HiComp;
445 if (Lo == ArgClass::Memory || Hi == ArgClass::Memory)
454 std::uint64_t byteOffset, ArgClass &Lo,
455 ArgClass &Hi) const {
465 Lo = Hi = ArgClass::Memory;
468 ArgClass LoComp, HiComp;
473 if (Lo == ArgClass::Memory || Hi == ArgClass::Memory)
489 ArgClass Lo, Hi;
490 Lo = Hi = ArgClass::NoClass;
494 if (Lo == ArgClass::Integer)
498 if (Hi == ArgClass::Integer)
500 else if (Hi == ArgClass::SSE)
508 ArgClass mergeClass(ArgClass accum, ArgClass field) const {
509 assert((accum != ArgClass::Memory && accum != ArgClass::ComplexX87) &&
513 if (field == ArgClass::Memory)
514 return ArgClass::Memory;
518 return ArgClass::Integer;
519 if (field == ArgClass::X87 || field == ArgClass::X87Up ||
520 field == ArgClass::ComplexX87 || accum == ArgClass::X87 ||
521 accum == ArgClass::X87Up)
527 void postMerge(std::uint64_t byteSize, ArgClass &Lo, ArgClass &Hi) const {
528 if (Hi == ArgClass::Memory)
529 Lo = ArgClass::Memory;
530 if (Hi == ArgClass::X87Up && Lo != ArgClass::X87)
531 Lo = ArgClass::Memory;
532 if (byteSize > 16 && (Lo != ArgClass::SSE || Hi != ArgClass::SSEUp))
533 Lo = ArgClass::Memory;
534 if (Hi == ArgClass::SSEUp && Lo != ArgClass::SSE)
564 ArgClass argClass,
566 if (argClass == ArgClass::SSE) {
598 ArgClass Lo, Hi;
599 Lo = Hi = ArgClass::NoClass;
602 if (Lo == ArgClass::Memory || Lo == ArgClass::X87 ||
603 Lo == ArgClass::ComplexX87)
607 if (Lo == ArgClass::SSE)
609 else if (Lo == ArgClass::Integer)
611 if (Hi == ArgClass::SSE)
613 else if (Hi == ArgClass::Integer)
627 if (Hi == ArgClass::NoClass || Hi == ArgClass::SSEUp) {
655 ArgClass Lo, Hi;
656 Lo = Hi = ArgClass::NoClass;
660 if (Lo == ArgClass::Memory)
683 if (Hi == ArgClass::NoClass || Hi == ArgClass::SSEUp) {