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

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