Mercurial > hg > graal-jvmci-8
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"); |