gcd.wat 507 B

123456789101112131415161718192021222324252627
  1. (module
  2. (func $gcd (param i32 i32) (result i32)
  3. (local i32)
  4. block ;; label = @1
  5. block ;; label = @2
  6. local.get 0
  7. br_if 0 (;@2;)
  8. local.get 1
  9. local.set 2
  10. br 1 (;@1;)
  11. end
  12. loop ;; label = @2
  13. local.get 1
  14. local.get 0
  15. local.tee 2
  16. i32.rem_u
  17. local.set 0
  18. local.get 2
  19. local.set 1
  20. local.get 0
  21. br_if 0 (;@2;)
  22. end
  23. end
  24. local.get 2
  25. )
  26. (export "gcd" (func $gcd))
  27. )