# Class: com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.FunctionOptype

Custom operator \("function"\) used to build [custom operations](OperationType#FUNCTION).

## Static Field: FLAG_OPND_HAVE_SAME_BITSIZE
Type: `int`

Constant value: `1`
Description: This flag indicates that all operands should have the same bitsize. This check is enforced when creating operations using such a function type.

## Static Field: FLAG_PASSTHRU_FOR_ECALL_DFA_CALCULATION
Type: `int`

Constant value: `16`
Description: This flag is reserved for single\-operand custom operators to specify that the operand is to be treated as a pointer, and the data pointed by it should be treated as such during data\-flow calculations. 

 This is especially important for DFA calculations of [IECall](IECall). Essentially, code like:  

```

 call(1, 2, 3, CUSTOM_FUNC(par_stkvarX))
 
```
  will be treated the same as the following by `IECall.getDefUse()`:  

```

 call(1, 2, 3, par_stkvarX)
 
```

## Method: getFlags
- return type: `int`


## Method: getName
- return type: `java.lang.String`


## Method: getOperandCount
- return type: `int`


## Method: getResultBitsize
- parameter: `opnds`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric[]`
- return type: `int`

Description: 
return: 

## Method: hasFlags
- parameter: `expected`, type: `int`
- return type: `boolean`


## Method: toString
- return type: `java.lang.String`


## Method: validateOperands
- parameter: `opnds`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric[]`


