logo

live-bootstrap

Mirror of <https://github.com/fosslinux/live-bootstrap>

opcode.awk (912B)


  1. # SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
  2. #
  3. # SPDX-License-Identifier: GPL-3.0-or-later
  4. {
  5. argsum = 0
  6. argsum = or(argsum, 1 * (index($4, "m") != 0))
  7. argsum = or(argsum, 2 * (index($4, "f") != 0))
  8. argsum = or(argsum, 4 * (index($4, "s") != 0))
  9. argsum = or(argsum, 8 * (index($4, "t") != 0))
  10. argsum = or(argsum, 16 * (index($4, "i") != 0))
  11. argsum = or(argsum, 32 * (index($4, "I") != 0))
  12. argsum = or(argsum, 64 * (index($4, "d") != 0))
  13. argsum = or(argsum, 128 * (index($4, "u") != 0))
  14. mul = 256
  15. arg_val="SLAHCFR"
  16. argstr=$5
  17. gsub(" ", "", argstr)
  18. split(argstr, args, "")
  19. for(i=1; i<=length(argstr); i+=1) {
  20. argnum = (index(argstr, "?") != 0) * 8
  21. argnum += index(arg_val, args[i])
  22. argsum += argnum * mul
  23. mul = lshift(mul, 4)
  24. }
  25. printf("\t0x%08x,\t/* %s */\n", argsum, $1)
  26. }