[amd64] use 32bit variant of lea_membase for 32bit operations (#13642)
commit64e17113b221d8bf2bcf041977e8ddb582614b35
authorBernhard Urban <bernhard.urban@xamarin.com>
Mon, 25 Mar 2019 18:25:43 +0000 (25 19:25 +0100)
committermonojenkins <jo.shields+jenkins@xamarin.com>
Mon, 25 Mar 2019 18:25:43 +0000 (25 14:25 -0400)
tree5ccb29915bcef919f73777922295b11fbf3b698a
parent05a40c67ea5d76aed212a981b1183abf6317d7f7
[amd64] use 32bit variant of lea_membase for 32bit operations (#13642)

[amd64] use 32bit variant of lea_membase for 32bit operations

Consider
```
 xor %r15, %r15       // %r15 = 0x0
 dec %r15d            // %r15 = 0xffff_ffff
 lea 0x1(%r15), %rdx  // %rdx = 0x1_0000_0000 but should be 0x0
```

instead `lea 0x1(%r15), %edx` should be generated.

Fixes #13452
Fixes #13597
mono/arch/amd64/amd64-codegen.h
mono/mini/cpu-amd64.md
mono/mini/mini-amd64.c
mono/mini/mini-ops.h