ldrd and strd registers require pair of registers restricted to being an even-numbered register and the odd-numbered register that immediately follows it (for example, R10 and R11).
We need additional constraint when declaring unsigned long long to assign appropriate register-pair so it will work with ldrd/strd in inline-asm. Example: register usigned long long x asm ("???"); asm volatile ("ldrd\t%0, [%1]" : "=r" (x) : "r" (io_base)); -- Summary: ARM register constraint for ldrd and strd instructions Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: inline-asm AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: paulius dot zaleckas at gmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43518