Mercurial > hg > CbC > old > device
diff Changes @ 576:00e5ce0e341a
*** empty log message ***
author | kono |
---|---|
date | Sun, 15 Jan 2006 12:03:37 +0900 (2006-01-15) |
parents | a4445cb1aa91 |
children | 7e0076617c76 |
line wrap: on
line diff
--- a/Changes Sat Jan 14 01:00:05 2006 +0900 +++ b/Changes Sun Jan 15 12:03:37 2006 +0900 @@ -8298,6 +8298,69 @@ global heap �˻Ĥ���Τޤ굤�ˤ��Ƥʤ��ä� �ߤ����� - - - +Sat Jan 14 22:58:45 JST 2006 + +goto with environment �����ɡ�code segment ���椫������ؤ��ϲ�ǽ�餷���� +���������̾�δؿ������goto with environment �Ϥ��ޤ�ư���ʤ��� +����ϲ��Τ�����? + +��������env �����ꤷ���Ȥ��ϡ���¤�Τϥ��ԡ����ʤ��Ȥ����ʤ� +�櫓�͡�����ϡ�code segment ����Ǥ�Ʊ���� + +�դ˥����overrap �ϵ��ˤ��ʤ����ɤ��Τ����̾�δؿ����� +����ϡ�������Ĥȷ�ޤäƤ��뤫��ʡ� + +Sun Jan 15 09:24:58 JST 2006 + +return ���ʤ����ˤϡ�retlabel���������ʤ��ۤ��������� + +env �����ꤷ���顢jump ��target��env �ؤ�indirect + offset �� +�Ѥ��ʤ��ȥ��ᡣ + +goto with env �� r1 �����ѹ����Ƥʤ�������ϡ�code segment �Ǥϡ� +stack top �˲�ʤ���r30 �������ѹ����ʤ��ȡ� +(���䡢����� PowerPC �Ǥ���������ʤΤ�...) + +code_set_frame_pointer ���¤�stack top �������ꤷ�Ƥʤ��� + +env �����ꤵ��Ƥ�����ϡ�������interface�ϡ� +���Τޤޥ��ԡ���¹Ԥ�����ɤ���������������ɬ�פϤʤ��� + +stack tpo ��code segment �Ǥ� frame pointer ���������롣(̵��?) +���顢���ꤹ��ɬ�פϼ¤Ϥʤ���function �����Ȥ���ɬ�ס� + +new_environ �Υ��깽����... + + * goto��ƤӽФ����ؿ���r1 ! r1(goto����r1) + # * r30 <---r1_offset---------> r1 +r+ +----------+--+----------+----------------+-----------+----------+----+ + cousin arg xx reg save !callee arg !code local caller arg xx + r20-r29 lvar>0 lvar<0 lvar>0x1000 000 + f20-f31 <-my_func_args--><--disp-----><-max_func_arg-> + *SIZE_OF_INT *SIZE_OF_INT + +�ȽƤ��뤬�� + disp = -args; +�Ȥ��� + /* reverse all argument offset (with size) */ + arglist = fnptr->dsp; + for(t=arglist;t;t=cadr(t)) { + n=(NMTBL *)caddr(t); + if(n->sc==LVAR) + n->dsp = -n->dsp-cadddr(t); + } +�Ȥ���äƤ���Τǡ�lvar>0 �äƤΤ�¸�ߤ��ʤ��餷�����Ĥޤꡢ +������local variable �����ˤʤ�ޤ���inline code �äƤΤ� +�����ɡ������դ��θ���ʤ��Ȥ�����͡� + +�äƤ��Ȥϡ�fp ��environment �ΰ��ֲ�(�Ĥޤ� environment �� +�ؤ��Ƥ���Ȥ������Τޤޡ����ɤ��äƤ��Ȥ�? ��äѤ� +�ؿ��ƤӽФ�����٤Ƥʤ�ƴ�ñ�ʤ���� + +R1SAVE���ơ�frame pointer = environment �Ǥʤ��Τϡ� +PowerPC �Ǥ��������Ȥ������Ȥϡ�PowerPC �Ǥ� R1SAVE +���ä��뤳�Ȥ���Ϥ�ʤ��Ȥ���ʤߤ����� + + + +