[Cソース]
extern int x[2];
static int func1(int *a, int *b) {
*a=0;
*b=1;
return *a;
}
int func2() {
return func1(&x[0], &x[1]);
}
[出力アセンブラ・ソース]
_func1.1:
.stack _func1.1 = 0
mov #_x, r2
st.w r0, 0x00000000[r2]
mov 0x00000001, r5
st.w r5, 0x00000004[r2]
mov 0x00000000, r10 ; aとbの指すアドレスが違うため0を直接代入
jmp [r31]
_func2:
.stack _func2 = 0
mov #_x, r6
addi 0x00000004, r6, r7
br9 _func1.1
|