What happens inside objc_msgSend at assembly level?

Updated May 17, 2026

Short answer

objc_msgSend uses hand-optimized ARM64 assembly for fast cache lookup and direct IMP branching.

Deep explanation

On ARM64, objc_msgSend first checks class cache via pointer arithmetic. If found, it jumps directly to IMP using branch register (br). If not, it calls slower lookup functions. It avoids stack frames entirely in fast path for minimal latency.

Unlock with a Pro subscription to view this section.

View pricing

Real-world example

No real-world example available yet.

Unlock with a Pro subscription to view this section.

Upgrade to Pro

Common mistakes

No common mistakes listed yet.

Unlock with a Pro subscription to view this section.

Upgrade to Pro

Follow-up questions

No follow-up questions available yet.

Unlock with a Pro subscription to view this section.

Upgrade to Pro

More Objective-C interview questions

View all →