[aarch64-port-dev ] RFR: Critical Shenandoah patch for interpreter
Roman Kennke
rkennke at redhat.com
Thu Jul 21 17:44:17 UTC 2016
> My concern with this is the changes in the shared code. Are
> they only applicable when Shenandoah is in use? Or should they
> be considered upstream as more general fixes?
>
> For example, the addition of:
>
> + oopDesc::bs()->interpreter_write_barrier(_masm, obj);
>
> to src/cpu/x86/vm/templateTable_x86_64.cpp. Is this a no-op
> if Shenandoah is not active?
Yes, that is a no-op for all GCs except Shenandoah.
> With
> - (quicksuperk->class_loader() == class_loader()))) {
> + (oopDesc::equals(quicksuperk->class_loader(),
> class_loader())))) {
>
> in src/share/vm/classfile/systemDictionary.cpp. Is this not
> a sensible cleanup that should go upstream?
Similar here: for all GCs other than Shenandoah, oopDesc::equals(a, b)
expands to a==b, for Shenandoah we need to do a little bit of special
handling to avoid false negatives in case a==b but we're getting two
different copies of the same object.
Roman
More information about the aarch64-port-dev
mailing list