Page MenuHomeFreeBSD

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

Authored by rwatson on Oct 4 2015, 11:13 AM.

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
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.