diff --git a/gdb/features/Makefile b/gdb/features/Makefile
index 82609f5862fa95dbc587c7cc08537373faf7bfd6..96478b051262fadb074e37300f09cadbd5a1512c 100644
--- a/gdb/features/Makefile
+++ b/gdb/features/Makefile
@@ -202,6 +202,8 @@ $(outdir)/%.dat: %.xml number-regs.xsl sort-regs.xsl gdbserver-regs.xsl
 	echo "xmltarget:$(<F)" >> $(outdir)/$*.tmp
 	echo "expedite:$(if $($*-expedite),$($*-expedite),$($(firstword $(subst -, ,$(notdir $*)))-expedite))" \
 	  >> $(outdir)/$*.tmp
+	sed -n 's:.*<osabi>\(.*\)</osabi>.*:osabi\:\1:p' $*.xml >> $(outdir)/$*.tmp
+	sed -n 's:.*<architecture>\(.*\)</architecture>.*:xmlarch\:\1:p' $*.xml >> $(outdir)/$*.tmp
 	$(XSLTPROC) --path "$(PWD)" --xinclude number-regs.xsl $< | \
 	  $(XSLTPROC) sort-regs.xsl - | \
 	  $(XSLTPROC) gdbserver-regs.xsl - >> $(outdir)/$*.tmp
diff --git a/gdb/regformats/aarch64.dat b/gdb/regformats/aarch64.dat
index d4cea04358ecf6a7b0645353b1944d49113632ed..2a150e50bf8d2a1fea13e0ea3dbc024705865bb9 100644
--- a/gdb/regformats/aarch64.dat
+++ b/gdb/regformats/aarch64.dat
@@ -3,6 +3,7 @@
 name:aarch64
 xmltarget:aarch64.xml
 expedite:x29,sp,pc
+xmlarch:aarch64
 64:x0
 64:x1
 64:x2
diff --git a/gdb/regformats/arm/arm-with-iwmmxt.dat b/gdb/regformats/arm/arm-with-iwmmxt.dat
index f529c2c493c39ff204a22d34c8a2c7a622f349a2..71fd07075b0a80d062a93b4a5f81a8b703818fde 100644
--- a/gdb/regformats/arm/arm-with-iwmmxt.dat
+++ b/gdb/regformats/arm/arm-with-iwmmxt.dat
@@ -3,6 +3,7 @@
 name:arm_with_iwmmxt
 xmltarget:arm-with-iwmmxt.xml
 expedite:r11,sp,pc
+xmlarch:iwmmxt
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/arm/arm-with-neon.dat b/gdb/regformats/arm/arm-with-neon.dat
index 2e6cb85cf4bc1712b640fdca902774f87bdac376..2c58e1b590dc9a729f9e024b3d559878a7ccbf2d 100644
--- a/gdb/regformats/arm/arm-with-neon.dat
+++ b/gdb/regformats/arm/arm-with-neon.dat
@@ -3,6 +3,7 @@
 name:arm_with_neon
 xmltarget:arm-with-neon.xml
 expedite:r11,sp,pc
+xmlarch:arm
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/arm/arm-with-vfpv2.dat b/gdb/regformats/arm/arm-with-vfpv2.dat
index aa71f85bcb26f11c8a4ded0738d39fdaf3c3f9f9..456977ec09b6125f12071f9f5fec828fe0baecca 100644
--- a/gdb/regformats/arm/arm-with-vfpv2.dat
+++ b/gdb/regformats/arm/arm-with-vfpv2.dat
@@ -3,6 +3,7 @@
 name:arm_with_vfpv2
 xmltarget:arm-with-vfpv2.xml
 expedite:r11,sp,pc
+xmlarch:arm
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/arm/arm-with-vfpv3.dat b/gdb/regformats/arm/arm-with-vfpv3.dat
index 6fec4fd8f5d11ee8f29402704fb7e55f7fc9ea45..9fe6f6e0219f78f5dcdd04388874cb1bc9132f41 100644
--- a/gdb/regformats/arm/arm-with-vfpv3.dat
+++ b/gdb/regformats/arm/arm-with-vfpv3.dat
@@ -3,6 +3,7 @@
 name:arm_with_vfpv3
 xmltarget:arm-with-vfpv3.xml
 expedite:r11,sp,pc
+xmlarch:arm
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/i386/amd64-avx-avx512-linux.dat b/gdb/regformats/i386/amd64-avx-avx512-linux.dat
index 0743693886bb3984074191698155d7b0c422008b..76cb4bf3e1ab0d42ccf271a2c5263aec74438884 100644
--- a/gdb/regformats/i386/amd64-avx-avx512-linux.dat
+++ b/gdb/regformats/i386/amd64-avx-avx512-linux.dat
@@ -3,6 +3,8 @@
 name:amd64_avx_avx512_linux
 xmltarget:amd64-avx-avx512-linux.xml
 expedite:rbp,rsp,rip
+osabi:GNU/Linux
+xmlarch:i386:x86-64
 64:rax
 64:rbx
 64:rcx
diff --git a/gdb/regformats/i386/amd64-avx-linux.dat b/gdb/regformats/i386/amd64-avx-linux.dat
index 7780b3b6a214592fdd6c7afce6215351ff4787d8..f07a45c1d7df267e69dfa3af7eb49a417e16d9f7 100644
--- a/gdb/regformats/i386/amd64-avx-linux.dat
+++ b/gdb/regformats/i386/amd64-avx-linux.dat
@@ -3,6 +3,8 @@
 name:amd64_avx_linux
 xmltarget:amd64-avx-linux.xml
 expedite:rbp,rsp,rip
+osabi:GNU/Linux
+xmlarch:i386:x86-64
 64:rax
 64:rbx
 64:rcx
diff --git a/gdb/regformats/i386/amd64-avx-mpx-avx512-pku-linux.dat b/gdb/regformats/i386/amd64-avx-mpx-avx512-pku-linux.dat
index 9cd0fae8202596630fdab8321c6cb7c7ba38c7af..d55a3dbd08cb979ac8bf268f979fbb9b8461ff4f 100644
--- a/gdb/regformats/i386/amd64-avx-mpx-avx512-pku-linux.dat
+++ b/gdb/regformats/i386/amd64-avx-mpx-avx512-pku-linux.dat
@@ -3,6 +3,8 @@
 name:amd64_avx_mpx_avx512_pku_linux
 xmltarget:amd64-avx-mpx-avx512-pku-linux.xml
 expedite:rbp,rsp,rip
+osabi:GNU/Linux
+xmlarch:i386:x86-64
 64:rax
 64:rbx
 64:rcx
diff --git a/gdb/regformats/i386/amd64-avx-mpx-linux.dat b/gdb/regformats/i386/amd64-avx-mpx-linux.dat
index 7c2f928070fe291e5ca1249617fe8b8e96644912..4b81aaebc7813dd50ac962a115f128e02a910a15 100644
--- a/gdb/regformats/i386/amd64-avx-mpx-linux.dat
+++ b/gdb/regformats/i386/amd64-avx-mpx-linux.dat
@@ -3,6 +3,8 @@
 name:amd64_avx_mpx_linux
 xmltarget:amd64-avx-mpx-linux.xml
 expedite:rbp,rsp,rip
+osabi:GNU/Linux
+xmlarch:i386:x86-64
 64:rax
 64:rbx
 64:rcx
diff --git a/gdb/regformats/i386/amd64-linux.dat b/gdb/regformats/i386/amd64-linux.dat
index cd16a1544283edd5e22f9bd8ce4ae56012af7833..893a8873f783b40571f071b5ea3f1ec899a99bf8 100644
--- a/gdb/regformats/i386/amd64-linux.dat
+++ b/gdb/regformats/i386/amd64-linux.dat
@@ -3,6 +3,8 @@
 name:amd64_linux
 xmltarget:amd64-linux.xml
 expedite:rbp,rsp,rip
+osabi:GNU/Linux
+xmlarch:i386:x86-64
 64:rax
 64:rbx
 64:rcx
diff --git a/gdb/regformats/i386/amd64-mpx-linux.dat b/gdb/regformats/i386/amd64-mpx-linux.dat
index 10487f698708b431ca9e5cf9c6a077c78651ad33..bf6fe32fd90c646b42db8eb00fd90d42b17cc8cb 100644
--- a/gdb/regformats/i386/amd64-mpx-linux.dat
+++ b/gdb/regformats/i386/amd64-mpx-linux.dat
@@ -3,6 +3,8 @@
 name:amd64_mpx_linux
 xmltarget:amd64-mpx-linux.xml
 expedite:rbp,rsp,rip
+osabi:GNU/Linux
+xmlarch:i386:x86-64
 64:rax
 64:rbx
 64:rcx
diff --git a/gdb/regformats/i386/amd64.dat b/gdb/regformats/i386/amd64.dat
index 66f26ad0947eca8849ff5f5ca67f173d6705ba70..05d3d133caf07b105bab6ea50fa974b0ccf9b920 100644
--- a/gdb/regformats/i386/amd64.dat
+++ b/gdb/regformats/i386/amd64.dat
@@ -3,6 +3,7 @@
 name:amd64
 xmltarget:amd64.xml
 expedite:rbp,rsp,rip
+xmlarch:i386:x86-64
 64:rax
 64:rbx
 64:rcx
diff --git a/gdb/regformats/i386/i386-avx-avx512-linux.dat b/gdb/regformats/i386/i386-avx-avx512-linux.dat
index 4477133997252ff3fc375b772dbdc1f8d723132d..e0bda8c6a94d12e535b75269957a1dc090051198 100644
--- a/gdb/regformats/i386/i386-avx-avx512-linux.dat
+++ b/gdb/regformats/i386/i386-avx-avx512-linux.dat
@@ -3,6 +3,8 @@
 name:i386_avx_avx512_linux
 xmltarget:i386-avx-avx512-linux.xml
 expedite:ebp,esp,eip
+osabi:GNU/Linux
+xmlarch:i386
 32:eax
 32:ecx
 32:edx
diff --git a/gdb/regformats/i386/i386-avx-linux.dat b/gdb/regformats/i386/i386-avx-linux.dat
index 1c3fcfd7633b937e2ce4e033a4706a8d9d14d277..9a21f7f1a2a21289e2619158f7c758bb5d37a629 100644
--- a/gdb/regformats/i386/i386-avx-linux.dat
+++ b/gdb/regformats/i386/i386-avx-linux.dat
@@ -3,6 +3,8 @@
 name:i386_avx_linux
 xmltarget:i386-avx-linux.xml
 expedite:ebp,esp,eip
+osabi:GNU/Linux
+xmlarch:i386
 32:eax
 32:ecx
 32:edx
diff --git a/gdb/regformats/i386/i386-avx-mpx-avx512-pku-linux.dat b/gdb/regformats/i386/i386-avx-mpx-avx512-pku-linux.dat
index 515ee10525bd8b9fb238e4f0fb14815b65a7b73f..5fe5f64e7868e27cf140fe26a0db72e34b15f178 100644
--- a/gdb/regformats/i386/i386-avx-mpx-avx512-pku-linux.dat
+++ b/gdb/regformats/i386/i386-avx-mpx-avx512-pku-linux.dat
@@ -3,6 +3,8 @@
 name:i386_avx_mpx_avx512_pku_linux
 xmltarget:i386-avx-mpx-avx512-pku-linux.xml
 expedite:ebp,esp,eip
+osabi:GNU/Linux
+xmlarch:i386
 32:eax
 32:ecx
 32:edx
diff --git a/gdb/regformats/i386/i386-avx-mpx-linux.dat b/gdb/regformats/i386/i386-avx-mpx-linux.dat
index 831c476fef4398d661fc00412f165f61daf3b2a0..82df093b25f39b1c88e78f4a5c19ad26409c086a 100644
--- a/gdb/regformats/i386/i386-avx-mpx-linux.dat
+++ b/gdb/regformats/i386/i386-avx-mpx-linux.dat
@@ -3,6 +3,8 @@
 name:i386_avx_mpx_linux
 xmltarget:i386-avx-mpx-linux.xml
 expedite:ebp,esp,eip
+osabi:GNU/Linux
+xmlarch:i386
 32:eax
 32:ecx
 32:edx
diff --git a/gdb/regformats/i386/i386-avx.dat b/gdb/regformats/i386/i386-avx.dat
deleted file mode 100644
index 67eaa33a1aef63457594d15bcec088e9771fa0d6..0000000000000000000000000000000000000000
--- a/gdb/regformats/i386/i386-avx.dat
+++ /dev/null
@@ -1,54 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: i386/i386-avx.xml
-name:i386_avx
-xmltarget:i386-avx.xml
-expedite:ebp,esp,eip
-32:eax
-32:ecx
-32:edx
-32:ebx
-32:esp
-32:ebp
-32:esi
-32:edi
-32:eip
-32:eflags
-32:cs
-32:ss
-32:ds
-32:es
-32:fs
-32:gs
-80:st0
-80:st1
-80:st2
-80:st3
-80:st4
-80:st5
-80:st6
-80:st7
-32:fctrl
-32:fstat
-32:ftag
-32:fiseg
-32:fioff
-32:foseg
-32:fooff
-32:fop
-128:xmm0
-128:xmm1
-128:xmm2
-128:xmm3
-128:xmm4
-128:xmm5
-128:xmm6
-128:xmm7
-32:mxcsr
-128:ymm0h
-128:ymm1h
-128:ymm2h
-128:ymm3h
-128:ymm4h
-128:ymm5h
-128:ymm6h
-128:ymm7h
diff --git a/gdb/regformats/i386/i386-linux.dat b/gdb/regformats/i386/i386-linux.dat
index 0e414e649029020eefd789026787f9959bb791d3..937b6536a15733432478ad5c5b2014ca792d038c 100644
--- a/gdb/regformats/i386/i386-linux.dat
+++ b/gdb/regformats/i386/i386-linux.dat
@@ -3,6 +3,8 @@
 name:i386_linux
 xmltarget:i386-linux.xml
 expedite:ebp,esp,eip
+osabi:GNU/Linux
+xmlarch:i386
 32:eax
 32:ecx
 32:edx
diff --git a/gdb/regformats/i386/i386-mmx-linux.dat b/gdb/regformats/i386/i386-mmx-linux.dat
index aa2a564ac7466e4cb13fb02c9c386b2847b3aa3b..1bef702be43e9ea29cfda7aeb6ac6d2090e52d82 100644
--- a/gdb/regformats/i386/i386-mmx-linux.dat
+++ b/gdb/regformats/i386/i386-mmx-linux.dat
@@ -3,6 +3,8 @@
 name:i386_mmx_linux
 xmltarget:i386-mmx-linux.xml
 expedite:ebp,esp,eip
+osabi:GNU/Linux
+xmlarch:i386
 32:eax
 32:ecx
 32:edx
diff --git a/gdb/regformats/i386/i386-mpx-linux.dat b/gdb/regformats/i386/i386-mpx-linux.dat
index 1dcdce98cf50141722cb273ad379d00339a33483..c7ee4b762cb1274e241a453503937fc27c1107c8 100644
--- a/gdb/regformats/i386/i386-mpx-linux.dat
+++ b/gdb/regformats/i386/i386-mpx-linux.dat
@@ -3,6 +3,8 @@
 name:i386_mpx_linux
 xmltarget:i386-mpx-linux.xml
 expedite:ebp,esp,eip
+osabi:GNU/Linux
+xmlarch:i386
 32:eax
 32:ecx
 32:edx
diff --git a/gdb/regformats/i386/i386.dat b/gdb/regformats/i386/i386.dat
index 13abb485e4913a471b2992fc12e49eded688fbe3..bb258b266b91c1a8bb32bc1614dda77c4ff820d8 100644
--- a/gdb/regformats/i386/i386.dat
+++ b/gdb/regformats/i386/i386.dat
@@ -3,6 +3,7 @@
 name:i386
 xmltarget:i386.xml
 expedite:ebp,esp,eip
+xmlarch:i386
 32:eax
 32:ecx
 32:edx
diff --git a/gdb/regformats/i386/x32-avx-avx512-linux.dat b/gdb/regformats/i386/x32-avx-avx512-linux.dat
index 00786172fb9809b4eb5f0cc4fc4408b31dc0f677..f5a79f453d3d1d71e7820685d4ef80bc191e1bf4 100644
--- a/gdb/regformats/i386/x32-avx-avx512-linux.dat
+++ b/gdb/regformats/i386/x32-avx-avx512-linux.dat
@@ -3,6 +3,8 @@
 name:x32_avx_avx512_linux
 xmltarget:x32-avx-avx512-linux.xml
 expedite:rbp,rsp,rip
+osabi:GNU/Linux
+xmlarch:i386:x64-32
 64:rax
 64:rbx
 64:rcx
diff --git a/gdb/regformats/i386/x32-avx-linux.dat b/gdb/regformats/i386/x32-avx-linux.dat
index eb0e395366e68d692e38158302908bfed4269720..7bfc7a86269d7f037877f04301651f4e078ad9be 100644
--- a/gdb/regformats/i386/x32-avx-linux.dat
+++ b/gdb/regformats/i386/x32-avx-linux.dat
@@ -3,6 +3,8 @@
 name:x32_avx_linux
 xmltarget:x32-avx-linux.xml
 expedite:rbp,rsp,rip
+osabi:GNU/Linux
+xmlarch:i386:x64-32
 64:rax
 64:rbx
 64:rcx
diff --git a/gdb/regformats/i386/x32-linux.dat b/gdb/regformats/i386/x32-linux.dat
index eee378fd846a8ac5ee5ba503190bc25245eddef3..b669f325ec689f75b46396d85ff7965f3f9b3355 100644
--- a/gdb/regformats/i386/x32-linux.dat
+++ b/gdb/regformats/i386/x32-linux.dat
@@ -3,6 +3,8 @@
 name:x32_linux
 xmltarget:x32-linux.xml
 expedite:rbp,rsp,rip
+osabi:GNU/Linux
+xmlarch:i386:x64-32
 64:rax
 64:rbx
 64:rcx
diff --git a/gdb/regformats/mips-dsp-linux.dat b/gdb/regformats/mips-dsp-linux.dat
index ce37bf38bdb9322acd0ee5cebbecf7eb62183a9f..0994fbfe4f3b8068215ca3d8baa9bee5c137dbd0 100644
--- a/gdb/regformats/mips-dsp-linux.dat
+++ b/gdb/regformats/mips-dsp-linux.dat
@@ -3,6 +3,8 @@
 name:mips_dsp_linux
 xmltarget:mips-dsp-linux.xml
 expedite:r29,pc
+osabi:GNU/Linux
+xmlarch:mips
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/mips-linux.dat b/gdb/regformats/mips-linux.dat
index d95e2c9ed455d536eb046d1e56a11b8fd51ea3ea..e181c7a10879ea259e110c77082f77f651879315 100644
--- a/gdb/regformats/mips-linux.dat
+++ b/gdb/regformats/mips-linux.dat
@@ -3,6 +3,8 @@
 name:mips_linux
 xmltarget:mips-linux.xml
 expedite:r29,pc
+osabi:GNU/Linux
+xmlarch:mips
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/mips64-dsp-linux.dat b/gdb/regformats/mips64-dsp-linux.dat
index e73df93d69b8a2e9064e167e071eb2bf9e99e876..3c8179de2dca87e0b9ac99a135596176639f2a59 100644
--- a/gdb/regformats/mips64-dsp-linux.dat
+++ b/gdb/regformats/mips64-dsp-linux.dat
@@ -3,6 +3,7 @@
 name:mips64_dsp_linux
 xmltarget:mips64-dsp-linux.xml
 expedite:r29,pc
+xmlarch:mips
 64:r0
 64:r1
 64:r2
diff --git a/gdb/regformats/mips64-linux.dat b/gdb/regformats/mips64-linux.dat
index 6770c8f65455d6b5329e6eb430c7da1a6b269958..5e503ce59d5f348a1360147a7001996571234a4d 100644
--- a/gdb/regformats/mips64-linux.dat
+++ b/gdb/regformats/mips64-linux.dat
@@ -3,6 +3,7 @@
 name:mips64_linux
 xmltarget:mips64-linux.xml
 expedite:r29,pc
+xmlarch:mips
 64:r0
 64:r1
 64:r2
diff --git a/gdb/regformats/nios2-linux.dat b/gdb/regformats/nios2-linux.dat
index fe4af2f4f361d693ea64f59ae5ecdbe488f9945b..6036dc8439e1fe54e359ff46a9cb6c8aee535a95 100644
--- a/gdb/regformats/nios2-linux.dat
+++ b/gdb/regformats/nios2-linux.dat
@@ -3,6 +3,8 @@
 name:nios2_linux
 xmltarget:nios2-linux.xml
 expedite:sp,pc
+osabi:GNU/Linux
+xmlarch:nios2
 32:zero
 32:at
 32:r2
diff --git a/gdb/regformats/regdat.sh b/gdb/regformats/regdat.sh
index 8c6e191596350fb4e983f8736985d9832f41e2d3..8341e11ba76031cc260d60fdc2071bc8a2188f8e 100755
--- a/gdb/regformats/regdat.sh
+++ b/gdb/regformats/regdat.sh
@@ -177,8 +177,17 @@ else
 fi
 echo

+echo "#ifndef IN_PROCESS_AGENT"
+
+if test "${xmlarch}" != x; then
+  echo "set_tdesc_architecture (result, \"${xmlarch}\");"
+fi
+
+if test "${xmlosabi}" != x; then
+  echo "set_tdesc_osabi (result, \"${xmlosabi}\");"
+fi
+
 cat <<EOF
-#ifndef IN_PROCESS_AGENT
   result->expedite_regs = expedite_regs_${name};
   result->xmltarget = xmltarget_${name};
 #endif
diff --git a/gdb/regformats/rs6000/powerpc-32.dat b/gdb/regformats/rs6000/powerpc-32.dat
index 266636b11f95d68a8842c86eff140582c1b3bb0a..fe648439bd14da8171ee5f9612bddfab0c812ea6 100644
--- a/gdb/regformats/rs6000/powerpc-32.dat
+++ b/gdb/regformats/rs6000/powerpc-32.dat
@@ -3,6 +3,7 @@
 name:powerpc_32
 xmltarget:powerpc-32.xml
 expedite:r1,pc
+xmlarch:powerpc:common
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/rs6000/powerpc-32l.dat b/gdb/regformats/rs6000/powerpc-32l.dat
index 2c8ccbe49b9827c54d7d6a3ec498a1e8d289bf29..626984f4892663d994788763ce79ba92c098a8b3 100644
--- a/gdb/regformats/rs6000/powerpc-32l.dat
+++ b/gdb/regformats/rs6000/powerpc-32l.dat
@@ -3,6 +3,7 @@
 name:powerpc_32l
 xmltarget:powerpc-32l.xml
 expedite:r1,pc
+xmlarch:powerpc:common
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/rs6000/powerpc-64l.dat b/gdb/regformats/rs6000/powerpc-64l.dat
index 10f43b16241a2cf94e2e9b21d9140e0a34d42f4f..20cfae1fc42a0c5ee5de1df3b221d0007c533fbc 100644
--- a/gdb/regformats/rs6000/powerpc-64l.dat
+++ b/gdb/regformats/rs6000/powerpc-64l.dat
@@ -3,6 +3,7 @@
 name:powerpc_64l
 xmltarget:powerpc-64l.xml
 expedite:r1,pc
+xmlarch:powerpc:common64
 64:r0
 64:r1
 64:r2
diff --git a/gdb/regformats/rs6000/powerpc-altivec32l.dat b/gdb/regformats/rs6000/powerpc-altivec32l.dat
index c792a2f96161ce55c63f9e17b14a35df7b71705d..4475dccbea85cbc5dd7115049e0502a4fc463618 100644
--- a/gdb/regformats/rs6000/powerpc-altivec32l.dat
+++ b/gdb/regformats/rs6000/powerpc-altivec32l.dat
@@ -3,6 +3,7 @@
 name:powerpc_altivec32l
 xmltarget:powerpc-altivec32l.xml
 expedite:r1,pc
+xmlarch:powerpc:common
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/rs6000/powerpc-altivec64l.dat b/gdb/regformats/rs6000/powerpc-altivec64l.dat
index a806141b6eee6a9015a06bddb5efb0b1eeafc002..73ff175c348738dee5e5ead296487fbd793ae3f4 100644
--- a/gdb/regformats/rs6000/powerpc-altivec64l.dat
+++ b/gdb/regformats/rs6000/powerpc-altivec64l.dat
@@ -3,6 +3,7 @@
 name:powerpc_altivec64l
 xmltarget:powerpc-altivec64l.xml
 expedite:r1,pc
+xmlarch:powerpc:common64
 64:r0
 64:r1
 64:r2
diff --git a/gdb/regformats/rs6000/powerpc-cell32l.dat b/gdb/regformats/rs6000/powerpc-cell32l.dat
index bd285054958360a13dfe3cc0424b2b70132f8be7..31975be687bc41159d1b6e3853ee4b5f3d5ec2b3 100644
--- a/gdb/regformats/rs6000/powerpc-cell32l.dat
+++ b/gdb/regformats/rs6000/powerpc-cell32l.dat
@@ -3,6 +3,7 @@
 name:powerpc_cell32l
 xmltarget:powerpc-cell32l.xml
 expedite:r1,pc,r0,orig_r3,r4
+xmlarch:powerpc:common
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/rs6000/powerpc-cell64l.dat b/gdb/regformats/rs6000/powerpc-cell64l.dat
index b5b162eced28b8b369765d72cde58828bfc7209b..ce940d9c410d0148567aa50a99c4226e86a393ca 100644
--- a/gdb/regformats/rs6000/powerpc-cell64l.dat
+++ b/gdb/regformats/rs6000/powerpc-cell64l.dat
@@ -3,6 +3,7 @@
 name:powerpc_cell64l
 xmltarget:powerpc-cell64l.xml
 expedite:r1,pc,r0,orig_r3,r4
+xmlarch:powerpc:common64
 64:r0
 64:r1
 64:r2
diff --git a/gdb/regformats/rs6000/powerpc-e500l.dat b/gdb/regformats/rs6000/powerpc-e500l.dat
index 750eafed7ca2fd872e0c30097fc305cb509b5c86..a13e29470e5dbd7c1d61fecc7b444f84447023f8 100644
--- a/gdb/regformats/rs6000/powerpc-e500l.dat
+++ b/gdb/regformats/rs6000/powerpc-e500l.dat
@@ -3,6 +3,7 @@
 name:powerpc_e500l
 xmltarget:powerpc-e500l.xml
 expedite:r1,pc
+xmlarch:powerpc:e500
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/rs6000/powerpc-isa205-32l.dat b/gdb/regformats/rs6000/powerpc-isa205-32l.dat
index 7227d06c977350c460d8bec46331e2ff470cdadd..3e011aa71321fcee9118433e2d2c8fe505433c95 100644
--- a/gdb/regformats/rs6000/powerpc-isa205-32l.dat
+++ b/gdb/regformats/rs6000/powerpc-isa205-32l.dat
@@ -3,6 +3,7 @@
 name:powerpc_isa205_32l
 xmltarget:powerpc-isa205-32l.xml
 expedite:r1,pc
+xmlarch:powerpc:common
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/rs6000/powerpc-isa205-64l.dat b/gdb/regformats/rs6000/powerpc-isa205-64l.dat
index 13a72c7eb8f14871252fe028b5ef67b9af170256..12a5e265e2eb9cc3d99ccfe1f78486d927b44bb5 100644
--- a/gdb/regformats/rs6000/powerpc-isa205-64l.dat
+++ b/gdb/regformats/rs6000/powerpc-isa205-64l.dat
@@ -3,6 +3,7 @@
 name:powerpc_isa205_64l
 xmltarget:powerpc-isa205-64l.xml
 expedite:r1,pc
+xmlarch:powerpc:common64
 64:r0
 64:r1
 64:r2
diff --git a/gdb/regformats/rs6000/powerpc-isa205-altivec32l.dat b/gdb/regformats/rs6000/powerpc-isa205-altivec32l.dat
index 051724c6132d2c23783b5cb2767e799ae89b48dc..539670e0b568937ebf85e13a24faaf810f296197 100644
--- a/gdb/regformats/rs6000/powerpc-isa205-altivec32l.dat
+++ b/gdb/regformats/rs6000/powerpc-isa205-altivec32l.dat
@@ -3,6 +3,7 @@
 name:powerpc_isa205_altivec32l
 xmltarget:powerpc-isa205-altivec32l.xml
 expedite:r1,pc
+xmlarch:powerpc:common
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/rs6000/powerpc-isa205-altivec64l.dat b/gdb/regformats/rs6000/powerpc-isa205-altivec64l.dat
index 867e82135167776d2f9febf2cfd001657ca1b827..929084354fbea7eef0f37cc47ecb6168f4def7a1 100644
--- a/gdb/regformats/rs6000/powerpc-isa205-altivec64l.dat
+++ b/gdb/regformats/rs6000/powerpc-isa205-altivec64l.dat
@@ -3,6 +3,7 @@
 name:powerpc_isa205_altivec64l
 xmltarget:powerpc-isa205-altivec64l.xml
 expedite:r1,pc
+xmlarch:powerpc:common64
 64:r0
 64:r1
 64:r2
diff --git a/gdb/regformats/rs6000/powerpc-isa205-vsx32l.dat b/gdb/regformats/rs6000/powerpc-isa205-vsx32l.dat
index fa05cae859452ed4d7587d09af21cf13dd1d1df0..82e9dd7a26a4084166607873fc379baf3bd04148 100644
--- a/gdb/regformats/rs6000/powerpc-isa205-vsx32l.dat
+++ b/gdb/regformats/rs6000/powerpc-isa205-vsx32l.dat
@@ -3,6 +3,7 @@
 name:powerpc_isa205_vsx32l
 xmltarget:powerpc-isa205-vsx32l.xml
 expedite:r1,pc
+xmlarch:powerpc:common
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/rs6000/powerpc-isa205-vsx64l.dat b/gdb/regformats/rs6000/powerpc-isa205-vsx64l.dat
index 75bd4539ad06964ed6937339f40ea1bb4f69a233..5f91fed8e6492c58eddef1dc800096921031d9d4 100644
--- a/gdb/regformats/rs6000/powerpc-isa205-vsx64l.dat
+++ b/gdb/regformats/rs6000/powerpc-isa205-vsx64l.dat
@@ -3,6 +3,7 @@
 name:powerpc_isa205_vsx64l
 xmltarget:powerpc-isa205-vsx64l.xml
 expedite:r1,pc
+xmlarch:powerpc:common64
 64:r0
 64:r1
 64:r2
diff --git a/gdb/regformats/rs6000/powerpc-vsx32l.dat b/gdb/regformats/rs6000/powerpc-vsx32l.dat
index 6db3e38d5f235b05f6fe736f3717023d6b516c13..3471d10d7a210b7d4ca008fca4ea25b7071631c8 100644
--- a/gdb/regformats/rs6000/powerpc-vsx32l.dat
+++ b/gdb/regformats/rs6000/powerpc-vsx32l.dat
@@ -3,6 +3,7 @@
 name:powerpc_vsx32l
 xmltarget:powerpc-vsx32l.xml
 expedite:r1,pc
+xmlarch:powerpc:common
 32:r0
 32:r1
 32:r2
diff --git a/gdb/regformats/rs6000/powerpc-vsx64l.dat b/gdb/regformats/rs6000/powerpc-vsx64l.dat
index bc0a45512c81c15b13c60d4478cd85b545a2e44c..a87b1f00a9777f29059c34b96721576861cd8078 100644
--- a/gdb/regformats/rs6000/powerpc-vsx64l.dat
+++ b/gdb/regformats/rs6000/powerpc-vsx64l.dat
@@ -3,6 +3,7 @@
 name:powerpc_vsx64l
 xmltarget:powerpc-vsx64l.xml
 expedite:r1,pc
+xmlarch:powerpc:common64
 64:r0
 64:r1
 64:r2
diff --git a/gdb/regformats/s390-gs-linux64.dat b/gdb/regformats/s390-gs-linux64.dat
index 130c8ecc026dc5fca6e6ee87ccdd39302d3fff5a..8f1dbb10c8eb46546b2c9cbb1f4fa09e31997e54 100644
--- a/gdb/regformats/s390-gs-linux64.dat
+++ b/gdb/regformats/s390-gs-linux64.dat
@@ -3,6 +3,7 @@
 name:s390_gs_linux64
 xmltarget:s390-gs-linux64.xml
 expedite:r14,r15,pswa
+xmlarch:s390:31-bit
 32:pswm
 32:pswa
 32:r0h
diff --git a/gdb/regformats/s390-linux32.dat b/gdb/regformats/s390-linux32.dat
index 545dd0fb91535288f01837f2d587c27de75fbb76..7445e64764050c0ff968b12206391d7ea99c1d80 100644
--- a/gdb/regformats/s390-linux32.dat
+++ b/gdb/regformats/s390-linux32.dat
@@ -3,6 +3,7 @@
 name:s390_linux32
 xmltarget:s390-linux32.xml
 expedite:r14,r15,pswa
+xmlarch:s390:31-bit
 32:pswm
 32:pswa
 32:r0
diff --git a/gdb/regformats/s390-linux32v1.dat b/gdb/regformats/s390-linux32v1.dat
index b9e7fc89730733db082dd2636bdab846b6004eee..98ffed8dd64acdede8d565b20ca6184a055a218e 100644
--- a/gdb/regformats/s390-linux32v1.dat
+++ b/gdb/regformats/s390-linux32v1.dat
@@ -3,6 +3,7 @@
 name:s390_linux32v1
 xmltarget:s390-linux32v1.xml
 expedite:r14,r15,pswa
+xmlarch:s390:31-bit
 32:pswm
 32:pswa
 32:r0
diff --git a/gdb/regformats/s390-linux32v2.dat b/gdb/regformats/s390-linux32v2.dat
index 220af5e3dfb2ef742550c31ef225d155cac14189..ff43ece3e754ce8a0512a94b9eaa202b70731f26 100644
--- a/gdb/regformats/s390-linux32v2.dat
+++ b/gdb/regformats/s390-linux32v2.dat
@@ -3,6 +3,7 @@
 name:s390_linux32v2
 xmltarget:s390-linux32v2.xml
 expedite:r14,r15,pswa
+xmlarch:s390:31-bit
 32:pswm
 32:pswa
 32:r0
diff --git a/gdb/regformats/s390-linux64.dat b/gdb/regformats/s390-linux64.dat
index b347b6bf33a789558f332cdc1d81089e7652caf5..ae61eb82c624d2b7d631e499dd3ffbc0e609baa2 100644
--- a/gdb/regformats/s390-linux64.dat
+++ b/gdb/regformats/s390-linux64.dat
@@ -3,6 +3,7 @@
 name:s390_linux64
 xmltarget:s390-linux64.xml
 expedite:r14l,r15l,pswa
+xmlarch:s390:31-bit
 32:pswm
 32:pswa
 32:r0h
diff --git a/gdb/regformats/s390-linux64v1.dat b/gdb/regformats/s390-linux64v1.dat
index 8abd92d3a2e4d1361f9617f51d78fb9f7741b475..8f50d028d04b44b25bbaec141525ae3433af4b78 100644
--- a/gdb/regformats/s390-linux64v1.dat
+++ b/gdb/regformats/s390-linux64v1.dat
@@ -3,6 +3,7 @@
 name:s390_linux64v1
 xmltarget:s390-linux64v1.xml
 expedite:r14l,r15l,pswa
+xmlarch:s390:31-bit
 32:pswm
 32:pswa
 32:r0h
diff --git a/gdb/regformats/s390-linux64v2.dat b/gdb/regformats/s390-linux64v2.dat
index b282025e2386aad11d446e33bb7d228220e58bbd..265bdf271c93f29520dfbc9d086b5e67d68267dd 100644
--- a/gdb/regformats/s390-linux64v2.dat
+++ b/gdb/regformats/s390-linux64v2.dat
@@ -3,6 +3,7 @@
 name:s390_linux64v2
 xmltarget:s390-linux64v2.xml
 expedite:r14l,r15l,pswa
+xmlarch:s390:31-bit
 32:pswm
 32:pswa
 32:r0h
diff --git a/gdb/regformats/s390-te-linux64.dat b/gdb/regformats/s390-te-linux64.dat
index 28e1b8733ebedf40c5238c754cfe95aad65ea0dd..a784a11553132d7079950f9c5578bc836fbceb68 100644
--- a/gdb/regformats/s390-te-linux64.dat
+++ b/gdb/regformats/s390-te-linux64.dat
@@ -3,6 +3,7 @@
 name:s390_te_linux64
 xmltarget:s390-te-linux64.xml
 expedite:r14l,r15l,pswa
+xmlarch:s390:31-bit
 32:pswm
 32:pswa
 32:r0h
diff --git a/gdb/regformats/s390-tevx-linux64.dat b/gdb/regformats/s390-tevx-linux64.dat
index 3db7a91546bb0172138413ffc76a54da0efa29df..020960e948e06e55ab9309d481d9e3d029809975 100644
--- a/gdb/regformats/s390-tevx-linux64.dat
+++ b/gdb/regformats/s390-tevx-linux64.dat
@@ -3,6 +3,7 @@
 name:s390_tevx_linux64
 xmltarget:s390-tevx-linux64.xml
 expedite:r14l,r15l,pswa
+xmlarch:s390:31-bit
 32:pswm
 32:pswa
 32:r0h
diff --git a/gdb/regformats/s390-vx-linux64.dat b/gdb/regformats/s390-vx-linux64.dat
index 6a821fd5ac47447d55a9a7fbf9120a2e02381968..f06ac589ce21cb27451c9b05875e54e4ddffaeda 100644
--- a/gdb/regformats/s390-vx-linux64.dat
+++ b/gdb/regformats/s390-vx-linux64.dat
@@ -3,6 +3,7 @@
 name:s390_vx_linux64
 xmltarget:s390-vx-linux64.xml
 expedite:r14l,r15l,pswa
+xmlarch:s390:31-bit
 32:pswm
 32:pswa
 32:r0h
diff --git a/gdb/regformats/s390x-gs-linux64.dat b/gdb/regformats/s390x-gs-linux64.dat
index 8cd57515e5163ee3221b635b1e3ea2a6714d8bf0..72e3e7089ba15668439904b62cb2fa33a96dd216 100644
--- a/gdb/regformats/s390x-gs-linux64.dat
+++ b/gdb/regformats/s390x-gs-linux64.dat
@@ -3,6 +3,7 @@
 name:s390x_gs_linux64
 xmltarget:s390x-gs-linux64.xml
 expedite:r14,r15,pswa
+xmlarch:s390:64-bit
 64:pswm
 64:pswa
 64:r0
diff --git a/gdb/regformats/s390x-linux64.dat b/gdb/regformats/s390x-linux64.dat
index 5832c438f59778d86cea30ad5faa06607b1f803e..802a6036577390695f8594ba7ef361c55f89f3bf 100644
--- a/gdb/regformats/s390x-linux64.dat
+++ b/gdb/regformats/s390x-linux64.dat
@@ -3,6 +3,7 @@
 name:s390x_linux64
 xmltarget:s390x-linux64.xml
 expedite:r14,r15,pswa
+xmlarch:s390:64-bit
 64:pswm
 64:pswa
 64:r0
diff --git a/gdb/regformats/s390x-linux64v1.dat b/gdb/regformats/s390x-linux64v1.dat
index 4d4de0a14cf60a694d418786fc1070998fe0f846..d499eafb7e4a6b24f7502942d4ebfb6d9780a8e3 100644
--- a/gdb/regformats/s390x-linux64v1.dat
+++ b/gdb/regformats/s390x-linux64v1.dat
@@ -3,6 +3,7 @@
 name:s390x_linux64v1
 xmltarget:s390x-linux64v1.xml
 expedite:r14,r15,pswa
+xmlarch:s390:64-bit
 64:pswm
 64:pswa
 64:r0
diff --git a/gdb/regformats/s390x-linux64v2.dat b/gdb/regformats/s390x-linux64v2.dat
index b1c5f830231a7ddfbf91fb2776928fa47ba6ef90..45a770541c4b0a4775a7dda35ebacc77caefc7b2 100644
--- a/gdb/regformats/s390x-linux64v2.dat
+++ b/gdb/regformats/s390x-linux64v2.dat
@@ -3,6 +3,7 @@
 name:s390x_linux64v2
 xmltarget:s390x-linux64v2.xml
 expedite:r14,r15,pswa
+xmlarch:s390:64-bit
 64:pswm
 64:pswa
 64:r0
diff --git a/gdb/regformats/s390x-te-linux64.dat b/gdb/regformats/s390x-te-linux64.dat
index 80f5ab127ee0d5a3f163641c791d328c564b5232..682d47e586304d74d08b2b0f0b4c902aaeb14b49 100644
--- a/gdb/regformats/s390x-te-linux64.dat
+++ b/gdb/regformats/s390x-te-linux64.dat
@@ -3,6 +3,7 @@
 name:s390x_te_linux64
 xmltarget:s390x-te-linux64.xml
 expedite:r14,r15,pswa
+xmlarch:s390:64-bit
 64:pswm
 64:pswa
 64:r0
diff --git a/gdb/regformats/s390x-tevx-linux64.dat b/gdb/regformats/s390x-tevx-linux64.dat
index 2df31e6863249e3ebf31dfead3a47621126f5a08..f3190cfd07c09dd129d3a7eb63771910086cd239 100644
--- a/gdb/regformats/s390x-tevx-linux64.dat
+++ b/gdb/regformats/s390x-tevx-linux64.dat
@@ -3,6 +3,7 @@
 name:s390x_tevx_linux64
 xmltarget:s390x-tevx-linux64.xml
 expedite:r14,r15,pswa
+xmlarch:s390:64-bit
 64:pswm
 64:pswa
 64:r0
diff --git a/gdb/regformats/s390x-vx-linux64.dat b/gdb/regformats/s390x-vx-linux64.dat
index 1d8f2b6f04370adca545f0b2caa17bc7423f45a0..fe21013119ba16fe3a1414a39311f9dcb77b21a2 100644
--- a/gdb/regformats/s390x-vx-linux64.dat
+++ b/gdb/regformats/s390x-vx-linux64.dat
@@ -3,6 +3,7 @@
 name:s390x_vx_linux64
 xmltarget:s390x-vx-linux64.xml
 expedite:r14,r15,pswa
+xmlarch:s390:64-bit
 64:pswm
 64:pswa
 64:r0
diff --git a/gdb/regformats/tic6x-c62x-linux.dat b/gdb/regformats/tic6x-c62x-linux.dat
index 82f2a0a0bf03d8bdfbbfc1917169e6ecd1497d4f..efcdee1342e88dae6680a9de182138d362ff0b10 100644
--- a/gdb/regformats/tic6x-c62x-linux.dat
+++ b/gdb/regformats/tic6x-c62x-linux.dat
@@ -3,6 +3,8 @@
 name:tic6x_c62x_linux
 xmltarget:tic6x-c62x-linux.xml
 expedite:A15,PC
+osabi:GNU/Linux
+xmlarch:tic6x
 32:A0
 32:A1
 32:A2
diff --git a/gdb/regformats/tic6x-c64x-linux.dat b/gdb/regformats/tic6x-c64x-linux.dat
index 542826ad1d34db5a291359ded18aaf52ba50c88c..8e70cf9cf913b807ea55a4f26921e1e4e79d7b8e 100644
--- a/gdb/regformats/tic6x-c64x-linux.dat
+++ b/gdb/regformats/tic6x-c64x-linux.dat
@@ -3,6 +3,8 @@
 name:tic6x_c64x_linux
 xmltarget:tic6x-c64x-linux.xml
 expedite:A15,PC
+osabi:GNU/Linux
+xmlarch:tic6x
 32:A0
 32:A1
 32:A2
diff --git a/gdb/regformats/tic6x-c64xp-linux.dat b/gdb/regformats/tic6x-c64xp-linux.dat
index 229b3c26c25f0361994789bf3d6e1b5e48a9d488..b6b0e8bc333123e6c1addc95842b84df8ab91b6c 100644
--- a/gdb/regformats/tic6x-c64xp-linux.dat
+++ b/gdb/regformats/tic6x-c64xp-linux.dat
@@ -3,6 +3,8 @@
 name:tic6x_c64xp_linux
 xmltarget:tic6x-c64xp-linux.xml
 expedite:A15,PC
+osabi:GNU/Linux
+xmlarch:tic6x
 32:A0
 32:A1
 32:A2
