Mercurial > hg > CbC > old > device
diff Changes @ 377:b23568be1155
ARM continue (const table)
author | kono |
---|---|
date | Tue, 13 Jul 2004 21:43:58 +0900 (2004-07-13) |
parents | d81e1be4036f |
children | b3c6c479c522 |
line wrap: on
line diff
--- a/Changes Mon Jul 12 12:37:18 2004 +0900 +++ b/Changes Tue Jul 13 21:43:58 2004 +0900 @@ -5772,12 +5772,74 @@ �Ȥ���Τϡ�PowerPC �Ǥ��ѹ����礭�����롣�쥸���������֤����� ���ɤ��狼��ʤ����� -�⤷�����ơ�register save �ΰ�ϸ���?! +�⤷�����ơ�register save �ΰ�ϸ���?! + Mon Jul 12 05:35:33 JST 2004 ������äѤꡢ�����... ���Τ���printf �� local variable ������Ƥ��ޤ��� +register save �ΰ�ϸ���ʤ櫓����ʤ��������ǽ餫����ľ���ơ� + + function call stack frame + <-------r1_offset------------------------------> + <------------lvar_offset0------> + <--lvar_offset--> + r+ +------------+---+---------------+----------+--------------+----+ - + callee arg xx register save local caller arg xx + reg_save disp max_func_args*SIZE_OF_INT + lvar>0 lvar<0 lvar>0x1000 0000 + +�Ȥ������Ȥˤʤ�ޤ�����frame ������ΤȤ�������̵����32bit add +�ˤʤä��������ʤ��ʡ�������ȡ�callee arg �����ꥪ�ե��åȤˤʤ餶�� +�����ʤ���reg_save ���Ǹ�ޤǷ�ޤ�ʤ����顣 + �Ϥ������ѤʤΤ�PowerPC�����ǡ�MIPS��ia32 �ϡ����Τޤ�ư���Ȥ����Τ� �狼��ޤ����� + +Mon Jul 12 12:54:14 JST 2004 + +������ɡ�MIPS�� $fp ������祪�ե��åȤˤ���Τ϶�ϫ�����͡� + .frame $fp ����ʤ��ơ� .frame $sp �ˤ����ư���Τ��� +���ȡ�goto ��Ϣ�ϡ� + code_environment + code_fix_frame_pointer + leave +�λ��Ĥ�ľ���ʤ��Ȥ���ʤΤ͡� + +�����ѹ��ϡ�ARM�Υ��ե��åȷ�����ꥪ�ե��åȤǹԤ������ +��äƤ��������ɡ�ARM�Υ쥸���������֤�����ΰ�ˤ���С� +���뤤�ϡ��ɤ������ɤ����С�callee arg ��ޤ�Ƹ���˽��� +��Ϥ��� + + +�ʤ���ư�������쥸������ f4 �����ߤ����͡� + + mov ip, sp + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, ip, lr, pc} + sub fp, ip, #4 + sub sp, sp, #12 + .L3: + ldmea fp, {r4, r5, r6, r7, r8, r9, sl, fp, sp, pc} + .Lfe1: + +�ޤ�ǡ�6809 �� PSHS X,Y,D ���͡�PULS X,PC �Ȥ��� + +�ʤ�����ɡ�������ȡ� + + <-------r1_offset------------------------------> + <------------lvar_offset0------> + <--lvar_offset--> + r+ +------------+---+---------------+----------+--------------+----+ - + callee arg xx register save local caller arg xx + reg_save disp max_func_args*SIZE_OF_INT + lvar>0 lvar<0 lvar>0x1000 0000 + +�ˤʤ餶������ʤ����Ȥʤ�ȡ��ɤä����ϡ����ꥪ�ե��åȤ��ʡ� +�ޡ�callee ¦�Ǥ��礦���ޡ�����˽����������뤤�ϡ��ݥ��� +�ǻؤ��Ƥ⤤�������͡��Ƥ�������reg_save �˴ؤ�餺��ޤä��ΰ� +��Ȥä��㤨�Ф�����ʤ�? �礷���̤���ʤ�������ư������ +�쥸�������Ĥ����͡� + +�⤦���������ꤽ�����͡�