Architectural Support For Securing Systems Against Software Vulnerabilities