GCC MIPS-32 통화 규칙 / 스택 프레임 정의
문제
MIPS-32 프로세서 아키텍처에 대한 결정적인 표준화 된 스택 프레임 및 C 언어 통화 규칙 (레지스터 사용 등)이없는 것으로 보입니다. 즉, 자체 스택 프레임과 호출 규칙을 정의하기 위해 어셈블러/컴파일러 도구 체인에 완전히 달려있는 것으로 보입니다. GCC 컴파일러가 MIPS-32 명령어 세트에 사용하는 규칙에 대한 확실한 참조를 찾기 위해 고군분투했습니다. 나는 Cygwin에서 GCC 크로스 컴파일러를 사용하여 Ecos 오픈 소스 커널의 임베디드 환경에서 사용되는 MIPS-32 코어를 대상으로합니다.
이 분야에서 MIPS-32에 대한 GCC에 대한 결정적인 문서에 대한 언급은 감사 할 것입니다.
해결책
당신은 맞습니다. 이것은 약간 엉망이며 문서화가 잘못되었습니다. 나는 추천 할 것이다 :
- http://math-atlas.sourceforge.net/devel/assembly/mipsabi32.pdf
- Dominic Sweetman의 "Mips Run"참조
- 위의 참조와의 불일치를 확인하기 위해 컴파일러가 생성 한 분해 된 코드를 검사합니다.
다른 팁
이 참조를합니다 Redhat Linux의 MIPS EABI 돕다?
나는 MIPS가 아니지만 아마도 이것 MIPS ABI 역사 참조가 도움이 될 수 있습니다.
제휴하지 않습니다 StackOverflow