// Copyright (C) 2020 Second State. // This file is part of Rust-SSVM. // Rust-SSVM is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // Rust-SSVM is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . object "fib" { code { let f := 1 let s := 1 let next for { let i := 0 } ltu256(i, 10) { i := addu256(i, 1)} { if ltu256(i, 2) { sstore(i, 1) } if gtu256(i, 1) { next := addu256(s, f) f := s s := next sstore(i, s) } } mstore(0, next) return(0, 32) } // Unreferenced data is not added to the assembled bytecode. data "str" "Yul Fibonacci" }