Instruction-Based Self-Testing of Processor Cores