You copied the Doc URL to your clipboard.
Shared Functions.Registers Pseudocode
Library pseudocode for shared/functions/registers/BranchTo
// BranchTo() // ========== // Set program counter to a new address, with a branch type // In AArch64 state the address might include a tag in the top eight bits. BranchTo(bits(N) target, BranchType branch_type) Hint_Branch(branch_type); if N == 32 then assert UsingAArch32(); _PC = ZeroExtend(target); else assert N == 64 && !UsingAArch32(); _PC = AArch64.BranchAddr(target<63:0>); return;
Library pseudocode for shared/functions/registers/BranchToAddr
// BranchToAddr() // ============== // Set program counter to a new address, with a branch type // In AArch64 state the address does not include a tag in the top eight bits. BranchToAddr(bits(N) target, BranchType branch_type) Hint_Branch(branch_type); if N == 32 then assert UsingAArch32(); _PC = ZeroExtend(target); else assert N == 64 && !UsingAArch32(); _PC = target<63:0>; return;
Library pseudocode for shared/functions/registers/BranchType
enumeration BranchType { BranchType_DIRCALL, // Direct Branch with link BranchType_INDCALL, // Indirect Branch with link BranchType_ERET, // Exception return (indirect) BranchType_DBGEXIT, // Exit from Debug state BranchType_RET, // Indirect branch with function return hint BranchType_DIR, // Direct branch BranchType_INDIR, // Indirect branch BranchType_EXCEPTION, // Exception entry BranchType_RESET, // Reset BranchType_UNKNOWN}; // Other
Library pseudocode for shared/functions/registers/Hint_Branch
// Report the hint passed to BranchTo() and BranchToAddr(), for consideration when processing // the next instruction. Hint_Branch(BranchType hint);
Library pseudocode for shared/functions/registers/NextInstrAddr
// Return address of the sequentially next instruction. bits(N) NextInstrAddr();
Library pseudocode for shared/functions/registers/ResetExternalDebugRegisters
// Reset the External Debug registers in the Core power domain. ResetExternalDebugRegisters(boolean cold_reset);
Library pseudocode for shared/functions/registers/ThisInstrAddr
// ThisInstrAddr() // =============== // Return address of the current instruction. bits(N) ThisInstrAddr() assert N == 64 || (N == 32 && UsingAArch32()); return _PC<N-1:0>;