view GRAAL_AUTHORS @ 11825:463f51256c86

AMD64HotSpot: emit jump to IC miss handler directly instead of emitting it inside verfied_entry for empty methods we emitted something like this if a inline cache is needed: prefix: 00: < IC check > ... 0b: jne <ic_miss_call> 11: nop ... verified_entry: 20: ret ic_miss_call: 21: jmp <entry of runtime function> when a method is deoptimized, HotSpot patches the verified_entry (0x20) with a jump to a stub that handles call-sites that has been made non-entrant. since this jump is 5 bytes long, it will overwrite ic_miss_call and blow up every caller that calls this method via the unverified entry (prefix). the fix is to emit the jump to the runtime function inside the unverfied entry: prefix: 00: < IC check > ... 0b: je <verified_entry> 11: jeq <entry of runtime function> 16: nop ... verified_entry: 20: ret
author Bernhard Urban <bernhard.urban@jku.at>
date Mon, 30 Sep 2013 09:32:18 +0200
parents e4019a78c938
children
line wrap: on
line source

Gilles Duboscq (gdub)
Peter Hofer
Christian Haeubl (chaeubl)
Christian Humer (chumer)
Roland Schatz
Doug Simon (dnsimon)
Lukas Stadler (lstadler)
Alexander Stipsits
Katrin Strassl
Christian Wimmer (cwimmer)
Andreas Woess (aw)
Thomas Wuerthinger (thomaswue)