src/share/vm/adlc/formsopt.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/share/vm/adlc/formsopt.cpp	Sat Jun  2 20:04:07 2012
--- new/src/share/vm/adlc/formsopt.cpp	Sat Jun  2 20:04:07 2012

*** 1,7 **** --- 1,7 ---- /* ! * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. ! * Copyright (c) 1998, 2012, Oracle and/or its affiliates. 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 * published by the Free Software Foundation.
*** 64,74 **** --- 64,74 ---- // Called after parsing the Register block. Record the register class // for spill-slots/regs. void RegisterForm::addSpillRegClass() { // Stack slots start at the next available even register number. ! _reg_ctr = (_reg_ctr+1) & ~1; ! _reg_ctr = (_reg_ctr+7) & ~7; const char *rc_name = "stack_slots"; RegClass *reg_class = new RegClass(rc_name); reg_class->_stack_or_reg = true; _rclasses.addName(rc_name); _regClass.Insert(rc_name,reg_class);
*** 148,160 **** --- 148,165 ---- // Compute RegMask size int RegisterForm::RegMask_Size() { // Need at least this many words int words_for_regs = (_reg_ctr + 31)>>5; // Add a few for incoming & outgoing arguments to calls. + // The array of Register Mask bits should be large enough to cover + // all the machine registers and all parameters that need to be passed + // on the stack (stack registers) up to some interesting limit. Methods + // that need more parameters will NOT be compiled. On Intel, the limit + // is something like 90+ parameters. + // Add a few (3 words == 96 bits) for incoming & outgoing arguments to calls. // Round up to the next doubleword size. ! return (words_for_regs + 2 + 1) & ~1; ! return (words_for_regs + 3 + 1) & ~1; } void RegisterForm::dump() { // Debug printer output(stderr); }

src/share/vm/adlc/formsopt.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File