From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50631) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bRinG-0007Hk-03 for qemu-devel@nongnu.org; Mon, 25 Jul 2016 12:31:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bRinC-0005Ek-PZ for qemu-devel@nongnu.org; Mon, 25 Jul 2016 12:31:49 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:16859) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bRinC-0005EE-Ht for qemu-devel@nongnu.org; Mon, 25 Jul 2016 12:31:46 -0400 Received: from pps.filterd (m0098409.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.11/8.16.0.11) with SMTP id u6PGT0kl018937 for ; Mon, 25 Jul 2016 12:31:44 -0400 Received: from e23smtp06.au.ibm.com (e23smtp06.au.ibm.com [202.81.31.148]) by mx0a-001b2d01.pphosted.com with ESMTP id 24c3vkbx6t-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Mon, 25 Jul 2016 12:31:43 -0400 Received: from localhost by e23smtp06.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 26 Jul 2016 02:31:40 +1000 From: Nikunj A Dadhania In-Reply-To: References: <1469263490-19130-1-git-send-email-nikunj@linux.vnet.ibm.com> <1469263490-19130-6-git-send-email-nikunj@linux.vnet.ibm.com> Date: Mon, 25 Jul 2016 22:01:26 +0530 MIME-Version: 1.0 Content-Type: text/plain Message-Id: <8760rt7k81.fsf@abhimanyu.i-did-not-set--mail-host-address--so-tickle-me> Subject: Re: [Qemu-devel] [RFC v2 05/13] target-ppc: add modulo word operations List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Richard Henderson , qemu-ppc@nongnu.org, david@gibson.dropbear.id.au Cc: qemu-devel@nongnu.org, bharata@linux.vnet.ibm.com, aneesh.kumar@linux.vnet.ibm.com Richard Henderson writes: > On 07/23/2016 02:14 PM, Nikunj A Dadhania wrote: [...] > Basically, we check for the offending cases and modify the divisor prior to the > division. For unsigned: > > a / (b == 0 ? 1 : b) > > For signed: > > a / ((a == INT_MAX & b == -1) | (b == 0) ? : b) So when we change the divisor to 1, undefined result is set as "a". Hope that should be fine and doesnt break anything :-) Regards, Nikunj