diff --git a/trunk/research/frame/frame0.cpp b/trunk/research/frame/frame0.cpp new file mode 100644 index 000000000..251d02a00 --- /dev/null +++ b/trunk/research/frame/frame0.cpp @@ -0,0 +1,22 @@ +/* +g++ frame0.cpp -g -O0 -o frame && ./frame +*/ +#include +#include + +int callee(int a, long b) { + int c = a; + c += (int)b; + return c; +} +void caller() { + int v = callee(10, 20); + printf("v=%d\n", v); +} + +int main(int argc, char** argv) +{ + caller(); + return 0; +} + diff --git a/trunk/research/frame/frame1.cpp b/trunk/research/frame/frame1.cpp new file mode 100644 index 000000000..1722c8c5b --- /dev/null +++ b/trunk/research/frame/frame1.cpp @@ -0,0 +1,34 @@ +/* +g++ frame1.cpp -g -O0 -o frame && ./frame +*/ +#include +#include + +int callee(int a, long b, long c, int d, long e, int f, int g, int h) { + int v = a; + v += (int)b; + v += (int)c; + v += (int)e; + v += (int)g; + v += (int)h; + return v; +} +void caller() { + int a = 10; + int b = 20; + long c = 30; + int d = 40; + int e = 50; + int f = 60; + int g = 70; + int h = 80; + int v = callee(a, b, c, d, e, f, g, h); + printf("v=%d, c=%ld\n", v, c); +} + +int main(int argc, char** argv) +{ + caller(); + return 0; +} +