review (S) for 6777083: assert(target != __null,"must not be null")
Vladimir Kozlov
vladimir.kozlov at oracle.com
Mon Apr 4 17:17:32 PDT 2011
The fix looks good. Do you know why we use ExternalAddress for byte_map_base on
x86? On sparc it is just constant value (address).
Vladimir
Tom Rodriguez wrote:
> http://cr.openjdk.java.net/~never/6777083
>
> 6777083: assert(target != __null,"must not be null")
> Reviewed-by:
>
> ExternalAddress is often used to generate code for references to the
> byte_map_base of the card table. Depending on the address layout we
> get byte_map_base may be a real address looking value or sometimes it
> maybe a small number or even zero. This causes
> external_word_relocation to assert because the encoding it uses
> assumes that the adress isn't within the first page. This has been
> patched up at each use site in the past but keeps recurring as new
> code gets written. To fix this I've modified ExternalAddress to drop
> the reloc in the case where it's not encodable. It's almost
> impossible to force a layout where byte_map_base is a small number but
> injecting a small number into it indicates that the assembly code
> generation works correcty after the change.
>
More information about the hotspot-compiler-dev
mailing list