lcc icon indicating copy to clipboard operation
lcc copied to clipboard

fix x86 CALLF

Open ksherlock opened this issue 10 years ago • 0 comments

Reported in comp.compilers.lcc on 3/3/2013. (news:[email protected])

On compiling expression statements like

foo(); foo(); foo();

where foo is declared as

double foo(void);

the compiler generates

call foo call foo call foo

rather than

call foo fstpl %st(0) call foo fstpl %st(0) call foo fstpl %st(0)

The underlying issue is that the reg: CALLF (which doesn't clean up the x87 stack) is preferred over the stmt: CALLF (which does clean up the stack). Re-ordering the stmt: CALLF first fixes the problem.

ksherlock avatar Mar 16 '15 18:03 ksherlock