diff options
| author | Quentin Carbonneaux <[email protected]> | 2017-07-27 19:48:54 -0400 |
|---|---|---|
| committer | Quentin Carbonneaux <[email protected]> | 2017-07-30 11:13:56 -0400 |
| commit | 2b64b75c845d0491c7a701e44485d2856eeb686d (patch) | |
| tree | 9a0b8819cadaf31a81e534be7a8c6041eff4793d /test | |
| parent | 64c79edda0bc29d11b7efaffa9d051f64ea431d0 (diff) | |
fix dynamic stack allocs for amd64
The arm64 might have the same problem but it
is currently unable to handle them even in
instruction selection.
Thanks to Jean Dao for reporting the bug.
Diffstat (limited to 'test')
| -rw-r--r-- | test/dynalloc.ssa | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/dynalloc.ssa b/test/dynalloc.ssa new file mode 100644 index 0000000..7c54e88 --- /dev/null +++ b/test/dynalloc.ssa @@ -0,0 +1,27 @@ +# make sure dynamic allocations +# and caller-save regs interact +# soundly + +function $g() { +@start + ret +} + +function w $f(w %arg) { +@start + call $g() +@alloc + %r =l alloc8 16 + storel 180388626474, %r + %r8 =l add 8, %r + storel 180388626474, %r8 + ret %arg +} + +export +function w $main() { +@start + %a =w call $f(w 0) + %b =w call $f(w 0) + ret %a +} |
