[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Lightning] Re: Still problems.

From: Paolo Bonzini
Subject: [Lightning] Re: Still problems.
Date: Tue, 17 Jun 2008 15:25:31 +0200
User-agent: Thunderbird (Macintosh/20080421)

Here is the relevant macro.  Both references to RD use the same masking

#define IMULQir(IM, RD) (_REXQrr(0, RD), _Os_Mrm_sL (0x69 ,_b11,_r8(RD),_r8(RD) ,IM ))

As Murphy's law goes, the only wrong ones were IMULQir and IMULQirr--checked against as+objdump with the following assembly source code (stuff after # is a comment):

movq %r10, %rdx #define MOVQrr(RS, RD) (_REXQrr(RS, RD) testq %r10, %rdx #define TESTQrr(RS, RD) (_REXQrr(RS, RD) cmpxchgq %r10, %rdx #define CMPXCHGQrr(RS, RD) (_REXQrr(RS, RD) xaddq %r10, %rdx #define XADDQrr(RS, RD) (_REXQrr(RS, RD) xchgq %r10, %rdx #define XCHGQrr(RS, RD) (_REXQrr(RS, RD)

imulq %r10, %rdx #define IMULQrr(RS, RD) (_REXQrr(RD, RS) imulq $10, %r10, %rdx #define IMULQirr(IM,RS,RD) (_REXQrr(RS, RD) <<< WRONG! cmovbq %r10, %rdx #define CMOVQrr(CC,RS,RD) (_REXQrr(RD, RS) bsfq %r10, %rdx #define BSFQrr(RS, RD) (_REXQrr(RD, RS) bsrq %r10, %rdx #define BSRQrr(RS, RD) (_REXQrr(RD, RS) movsbq %r10b, %rdx #define MOVSBQrr(RS, RD) (_REXQrr(RD, RS) movzbq %r10b, %rdx #define MOVZBQrr(RS, RD) (_REXQrr(RD, RS) movswq %r10w, %rdx #define MOVSWQrr(RS, RD) (_REXQrr(RD, RS) movzwq %r10w, %rdx #define MOVZWQrr(RS, RD) (_REXQrr(RD, RS) movslq %r10d, %rdx #define MOVSLQrr(RS, RD) _m64only((_REXQrr(RD, RS)

Fix committed & pushed.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]