GCC에 아키텍처의 표준 ABI와 달리 레지스터를 사용하는 코드를 생성하도록 요청할 수 있습니까?GCC4 - ARMv5 레지스터 할당
ARMv4 칩 (LPC2000)을 사용하고 있으며 빠른 인터럽트가 더 빠릅니다.
FIQ 루틴이 있지만 스택에 r0..r7을 저장해야합니다. 레지스터 R8..r15의 자체 뱅크이므로 FIQ 모드로 간주하지 않습니다. 대신 스택을 푸시하고 팝하는 데 사용되는 16 개의 명령 사이클을 저장하고 싶습니다.
아무도 분명히하기 전에 : 어셈블리 언어로 FIQ 처리기를 다시 작성하십시오. 예, 필자는이 작업을 수행 할 수 있음을 알고 있습니다.이 질문은보다 구체적입니다.
GCC4가 함수 내에서 레지스터를 할당하는 순서를 변경하도록 지시하는 #pragma 또는 __attribute__ 또는 스위치가 있습니까?
방금 ASM을 사용하거나 컴파일해야 그 정도의 성능에 관심이 있다면 C 코드는 결과를 직접 수정/조정합니다. 그렇지 않으면 사소한 isr (asm에서 구현하기가 간단합니다) 이외에는 아무것도 얻지 못할 것입니다. –
참고로 lpc2000을 읽었을 때 ARM7TDMI는 ARMv4가 아니며 ARMv5가 아닙니다. –
@dwelch : 오타가 수정되었습니다. 이 질문은 변경되지 않으며 여전히 v5에 영향을 미칩니다. –