This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
RE: PATCH: Support i386 without SSE
> -----Message d'origine-----
> De?: gdb-patches-owner@sourceware.org [mailto:gdb-patches-
> owner@sourceware.org] De la part de Mark Kettenis
> Envoyé?: Thursday, April 08, 2010 9:08 PM
> À?: hjl.tools@gmail.com
> Cc?: gdb-patches@sourceware.org
> Objet?: Re: PATCH: Support i386 without SSE
>
> > Date: Wed, 7 Apr 2010 13:05:47 -0700
> > From: "H.J. Lu" <hongjiu.lu@intel.com>
> >
> > Hi,
> >
> > This patch supports i386 without SSE. Any comments/suggestions?
>
> Eli, Pierre, can you test wether this fixes the issues on Go32?
I tested the patch and it does
indeed fix the two problems that I
reported.
Nevertheless, there are still strange things:
if you use 'maint print register-groups'
you will find out that
the SSE xmmX registers are still present as registers 32 to 40
and the ymmX as 41 to 48, but with empty names and a strange int0_t type.
(see below).
As this is not user visible,
I think that the patch is OK for me...
Pierre
(top-gdb) maint print register-groups
Name Nr Rel Offset Size Type Groups
eax 0 0 0 4 int32_t
general,all,save,restore
ecx 1 1 4 4 int32_t
general,all,save,restore
edx 2 2 8 4 int32_t
general,all,save,restore
ebx 3 3 12 4 int32_t
general,all,save,restore
esp 4 4 16 4 *1
general,all,save,restore
ebp 5 5 20 4 *1
general,all,save,restore
esi 6 6 24 4 int32_t
general,all,save,restore
edi 7 7 28 4 int32_t
general,all,save,restore
eip 8 8 32 4 *1
general,all,save,restore
eflags 9 9 36 4 i386_eflags
general,all,save,restore
cs 10 10 40 4 int32_t
general,all,save,restore
ss 11 11 44 4 int32_t
general,all,save,restore
ds 12 12 48 4 int32_t
general,all,save,restore
es 13 13 52 4 int32_t
general,all,save,restore
fs 14 14 56 4 int32_t
general,all,save,restore
gs 15 15 60 4 int32_t
general,all,save,restore
st0 16 16 64 10 _i387_ext float,all,save,restore
st1 17 17 74 10 _i387_ext float,all,save,restore
st2 18 18 84 10 _i387_ext float,all,save,restore
st3 19 19 94 10 _i387_ext float,all,save,restore
st4 20 20 104 10 _i387_ext float,all,save,restore
st5 21 21 114 10 _i387_ext float,all,save,restore
st6 22 22 124 10 _i387_ext float,all,save,restore
st7 23 23 134 10 _i387_ext float,all,save,restore
fctrl 24 24 144 4 long float,all,save,restore
fstat 25 25 148 4 long float,all,save,restore
ftag 26 26 152 4 long float,all,save,restore
fiseg 27 27 156 4 long float,all,save,restore
fioff 28 28 160 4 long float,all,save,restore
foseg 29 29 164 4 long float,all,save,restore
fooff 30 30 168 4 long float,all,save,restore
fop 31 31 172 4 long float,all,save,restore
'' 32 32 176 0 int0_t general
'' 33 33 176 0 int0_t general
'' 34 34 176 0 int0_t general
'' 35 35 176 0 int0_t general
'' 36 36 176 0 int0_t general
'' 37 37 176 0 int0_t general
'' 38 38 176 0 int0_t general
'' 39 39 176 0 int0_t general
'' 40 40 176 0 int0_t general
'' 41 41 176 0 int0_t general
'' 42 42 176 0 int0_t general
'' 43 43 176 0 int0_t general
'' 44 44 176 0 int0_t general
'' 45 45 176 0 int0_t general
'' 46 46 176 0 int0_t general
'' 47 47 176 0 int0_t general
'' 48 48 176 0 int0_t general
al 49 0 176 1 int8_t
cl 50 1 177 1 int8_t
dl 51 2 178 1 int8_t
bl 52 3 179 1 int8_t
ah 53 4 180 1 int8_t
ch 54 5 181 1 int8_t
dh 55 6 182 1 int8_t
bh 56 7 183 1 int8_t
ax 57 8 184 2 int16_t
cx 58 9 186 2 int16_t
dx 59 10 188 2 int16_t
bx 60 11 190 2 int16_t
'' 61 12 192 2 int16_t
bp 62 13 194 2 int16_t
si 63 14 196 2 int16_t
di 64 15 198 2 int16_t
mm0 65 16 200 8 _vec64i mmx,all,vector
mm1 66 17 208 8 _vec64i mmx,all,vector
mm2 67 18 216 8 _vec64i mmx,all,vector
mm3 68 19 224 8 _vec64i mmx,all,vector
mm4 69 20 232 8 _vec64i mmx,all,vector
mm5 70 21 240 8 _vec64i mmx,all,vector
mm6 71 22 248 8 _vec64i mmx,all,vector
mm7 72 23 256 8 _vec64i mmx,all,vector
*1: Register type's name NULL.
There are two oddities here:
the void * type are not nicely reported,
and the missing registers are in the general group.