/* * This file is part of the Jikes RVM project (http://jikesrvm.org). * * This file is licensed to You under the Eclipse Public License (EPL); * You may not use this file except in compliance with the License. You * may obtain a copy of the License at * * http://www.opensource.org/licenses/eclipse-1.0.php * * See the COPYRIGHT.txt file distributed with this work for information * regarding copyright ownership. */ class testSwitchHIR { static int argwords(String sig) { int n = 0; for (int i = 1; i < sig.length(); i++) { switch (sig.charAt(i)) { case ')': return n; default: n += 1; break; // error case 'B': n += 1; break; case 'C': n += 1; break; case 'D': n += 2; break; case 'F': n += 1; break; case 'I': n += 1; break; case 'J': n += 2; break; case 'S': n += 1; break; case 'Z': n += 1; break; case 'L': n += 1; /* Something is wrong with HIR in the following statement */ /* This breaks RegAlloc, reported as bug report #10. */ while (sig.charAt(++i) != ';') ; break; case '[': n += 1; while (sig.charAt(++i) == '[') ; if (sig.charAt(i) == 'L') while (sig.charAt(++i) != ';') ; break; } } return n; } }