Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 4 Oct 2022 21:46:33 +0200
From:      Hans Petter Selasky <hselasky@freebsd.org>
To:        Ravi Pokala <rpokala@freebsd.org>, src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   Re: 1024bb26337b - main - qdivrem: Predict division by zero as false.
Message-ID:  <3d8cc143-23ea-2ae9-8e08-dbc36b18369b@freebsd.org>
In-Reply-To: <3D44E023-8220-4B65-89A1-B5B8BB77EBD5@panasas.com>
References:  <202210041153.294Br2JP011500@gitrepo.freebsd.org> <3D44E023-8220-4B65-89A1-B5B8BB77EBD5@panasas.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 10/4/22 18:38, Ravi Pokala wrote:
> -----Original Message-----
> From: <owner-src-committers@freebsd.org> on behalf of Hans Petter Selasky <hselasky@FreeBSD.org>
> Date: 2022-10-04, Tuesday at 04:53
> To: <src-committers@FreeBSD.org>, <dev-commits-src-all@FreeBSD.org>, <dev-commits-src-main@FreeBSD.org>
> Subject: git: 1024bb26337b - main - qdivrem: Predict division by zero as false.
> 
>      The branch main has been updated by hselasky:
> 
>      URL: https://cgit.FreeBSD.org/src/commit/?id=1024bb26337bdc6679af477977247e9155d502bc
> 
>      commit 1024bb26337bdc6679af477977247e9155d502bc
>      Author:     Hans Petter Selasky <hselasky@FreeBSD.org>
>      AuthorDate: 2022-10-04 10:28:25 +0000
>      Commit:     Hans Petter Selasky <hselasky@FreeBSD.org>
>      CommitDate: 2022-10-04 11:51:06 +0000
> 
>          qdivrem: Predict division by zero as false.
> 
>          Division by zero triggers an arithmetic exception and should not be very
>          common. Predict this.
> 
> Looking at this change with a little more context, I see that (static volatile const unsigned int) 'zero' is set to 0... and then used as the denominator for division. Since these are all integers, I would expect that to cause a fatal divide-by-zero exception. And yet, there's more code after that divide-by-zero.
> 
> What am I missing?
> 

Hi,

I know some rare CPU's continue executing after division by zero, but 
the ones the FreeBSD support doesn't. Maybe it's something we've 
inherited. I have no good explanation for that extra code.

--HPS




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3d8cc143-23ea-2ae9-8e08-dbc36b18369b>