1 /* |
1 /* |
2 * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1997, 2018, Oracle and/or its affiliates. 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. |
191 // Map a Java-signature return type into return register-value |
191 // Map a Java-signature return type into return register-value |
192 // machine registers for 0, 1 and 2 returned values. |
192 // machine registers for 0, 1 and 2 returned values. |
193 const TypeTuple *range = C->tf()->range(); |
193 const TypeTuple *range = C->tf()->range(); |
194 if( range->cnt() > TypeFunc::Parms ) { // If not a void function |
194 if( range->cnt() > TypeFunc::Parms ) { // If not a void function |
195 // Get ideal-register return type |
195 // Get ideal-register return type |
196 int ireg = range->field_at(TypeFunc::Parms)->ideal_reg(); |
196 uint ireg = range->field_at(TypeFunc::Parms)->ideal_reg(); |
197 // Get machine return register |
197 // Get machine return register |
198 uint sop = C->start()->Opcode(); |
198 uint sop = C->start()->Opcode(); |
199 OptoRegPair regs = return_value(ireg, false); |
199 OptoRegPair regs = return_value(ireg, false); |
200 |
200 |
201 // And mask for same |
201 // And mask for same |