Access the |EXLD|::|SHNDX| field of a elf64_sym bit structure.
(elf64_sym->shndx x) → shndx
Function:
(defun elf64_sym->shndx (x) (declare (xargs :guard (elf64_sym-p x))) (mbe :logic (let ((x (elf64_sym-fix x))) (part-select x :low 48 :width 16)) :exec (the (unsigned-byte 16) (logand (the (unsigned-byte 16) 65535) (the (unsigned-byte 144) (ash (the (unsigned-byte 192) x) -48))))))
Theorem:
(defthm elf_bits16-p-of-elf64_sym->shndx (b* ((shndx (elf64_sym->shndx x))) (elf_bits16-p shndx)) :rule-classes :rewrite)
Theorem:
(defthm elf64_sym->shndx-of-elf64_sym-fix-x (equal (elf64_sym->shndx (elf64_sym-fix x)) (elf64_sym->shndx x)))
Theorem:
(defthm elf64_sym->shndx-elf64_sym-equiv-congruence-on-x (implies (elf64_sym-equiv x x-equiv) (equal (elf64_sym->shndx x) (elf64_sym->shndx x-equiv))) :rule-classes :congruence)
Theorem:
(defthm elf64_sym->shndx-of-elf64_sym (equal (elf64_sym->shndx (elf64_sym name info other shndx value size)) (elf_bits16-fix shndx)))
Theorem:
(defthm elf64_sym->shndx-of-write-with-mask (implies (and (fty::bitstruct-read-over-write-hyps x elf64_sym-equiv-under-mask) (elf64_sym-equiv-under-mask x y fty::mask) (equal (logand (lognot fty::mask) 18446462598732840960) 0)) (equal (elf64_sym->shndx x) (elf64_sym->shndx y))))