https://static.docs.arm.com/ddi0406/cc/DDI0406C_C_arm_architecture_reference_manual.pdf?_ga=2.213636882.749517361.1573366398-2003782784.1548051177