|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 05/10] x86: Add functions for 64-bit integer arithmetic
>>> On 16.02.16 at 10:02, <haozhong.zhang@xxxxxxxxx> wrote:
> On 02/05/16 21:36, Jan Beulich wrote:
>> >>> On 17.01.16 at 22:58, <haozhong.zhang@xxxxxxxxx> wrote:
>> > This patch adds several functions to take multiplication, division and
>> > shifting involving 64-bit integers.
>> >
>> > Signed-off-by: Haozhong Zhang <haozhong.zhang@xxxxxxxxx>
>> > Reviewed-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
>> > ---
>> > Changes in v4:
>> > (addressing Jan Beulich's comments)
>> > * Rewrite mul_u64_u64_shr() in assembly.
>>
>> Thanks, but it puzzles me that the other one didn't get converted
>> as well. Anyway, I'm not going to make this a requirement, since
>> at least it appears to match Linux'es variant.
>>
>
> I can't remember why I didn't rewrite mul_u64_u32_div(), especially when
> it can be easily implemented as
>
> static inline u64 mul_u64_u32_div(u64 a, u32 mul, u32 divisor)
> {
> u64 quotient, remainder;
>
> asm volatile ( "mulq %3; divq %4"
> : "=a" (quotient), "=d" (remainder)
> : "0" (a), "rm" ((u64) mul), "c" ((u64) divisor) );
>
> return quotient;
> }
>
> I'll modify it in the next version.
Looks better, but the constraints aren't right (needing =& for
both outputs, and "c" being too narrow). But iirc the question
was anyway whether to better have even lower overhead inline
assembly and single point of use.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |