kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

29_tail_cross_arch_stack.toy (559B)


      1 fn target(a: i64, b: i64, c: i64, d: i64, e: i64, f: i64,
      2           g: i64, h: i64, i: i64, j: i64, k: i64, l: i64): i64 {
      3   return a + b * 2 + c * 3 + d * 4 + e * 5 + f * 6 +
      4          g * 7 + h * 8 + i * 9 + j * 10 + k * 11 + l * 12 - 256;
      5 }
      6 
      7 fn caller(a: i64, b: i64, c: i64, d: i64, e: i64, f: i64,
      8           g: i64, h: i64, i: i64, j: i64, k: i64, l: i64): i64 {
      9   return tail target(l, k, j, i, h, g, f, e, d, c, b, a);
     10 }
     11 
     12 fn __user_main(): i64 {
     13   return caller(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
     14 }
     15 
     16 fn main(): i32 { return __user_main() as i32; }