linux-BR.org

Notícias de software livre e tecnologias

Você tomará (num1 << 1) + 1 e (num2 << 1) + 1 como operando.Em 0000, há PutObject_int2fix_1_ Instrução, e seu operando Int2fix (1) é unificado com Putobject, Portanto, não é necessário um operando, o que torna o ISEQ mais curto.C.to_value (nulo) é 4, então isso faz asm.mov (: r8, 4), que significa pilha [0] = nil.A representação real para num1 + num2 é ((num1 + num2) << 1) + 1, Portanto, você precisará subtraí -lo por 1. Depois de concluído, o SP precisa ser atingido mais três vezes para acomodar um "CME" (entrada de método chamada), um manipulador de blocos e um tipo de quadro. Fonte: https://github.com/k0kubun/ruby-jit-challenge