Architectural Support for Software Security