Page MenuHomeFreeBSD

Dubious manual unwind annotations for ARMv7 assembly-language functions
Needs ReviewPublic

Authored by rwatson on Oct 4 2015, 11:13 AM.
Tags
Referenced Files
Unknown Object (File)
Wed, Jan 29, 6:17 PM
Unknown Object (File)
Dec 28 2024, 4:46 PM
Unknown Object (File)
Dec 5 2024, 11:03 PM
Unknown Object (File)
Oct 5 2024, 12:50 PM
Unknown Object (File)
Oct 2 2024, 2:22 AM
Unknown Object (File)
Sep 24 2024, 1:18 AM
Unknown Object (File)
Sep 17 2024, 9:45 AM
Unknown Object (File)
Sep 17 2024, 6:42 AM
Subscribers

Details

Reviewers
andrew
bz
br
Summary

Add additional hand annotations to various bcopy() variations in the "xscale" version of the ARMv7 memory copying code. Labelled as dubious because these functions don't obey normal conventions for stack use / block structure, and so some of the annotations may behave less well than desirable. However, overall, stack traces in this code are markedly improved.

NB: Not for this change, but .. all of the memory copying code in/around ARMv[67] seems a bit broken. We should replace them all with the ARM-provided reference implementations which are likely faster and better in every way.

Test Plan

Deployed in Cambridge L41 2014-2015.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

rwatson retitled this revision from to Dubious manual unwind annotations for ARMv7 assembly-language functions.
rwatson updated this object.
rwatson edited the test plan for this revision. (Show Details)
rwatson added reviewers: andrew, bz, br.
rwatson set the repository for this revision to rS FreeBSD src repository - subversion.
rwatson added a project: ARM.

I'm not sure if this will work, I think the unwind instructions are per-function, but would need to see what clang generates to know for sure.