diff --git a/config.sub b/config.sub
index bba4efb..cbcd130 100755
--- a/config.sub
+++ b/config.sub
@@ -259,7 +259,7 @@ case $basic_machine in
 	| bfin \
 	| c4x | c8051 | clipper \
 	| d10v | d30v | dlx | dsp16xx \
-	| epiphany \
+	| e500v[12] | epiphany \
 	| fido | fr30 | frv \
 	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
 	| hexagon \
@@ -378,6 +378,7 @@ case $basic_machine in
 	| c8051-* | clipper-* | craynv-* | cydra-* \
 	| d10v-* | d30v-* | dlx-* \
 	| elxsi-* \
+	| e500v[12]-* \
 	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
 	| h8300-* | h8500-* \
 	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
@@ -1788,6 +1789,27 @@ case $basic_machine in
 		;;
 esac
 
+# Now deal with CPUs that should map to a canonical variant and might
+# require possible effects on the final os selection for ABI considerations.
+
+case $basic_machine in
+
+	# Turn e500v[12] into powerpc, then add a "spe" suffix for
+	# systems that expect it if we don't have one already.
+
+	e500v[12]*)
+		basic_machine=`echo $basic_machine | sed "s/e500v./powerpc/"`
+
+		case $os in
+			*spe)
+				;;
+			*linux*)
+				os=$os"spe"
+				;;
+		esac
+		;;
+esac
+
 echo $basic_machine$os
 exit
 
diff --git a/testsuite/config-sub.data b/testsuite/config-sub.data
index 7249dc0..c0bb5bc 100644
--- a/testsuite/config-sub.data
+++ b/testsuite/config-sub.data
@@ -55,6 +55,11 @@ cris-linux			cris-axis-linux-gnu
 crisv32-linux			crisv32-axis-linux-gnu
 dicos				i686-pc-dicos
 djgpp				i586-pc-msdosdjgpp
+e500v1-elf			powerpc-unknown-elf
+e500v2-elf			powerpc-unknown-elf
+e500v2-wrs-vxworks		powerpc-wrs-vxworks
+e500v2-vxworksae		powerpc-wrs-vxworksae
+e500v2-wrs-linux		powerpc-wrs-linux-gnuspe
 epiphany-elf			epiphany-unknown-elf
 epiphany			epiphany-unknown-none
 fido-elf			fido-unknown-elf
