2017-01-03 1 views
-1

제목은 누군가가 나에게 그것이 굉장한 일을하는 방법을 설명 할 수 있고 또한 PPC에서 새로운 사람이고 R4에 대해 차단되었다고 완전히 이해할 수 있는지 모르겠다면 모두가 말했다.ppc에서 r4는 무엇입니까?

+0

함수 인수에 대한 레지스터 http://www.csd.uwo.ca/~mburrel/stuff/ppc-asm.html –

+0

설명서를 확인 했습니까? 프로세서/ISA? 그 부분은 분명하지 않았습니까? –

답변

2

r4은 단지 고정 소수점 범용 레지스터입니다. 정수 값을 저장하는 것 외에는 하드웨어 측면에서 특별한 기능이 없습니다.

그러나 대부분의 소프트웨어 ABI는 함수 호출에 대해 두 번째 (정수) 인수로 r4을 사용합니다. (GPR을 https://openpowerfoundation.org/?resource_lib=power-isa-version-3-0

0

파워는 32 개 범용 레지스터가 있습니다

체크 아웃 POWER의 명령 집합 아키텍처의 자세한 사항은 "PowerISA"문서 [ "정수"여기 포인터 타입을 포함합니다]) 일반적으로 지침의 대상이나 출처로 사용할 수 있습니다. r4은 범용 레지스터 중 하나입니다. This site에는 레지스터의 공통 사용에 대한 설명이 들어 있습니다.

응용 프로그램 이진 인터페이스 (ABI)는 함수에 대한 호출 규칙에 대한 규칙 집합을 제공합니다. 가장 일반적인 PPC ABI에서 두 번째 인수를 함수에 유지하는 데 r4이 사용됩니다. 예를 들어 사용자가 기능들의 단순한 집합 수 : 통상적으로 리턴 값을 사용하면서 r3

.func1: 
    # ... 
    # foo = func2(8, 9); 
    # ... 
    # Prologue to save SP, etc. omitted 
    li r3, 8 
    li r4, 9 
    bl .func2 
    # Eplogue to restore stack, saved registers, return to caller omitted 

.func2: 
    # Add two numbers together 
    # int32_t func2(a, b) { return a+b; } 
    # r3 = a, first argument 
    # r4 = b, second argument 
    # return value in r3 
    # Note: no need for a prologue or epilogue because we didn't modify saved registers and this is a leaf function 
    add r3, r3, r4 
    blr 

r3 함수는 64 비트 값에 대한 r4와 결합 될 수있다.

ST Manual for Book E processors 또는 기타 매뉴얼을 확인하십시오. 그들은 레지스터 사용 등에 대해 훨씬 더 자세하게 설명 할 것입니다.

관련 문제