> > > - duplicate the destination code inside the function
> > > - convert the jump to a call
> > 
> > That all won't work for a lot of cases.
> 
> Hm, could you give an example?

Just a standard *_user exception handler.

> 
> Well, I don't see how that's really a logical conclusion.  

What's special about assembler code?

> But we're
> probably being too vague here... Do you have any examples where you
> really need to jump outside of a callable function?

It's not needed, but it's an optimization to optimize icache usage.
It is optional (-freorder-blocks-and-partition)

In this case gcc splits the function into two (hot and cold)

It's actually a nice optimization and it would be sad from stopping
the kernel from using it.

-Andi
-- 
a...@linux.intel.com -- Speaking for myself only.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to