########################################################################
# Copyright (c) 2003, 2005 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials 
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
# 
# Contributors:
#     IBM Corporation - initial API and implementation
########################################################################

# This file must be UTF8 encoded.

#Processor Aliases                      Description

68k                                     # Motorola 68000 and up
ARM                                     # Intel Strong ARM
Alpha                                   # Compaq (ex DEC)
Ignite psc1k                            # PTSC
Mips                                    # SGI
PArisc                                  # Hewlett Packard PA Risc
PowerPC power ppc                       # Motorola/IBM Power PC
Sparc                                   # SUN
x86 pentium i386 i486 i586 i686         # Intel
s390                                    # IBM System 390
v850e                                   # NEC V850E
x86-64 amd64 em64t x86_64               # 64 bit x86 architecture
