From: NIIBE Y. <gn...@ch...> - 2000-09-30 03:06:19
|
Hi Mitch, When I was in Germany last week, I've eaten _real_ Donner Kebab, it's great. Mitch Davis wrote: > Looking at your mail, this code keeps its dollar: > > > "mov $r0, $r4\n\t" /* return value to arg of exit */ > > - "mov %2, $r3\n\t" /* exit */ > > + "mov %1, $r3\n\t" /* exit */ > > "trapa #0x11\n" This "$" is used by the assembler only. > This code does not: > > > { > > - register long r0 __asm__("$r0") = func; > > - register long r4 __asm__("$r4") = arg0; > > - register long r5 __asm__("$r5") = arg1; > > - register long r6 __asm__("$r6") = arg2; > > - register long r7 __asm__("$r7") = arg3; > > + register long r0 __asm__("r0") = func; > > + register long r4 __asm__("r4") = arg0; > > + register long r5 __asm__("r5") = arg1; > > + register long r6 __asm__("r6") = arg2; > > + register long r7 __asm__("r7") = arg3; > > __asm__ __volatile__("trapa #0x3f" This "$" is used for C compiler, which I think not needed, or it is good not to have. I'm not sure, which is good. When I incorporated the patch by Jesper (the T-flag patch) with "t", I found that it would be more consistent using such like "r0" for C compiler. You know, the use of "$t" is bogus. We never use such specification with assembler (since there are specific instruction for T-flag (clrt, movt...). How do you think? -- |