comparison src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp @ 665:c89f86385056

6814659: separable cleanups and subroutines for 6655638 Summary: preparatory but separable changes for method handles Reviewed-by: kvn, never
author jrose
date Fri, 20 Mar 2009 23:19:36 -0700
parents c517646eef23
children 6b2273dd6fa9
comparison
equal deleted inserted replaced
647:bd441136a5ce 665:c89f86385056
1 /* 1 /*
2 * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. 2 * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
2487 need_slow_path = false; 2487 need_slow_path = false;
2488 // perform the fast part of the checking logic 2488 // perform the fast part of the checking logic
2489 __ check_klass_subtype_fast_path(klass_RInfo, k_RInfo, Rtmp1, noreg, 2489 __ check_klass_subtype_fast_path(klass_RInfo, k_RInfo, Rtmp1, noreg,
2490 (need_slow_path ? &done : NULL), 2490 (need_slow_path ? &done : NULL),
2491 stub->entry(), NULL, 2491 stub->entry(), NULL,
2492 RegisterConstant(k->super_check_offset())); 2492 RegisterOrConstant(k->super_check_offset()));
2493 } else { 2493 } else {
2494 // perform the fast part of the checking logic 2494 // perform the fast part of the checking logic
2495 __ check_klass_subtype_fast_path(klass_RInfo, k_RInfo, Rtmp1, O7, 2495 __ check_klass_subtype_fast_path(klass_RInfo, k_RInfo, Rtmp1, O7,
2496 &done, stub->entry(), NULL); 2496 &done, stub->entry(), NULL);
2497 } 2497 }
2548 need_slow_path = false; 2548 need_slow_path = false;
2549 // perform the fast part of the checking logic 2549 // perform the fast part of the checking logic
2550 __ check_klass_subtype_fast_path(klass_RInfo, k_RInfo, O7, noreg, 2550 __ check_klass_subtype_fast_path(klass_RInfo, k_RInfo, O7, noreg,
2551 (need_slow_path ? &done : NULL), 2551 (need_slow_path ? &done : NULL),
2552 (need_slow_path ? &done : NULL), NULL, 2552 (need_slow_path ? &done : NULL), NULL,
2553 RegisterConstant(k->super_check_offset()), 2553 RegisterOrConstant(k->super_check_offset()),
2554 dst); 2554 dst);
2555 } else { 2555 } else {
2556 assert(dst != klass_RInfo && dst != k_RInfo, "need 3 registers"); 2556 assert(dst != klass_RInfo && dst != k_RInfo, "need 3 registers");
2557 // perform the fast part of the checking logic 2557 // perform the fast part of the checking logic
2558 __ check_klass_subtype_fast_path(klass_RInfo, k_RInfo, O7, dst, 2558 __ check_klass_subtype_fast_path(klass_RInfo, k_RInfo, O7, dst,
2559 &done, &done, NULL, 2559 &done, &done, NULL,
2560 RegisterConstant(-1), 2560 RegisterOrConstant(-1),
2561 dst); 2561 dst);
2562 } 2562 }
2563 if (need_slow_path) { 2563 if (need_slow_path) {
2564 // call out-of-line instance of __ check_klass_subtype_slow_path(...): 2564 // call out-of-line instance of __ check_klass_subtype_slow_path(...):
2565 assert(klass_RInfo == G3 && k_RInfo == G1, "incorrect call setup"); 2565 assert(klass_RInfo == G3 && k_RInfo == G1, "incorrect call setup");