Pipelined ARMv8 CPU Simulator with Branch Prediction and Caching

A 5-stage pipelined ARMv8 simulator in C with hazard detection and forwarding, a gshare predictor (8-bit GHR, 256-entry PHT, 1024-entry BTB), and a configurable set-associative cache.