* Automatic generation of inline long call sequences when needed.
* pa.h (TARGET_LONG_CALLS): Delete. Replace all uses of with TARGET_PORTABLE_RUNTIME. (TARGET_MILLICODE_LONG_CALLS): New target flag. * pa.c (output_function_prologue): Keep track of the total number of code bytes emitted for each source file. (output_call): Handle TARGET_PORTABLE_RUNTIME and millicode calls for TARGET_MILLICODE_LONG_CALLS. Emit an inline long-call if needed. If emitting an inline long-call, perform argument relocations before the call if they are needed, unfill the delay slot of the call if necessary. * pa.md (define_delay for millicode): Disable the delay slot if TARGET_MILLICODE_LONG_CALLS. (millicode insns and indirect calls): Properly compute length for both TARGET_PORTABLE_RUNTIME and TARGET_MILLICODE_LONG_CALLS. (call_internal_symref): Properly compute the length when more than 240000 bytes of code have already been output. Take TARGET_MILLICODE_LONG_CALLS into account in the length computation. From-SVN: r8422
Showing
Please
register
or
sign in
to comment