2010-05-18 3 views
1

사용자 지정 VM 구현 및 레지스터를 사용했습니다 (포인터를 저장할 것이고 비어 있으면 NULL이됩니다). 그러나 실제로 레지스터 기반 메모리를 관리하는 방법을 알지 못한다는 사실을 깨닫게되었습니다. 모든 레지스터가 다 써 버렸고 어떤 코드가 다른 레지스터를 원하면 어떻게해야합니까? 바람직하게는 새로운 것을 만들지 않고.
이것은 C++입니다.레지스터 관리 팁

답변

2

저는 이것이 기계의 문제라고 생각하지 않습니다. 대신 기계의 프로그래머의 문제입니다. 할 수있는 일은 (IMO) 레지스터의 값을 앞뒤로 메모리로 옮기는 수단을 제공하는 것입니다. 문제가 해결되었습니다 :)

+0

동의합니다. 이것은 컴파일러 또는 어셈블리 작성자의 문제이며 VM이 아닙니다. 컴파일러가 LLVM을 기반으로하는 경우 메모리 -> 레지스터 및 레지스터 -> 메모리 변환 (주로 SSA 용)을 포함 할 수있는 편리한 패스가 있으며 출력 레지스터 할당자가 유용합니다. –