Architectural support for software security