gcc 에서 __declspec(naked)

cppig1995의 이미지

gcc 에서 VC++계의 __declspec(naked) 즉,
스택 프레임을 생성하지 않는 함수를 만드는 키워드가 무엇인가요?

cinsk의 이미지

VC의 __declspec keyword?은, GCC가 제공하는 function attribute와 그 개념이 유사한 것 같습니다. 함수 단위로 컴파일러에게 특별한 기능을 지시하는 것입니다. 쓰는 방법과 종류는 GCC info 페이지 또는 온라인 메뉴얼을 참고 바랍니다:

$ info gcc "c ext" function

원하는 기능이 "naked" function attribute이긴 한데, 이 것은 현재 GCC의 경우 ARM cpu에서만 지원한다고 나와 있습니다.

그런데.. 왜 이 기능이 필요한지 궁금하군요. 이 기능 없이도 inline assembler를 활용하면 충분히 원하는 기능을 얻을 수 있을 것 같은데요..

혹시 -fomit-frame-pointer의 기능이 필요한 건 아니겠지요?

cppig1995의 이미지

운영체제개발 중인데 B2OS에서 사용했던 VC++ 대신 gcc 를 사용하려고 합니다.
세그먼트레지스터가 초기화되지 않은 상태에서 스택프레임을 생성하다니욧

Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.