< prev index next >

src/cpu/ppc/vm/templateTable_ppc_64.cpp

Print this page
rev 8109 : 8077838: Recent developments for ppc.
Reviewed-by: kvn

*** 1,7 **** /* ! * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. * Copyright 2013, 2015 SAP AG. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as --- 1,7 ---- /* ! * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. * Copyright 2013, 2015 SAP AG. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as
*** 373,399 **** void TemplateTable::fast_aldc(bool wide) { transition(vtos, atos); int index_size = wide ? sizeof(u2) : sizeof(u1); const Register Rscratch = R11_scratch1; ! Label resolved; // We are resolved if the resolved reference cache entry contains a // non-null object (CallSite, etc.) __ get_cache_index_at_bcp(Rscratch, 1, index_size); // Load index. ! __ load_resolved_reference_at_index(R17_tos, Rscratch); ! __ cmpdi(CCR0, R17_tos, 0); ! __ bne(CCR0, resolved); __ load_const_optimized(R3_ARG1, (int)bytecode()); address entry = CAST_FROM_FN_PTR(address, InterpreterRuntime::resolve_ldc); // First time invocation - must resolve first. __ call_VM(R17_tos, entry, R3_ARG1); - - __ align(32, 12); - __ bind(resolved); __ verify_oop(R17_tos); } void TemplateTable::ldc2_w() { transition(vtos, vtos); --- 373,398 ---- void TemplateTable::fast_aldc(bool wide) { transition(vtos, atos); int index_size = wide ? sizeof(u2) : sizeof(u1); const Register Rscratch = R11_scratch1; ! Label is_null; // We are resolved if the resolved reference cache entry contains a // non-null object (CallSite, etc.) __ get_cache_index_at_bcp(Rscratch, 1, index_size); // Load index. ! __ load_resolved_reference_at_index(R17_tos, Rscratch, &is_null); ! __ verify_oop(R17_tos); ! __ dispatch_epilog(atos, Bytecodes::length_for(bytecode())); ! ! __ bind(is_null); __ load_const_optimized(R3_ARG1, (int)bytecode()); address entry = CAST_FROM_FN_PTR(address, InterpreterRuntime::resolve_ldc); // First time invocation - must resolve first. __ call_VM(R17_tos, entry, R3_ARG1); __ verify_oop(R17_tos); } void TemplateTable::ldc2_w() { transition(vtos, vtos);
*** 3793,3805 **** // - tos == 1: Obj was an instance of class. void TemplateTable::instanceof() { transition(atos, itos); Label Ldone, Lis_null, Lquicked, Lresolved; ! Register Roffset = R5_ARG3, RobjKlass = R4_ARG2, ! RspecifiedKlass = R6_ARG4, // Generate_ClassCastException_verbose_handler will expect the value in this register. Rcpool = R11_scratch1, Rtags = R12_scratch2; // Null does not pass. __ cmpdi(CCR0, R17_tos, 0); --- 3792,3804 ---- // - tos == 1: Obj was an instance of class. void TemplateTable::instanceof() { transition(atos, itos); Label Ldone, Lis_null, Lquicked, Lresolved; ! Register Roffset = R6_ARG4, RobjKlass = R4_ARG2, ! RspecifiedKlass = R5_ARG3, Rcpool = R11_scratch1, Rtags = R12_scratch2; // Null does not pass. __ cmpdi(CCR0, R17_tos, 0);
< prev index next >