FPU stack and XMM registers in ddbg

Jascha Wetzel "[firstname]" at mainia.de
Sat Apr 28 10:42:42 PDT 2007


that's right. Ddbg doesn't support debugging non-D code, though.
on the other hand SSE2 only means new registers on AMD cpus and 3dnow is
just a reinterpretation of the mmx registers.
i added all the interpretations of the XMM and MM registers but didn't
bother to get the AMD specific SSE2 extensions.

therefore it's going to be MMX, 3DNOW!, SSE and SSE2 intel.
the switches will be cpu, fpu, mmx, sse.
here is what the new full register dump looks like:

EAX = 00000002  EBX = 00000004  ECX = 00000004  EDX = 0012ff20
EDI = 00000001  ESI = 00000001  EBP = 0012ff30  ESP = 0012fedc
EIP = 004020ea  EFL = 00000302
 CS = 0000001b   DS = 00000023   ES = 00000023   FS = 0000003b
 GS = 00000000   SS = 00000023

FCW = 137f      FSW = 2100      FTW = 00ff      FOP = 0014
IP = 00000000   CS = 0000       DP = 00000000   DS = 0000
ST0 =  1.0300000000000000e+01
ST1 =  3.8000000000000000e+00
ST2 =  2.4000000000000000e+00
ST3 =  5.6000000000000000e+00
ST4 =  4.6891198690254339e-4932
ST5 =  3.6451995318824746e-4951
ST6 =  8.1918522314966046e+4456
ST7 =  0.0000000000000000e+00

MM0 = a4cccccccccccccd
    = [-1.07374e+08, -8.88178e-17]
MM1 = f333333333333333
    = [4.17233e-08, -1.41977e+31]
MM2 = 999999999999999a
    = [-1.58819e-23, -1.58819e-23]
MM3 = b333333333333333
    = [4.17233e-08, -4.17233e-08]
MM4 = b2857a24805b09dd
    = [-8.36057e-39, -1.55388e-08]
MM5 = 0000000000000001
    = [1.4013e-45, 0]
MM6 = badb0d00804fd645
    = [-7.33187e-39, -0.00167122]
MM7 = 00000017e62a9390
    = [-2.01381e+23, 3.22299e-44]

MXCSR = 00001f80
XMM0 = 406d5224dd2f1aa0405edd2f1a9fbe77
     = [6.60686e-23, 3.48225, -7.88598e+17, 3.70814]
     = [123.456, 234.567]
XMM1 = 406d5224dd2f1aa0405edd2f1a9fbe77
     = [6.60686e-23, 3.48225, -7.88598e+17, 3.70814]
     = [123.456, 234.567]
XMM2 = 43e464fe43acd6c9436a912742f6e979
     = [123.456, 234.567, 345.678, 456.789]
     = [5.98235776617e+16, 1.17566315604e+19]
XMM3 = 43e464fe43acd6c9436a912742f6e979
     = [123.456, 234.567, 345.678, 456.789]
     = [5.98235776617e+16, 1.17566315604e+19]
XMM4 = 43e464fe43acd6c9436a912742f6e979
     = [123.456, 234.567, 345.678, 456.789]
     = [5.98235776617e+16, 1.17566315604e+19]
XMM5 = 43e464fe43acd6c9436a912742f6e979
     = [123.456, 234.567, 345.678, 456.789]
     = [5.98235776617e+16, 1.17566315604e+19]
XMM6 = 43e464fe43acd6c9436a912742f6e979
     = [123.456, 234.567, 345.678, 456.789]
     = [5.98235776617e+16, 1.17566315604e+19]
XMM7 = 43e464fe43acd6c9436a912742f6e979
     = [123.456, 234.567, 345.678, 456.789]
     = [5.98235776617e+16, 1.17566315604e+19]

Frits van Bommel wrote:
> Jascha Wetzel wrote:
>> oh ok, forget SSE2 and 3DNOW! - makes little sense as long D inline asm
>> doesn't support them...
> 
> That doesn't mean they won't be used in (mostly-)D programs. You can
> still use a separate assembler and link the output in.
> 
> (And for the really perverse, db and friends can emit any code you like
> from within the inline assembler :P)


More information about the Digitalmars-d-debugger mailing list