@Override protected ValueNode createTargetAddressNode(HostedGraphKit kit, HostedProviders providers) { try { /* * We currently cannot handle {@link MethodPointer} as a constant in the code, so we use * an indirection with a non-final field load from an object of BoxedRelocatedPointer. */ BoxedRelocatedPointer box = new BoxedRelocatedPointer(target); ConstantNode boxNode = kit.createObject(box); ResolvedJavaField field = providers.getMetaAccess().lookupJavaField(BoxedRelocatedPointer.class.getDeclaredField("pointer")); return kit.createLoadField(boxNode, field); } catch (NoSuchFieldException e) { throw VMError.shouldNotReachHere(e); } }