< prev index next >
src/cpu/ppc/vm/templateTable_ppc_64.cpp
Print this page
rev 8107 : 8077838: Recent developments for ppc.
@@ -1,7 +1,7 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * 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,27 +373,26 @@
void TemplateTable::fast_aldc(bool wide) {
transition(vtos, atos);
int index_size = wide ? sizeof(u2) : sizeof(u1);
const Register Rscratch = R11_scratch1;
- Label resolved;
+ 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);
- __ cmpdi(CCR0, R17_tos, 0);
- __ bne(CCR0, resolved);
+ __ 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);
-
- __ align(32, 12);
- __ bind(resolved);
__ verify_oop(R17_tos);
}
void TemplateTable::ldc2_w() {
transition(vtos, vtos);
@@ -3793,13 +3792,13 @@
// - tos == 1: Obj was an instance of class.
void TemplateTable::instanceof() {
transition(atos, itos);
Label Ldone, Lis_null, Lquicked, Lresolved;
- Register Roffset = R5_ARG3,
+ Register Roffset = R6_ARG4,
RobjKlass = R4_ARG2,
- RspecifiedKlass = R6_ARG4, // Generate_ClassCastException_verbose_handler will expect the value in this register.
+ RspecifiedKlass = R5_ARG3,
Rcpool = R11_scratch1,
Rtags = R12_scratch2;
// Null does not pass.
__ cmpdi(CCR0, R17_tos, 0);
< prev index next >