mv.visitVarInsn( Opcodes.ILOAD, 2 ); // col
mv.push( 1 );
mv.ifICmp( mv.LT, outOfRange );
mv.visitVarInsn( Opcodes.ILOAD, 2 ); // col
mv.push( this.cols );
mv.ifICmp( mv.GT, outOfRange );
// (<row> - 1) * <num_cols>) + (<col> - 1);
mv.visitVarInsn( Opcodes.ILOAD, 1 ); // row
mv.push( 1 );
mv.visitInsn( Opcodes.ISUB );