1. A method of obtaining performance counter data for a computer architecture being simulated by a computer simulator, comprising: retrieving an instruction to execute from an input instruction stream; retrieving a callback associated with the instruction from the input instruction stream; executing the instruction on the computer simulator; and executing the associated callback associated with the instruction, wherein the callback calculates the performance counter data for the instruction.