Buggy code:
public static final SingleRegister EDI = new SingleRegister ( Bit . BIT32 , "%edi" , SingleRegister . FULL ) ; public static final SingleRegister DIL = new SingleRegister ( Bit . BIT8 , "%dil" , SingleRegister . LOW ) ; public static final SingleRegister RSI = new SingleRegister ( Bit . BIT64 , "%rsi" , SingleRegister . FULL ) ; public static final SingleRegister ESI = new SingleRegister ( Bit . BIT32 , "%esi" , SingleRegister . FULL ) ; public static final SingleRegister SIL = new SingleRegister ( Bit . BIT8 , "%sil" , SingleRegister . LOW ) ; public static final SingleRegister RAX = new SingleRegister ( Bit . BIT64 , "%rax" , SingleRegister . FULL ) ; public static final SingleRegister EAX = new SingleRegister ( Bit . BIT32 , "%eax" , SingleRegister . FULL ) ; public static final SingleRegister AH = new SingleRegister ( Bit . BIT8 , "%ah" , SingleRegister . HIGH ) ; public static final SingleRegister AL = new SingleRegister ( Bit . BIT8 , "%al" , SingleRegister . LOW ) ; public static final SingleRegister RBX = new SingleRegister ( Bit . BIT64 , "%rbx" , SingleRegister . FULL ) ; public static final SingleRegister EBX = new SingleRegister ( Bit . BIT32 , "%ebx" , SingleRegister . FULL ) ; public static final SingleRegister BH = new SingleRegister ( Bit . BIT8 , "%bh" , SingleRegister . HIGH ) ; public static final SingleRegister BL = new SingleRegister ( Bit . BIT8 , "%bl" , SingleRegister . LOW ) ; public static final SingleRegister RCX = new SingleRegister ( Bit . BIT64 , "%rcx" , SingleRegister . FULL ) ; public static final SingleRegister ECX = new SingleRegister ( Bit . BIT32 , "%ecx" , SingleRegister . FULL ) ; public static final SingleRegister CH = new SingleRegister ( Bit . BIT8 , "%ch" , SingleRegister . HIGH ) ; public static final SingleRegister CL = new SingleRegister ( Bit . BIT8 , "%cl" , SingleRegister . LOW ) ; public static final SingleRegister RDX = new SingleRegister ( Bit . BIT64 , "%rdx" , SingleRegister . FULL ) ; public static final SingleRegister EDX = new SingleRegister ( Bit . BIT32 , "%edx" , SingleRegister . FULL ) ; public static final SingleRegister DH = new SingleRegister ( Bit . BIT8 , "%dh" , SingleRegister . HIGH ) ; public static final SingleRegister DL = new SingleRegister ( Bit . BIT8 , "%dl" , SingleRegister . LOW ) ; public static final SingleRegister R8 = new SingleRegister ( Bit . BIT64 , "%r8" , SingleRegister . FULL ) ; public static final SingleRegister R8D = new SingleRegister ( Bit . BIT32 , "%r8d" , SingleRegister . FULL ) ; public static final SingleRegister R8B = new SingleRegister ( Bit . BIT8 , "%r8b" , SingleRegister . FULL ) ; public static final SingleRegister R9 = new SingleRegister ( Bit . BIT64 , "%r9" , SingleRegister . FULL ) ; public static final SingleRegister R9D = new SingleRegister ( Bit . BIT32 , "%r9d" , SingleRegister . FULL ) ; public static final SingleRegister R9B = new SingleRegister ( Bit . BIT8 , "%r9b" , SingleRegister . FULL ) ; public static final SingleRegister R10 = new SingleRegister ( Bit . BIT64 , "%r10" , SingleRegister . FULL ) ; public static final SingleRegister R10D = new SingleRegister ( Bit . BIT32 , "%r10d" , SingleRegister . FULL ) ; public static final SingleRegister R10B = new SingleRegister ( Bit . BIT8 , "%r10b" , SingleRegister . FULL ) ; public static final SingleRegister R11 = new SingleRegister ( Bit . BIT64 , "%r11" , SingleRegister . FULL ) ; public static final SingleRegister R11D = new SingleRegister ( Bit . BIT32 , "%r11d" , SingleRegister . FULL ) ; public static final SingleRegister R11B = new SingleRegister ( Bit . BIT8 , "%r11b" , SingleRegister . FULL ) ; public static final SingleRegister R12 = new SingleRegister ( Bit . BIT64 , "%r12" , SingleRegister . FULL ) ; public static final SingleRegister R12D = new SingleRegister ( Bit . BIT32 , "%r12d" , SingleRegister . FULL ) ; public static final SingleRegister R12B = new SingleRegister ( Bit . BIT8 , "%r12b" , SingleRegister . FULL ) ; public static final SingleRegister R13 = new SingleRegister ( Bit . BIT64 , "%r13" , SingleRegister . FULL ) ; public static final SingleRegister R13D = new SingleRegister ( Bit . BIT32 , "%r13d" , SingleRegister . FULL ) ; public static final SingleRegister R13B = new SingleRegister ( Bit . BIT8 , "%r13b" , SingleRegister . FULL ) ; public static final SingleRegister R14 = new SingleRegister ( Bit . BIT64 , "%r14" , SingleRegister . FULL ) ; public static final SingleRegister R14D = new SingleRegister ( Bit . BIT32 , "%r14d" , SingleRegister . FULL ) ; public static final SingleRegister R14B = new SingleRegister ( Bit . BIT8 , "%r14b" , SingleRegister . FULL ) ; public static final SingleRegister R15 = new SingleRegister ( Bit . BIT64 , "%r15" , SingleRegister . FULL ) ; public static final SingleRegister R15D = new SingleRegister ( Bit . BIT32 , "%r15d" , SingleRegister . FULL ) ; public static final SingleRegister R15B = new SingleRegister ( Bit . BIT8 , "%r15b" , SingleRegister . FULL ) ; private final String registerName ; private final Bit mode ; private final byte mask ; private RegisterBundle registerBundle ; private SingleRegister ( Bit mode , String registerName , byte mask ) { } public String getRegisterName ( ) { } @ Override public String toString ( ) { } @ Override public Bit getMode ( ) { } @ Override public RegisterBundle getRegisterBundle ( ) { } void setRegisterBundle ( RegisterBundle registerBundle ) { } public byte getMask ( ) { } @ Override public SingleRegister getSingleRegister ( ) { <START_BUG> return null ; <END_BUG> } }

Fix:
return this ;