RFR (XXL): JEP 243: Java-Level JVM Compiler Interface
Christian Thalinger
christian.thalinger at oracle.com
Wed Sep 23 21:38:45 UTC 2015
> On Sep 23, 2015, at 1:16 AM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
>
> 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).
Done:
http://hg.openjdk.java.net/graal/graal-jvmci-9/hotspot/rev/6703dfe1e8f9 <http://hg.openjdk.java.net/graal/graal-jvmci-9/hotspot/rev/6703dfe1e8f9>
>
> 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