RFR (XXL): JEP 243: Java-Level JVM Compiler Interface

Vladimir Kozlov vladimir.kozlov at oracle.com
Wed Sep 23 11:16:10 UTC 2015


It should use next(4) which we have exactly for such cases:

map->set_callee_saved(YMMHI_STACK_OFFSET(0), xmm0->as_VMReg()->next(4));

Note, next() is equal next(1).

Vladimir

On 9/19/15 5:42 PM, Andrew Haley wrote:
> On 14/09/15 08:24, Christian Thalinger wrote:
>
> +#if defined(COMPILER2) || INCLUDE_JVMCI
> +  if (save_vectors) {
> +    assert(ymmhi_offset != -1, "save area must exist");
> +    map->set_callee_saved(YMMHI_STACK_OFFSET(  0), xmm0->as_VMReg()->next()->next()->next()->next());
> +    map->set_callee_saved(YMMHI_STACK_OFFSET( 16), xmm1->as_VMReg()->next()->next()->next()->next());
> +    map->set_callee_saved(YMMHI_STACK_OFFSET( 32), xmm2->as_VMReg()->next()->next()->next()->next());
> +    map->set_callee_saved(YMMHI_STACK_OFFSET( 48), xmm3->as_VMReg()->next()->next()->next()->next());
> +    map->set_callee_saved(YMMHI_STACK_OFFSET( 64), xmm4->as_VMReg()->next()->next()->next()->next());
> +    map->set_callee_saved(YMMHI_STACK_OFFSET( 80), xmm5->as_VMReg()->next()->next()->next()->next());
> +    map->set_callee_saved(YMMHI_STACK_OFFSET( 96), xmm6->as_VMReg()->next()->next()->next()->next());
> +    map->set_callee_saved(YMMHI_STACK_OFFSET(112), xmm7->as_VMReg()->next()->next()->next()->next());
> +    map->set_callee_saved(YMMHI_STACK_OFFSET(128), xmm8->as_VMReg()->next()->next()->next()->next());
> +    map->set_callee_saved(YMMHI_STACK_OFFSET(144), xmm9->as_VMReg()->next()->next()->next()->next());
> +    map->set_callee_saved(YMMHI_STACK_OFFSET(160), xmm10->as_VMReg()->next()->next()->next()->next());
> +    map->set_callee_saved(YMMHI_STACK_OFFSET(176), xmm11->as_VMReg()->next()->next()->next()->next());
> +    map->set_callee_saved(YMMHI_STACK_OFFSET(192), xmm12->as_VMReg()->next()->next()->next()->next());
> +    map->set_callee_saved(YMMHI_STACK_OFFSET(208), xmm13->as_VMReg()->next()->next()->next()->next());
> +    map->set_callee_saved(YMMHI_STACK_OFFSET(224), xmm14->as_VMReg()->next()->next()->next()->next());
> +    map->set_callee_saved(YMMHI_STACK_OFFSET(240), xmm15->as_VMReg()->next()->next()->next()->next());
> +  }
> +#endif
> +
>
> Um, really?  There is plenty of very odd code in HotSpot, but this is something else
> again.
>
> Andrew.
>


More information about the hotspot-dev mailing list