This is the mail archive of the gdb@sourceware.cygnus.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: MMX: Messy Multimedia eXtensions


>>>>> "Jim" == Jim Blandy <jimb@cygnus.com> writes:
Jim> If you want to print SSE registers, you can:

Jim>     (gdb) p $xmm3
Jim>     $14 = {f = {-2.5, -2.482337, -2.464674, -2.44701076}}

Jim> You can print MMX registers, too, but it's messier, since GDB doesn't
Jim> know whether it's eight 8-bit values, four 16-bit values, et cetera:

Jim>     (gdb) p $mm2
Jim>     $1 = {v8qi = {f = "\001\000\001\000\001\000\001"}, v4hi = {f = {1,
Jim>       1, 1, 1}}, v2si = {f = {65537, 65537}}, uint64 = 281479271743489}

Jim> (Please ignore the fact that the eight 8-bit integers are printed as
Jim> characters.  I'm going to fix that.)

It appears that the registers are represented by a union or struct.
Can individual elements be used in GDB expressions?  If so, can you
show how to represent the least significant byte in a mmx register?
If not, I think this is a very serious deficiency.

There doesn't appear to be an entry in the MMX union for the single
precision FP values in AMD's 3DNow extensions.  Wearing my GNU hat,
(rather than my Cygnus-shareholder hat), I'd be very disapointed if
this got integrated into GDB without AMD 3DNow support even if Intel
funded Cygnus to do MMX work.

        --jtc

-- 
J.T. Conklin
RedBack Networks

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]