zpu: wip - very crude stack slot pass
commitccee7202a8140ec061aa1f91b76b4578d27c8bfb
authorØyvind Harboe <oyvind.harboe@zylin.com>
Tue, 23 Nov 2010 19:52:57 +0000 (23 20:52 +0100)
committerØyvind Harboe <oyvind.harboe@zylin.com>
Tue, 23 Nov 2010 19:53:00 +0000 (23 20:53 +0100)
tree2646faeac1238c667d103c7fd6f4f899ce80bd80
parent0c220395a657c566532175d3c80cc5d7024c8849
zpu: wip - very crude stack slot pass

This is soooooo crude, but it has a stack slot pass
that converst registers into stack slots.

clang   -ccc-host-triple zpu-none-none test3.c -S

cat test3.s
.file "test3.c"
.text
.globl foo
.align 2
.type foo,@function
load 0 %sp
storestackslot %sp 52, %sp
load 0 %sp
storestackslot %sp 56, %sp
loadstackslot 0, 0 %sp
add %sp 0 %sp
storestackslot %sp 60, %sp
storereg %sp c
$tmp0:
.size foo, ($tmp0)-foo

.type b,@object
.comm b,4,4
.type c,@object
.comm c,4,4

---

int b;
int c;
void foo(void)
{
  int d = b;
  int e = c;
  int f;
  f = d + e;
  c = f;
}
lib/Target/ZPU/ZPURegisterInfo.cpp
lib/Target/ZPU/ZPUStackSlot.cpp