Skip to content
This repository has been archived by the owner on Feb 5, 2019. It is now read-only.

DAG: correctly legalize UMULO. #85

Merged
merged 1 commit into from
Jun 20, 2017

Conversation

parched
Copy link

@parched parched commented Jun 20, 2017

This fixes unsigned multiplication with overflow when one of the operands is greater than max signed for some targets, notably thumbv6m.

Should fix rust-lang/compiler-builtins#150


We were incorrectly sign extending into the high word (as you would for
SMULO) when legalizing UMULO in terms of a wider full multiplication.

Patch by James Duley.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305800 91177308-0d34-0410-b5e6-96231b3b80d8

We were incorrectly sign extending into the high word (as you would for
SMULO) when legalizing UMULO in terms of a wider full multiplication.

Patch by James Duley.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305800 91177308-0d34-0410-b5e6-96231b3b80d8
@alexcrichton alexcrichton merged commit d8c9dfc into rust-lang:rust-llvm-2017-04-13 Jun 20, 2017
@alexcrichton
Copy link
Member

Thanks!

@parched parched deleted the umlo branch June 20, 2017 20:35
arielb1 pushed a commit that referenced this pull request Jun 27, 2017
DAG: correctly legalize UMULO.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants