• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Community
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
      • Kestrel-books
      • X86isa
        • Program-execution
        • Sdm-instruction-set-summary
        • Tlb
        • Running-linux
        • Introduction
        • Asmtest
        • X86isa-build-instructions
        • Publications
        • Contributors
        • Machine
          • X86isa-state
          • Syscalls
          • Cpuid
            • Feature-flag
            • Default-cpuid-flag-fn
              • Feature-flags
            • Linear-memory
            • Rflag-specifications
            • Characterizing-undefined-behavior
            • App-view
            • Top-level-memory
            • X86-decoder
            • Physical-memory
            • Decoding-and-spec-utils
            • Instructions
              • Two-byte-opcodes
              • One-byte-opcodes
              • Fp-opcodes
              • Instruction-semantic-functions
              • X86-illegal-instruction
              • Implemented-opcodes
              • Opcode-maps
                • Cpuid
                  • Feature-flag
                  • Default-cpuid-flag-fn
                    • Feature-flags
                  • Opcode-maps-structures
                  • Implemented-opcodes
                  • Chk-exc-fn
                  • Filtering-instructions
                  • Addressing-method-code-p
                  • Operand-type-code-p
                  • Eval-pre-map
                • X86-general-protection
                • X86-device-not-available
                • X86-step-unimplemented
                • Privileged-opcodes
                • Three-byte-opcodes
              • Register-readers-and-writers
              • X86-modes
              • Segmentation
              • Other-non-deterministic-computations
              • Environment
              • Paging
            • Implemented-opcodes
            • To-do
            • Proof-utilities
            • Peripherals
            • Model-validation
            • Modelcalls
            • Concrete-simulation-examples
            • Utils
            • Debugging-code-proofs
          • Axe
          • Execloader
        • Math
        • Testing-utilities
      • Cpuid

      Default-cpuid-flag-fn

      Signature
      (default-cpuid-flag-fn eax ecx reg bit width) → *
      Arguments
      reg — Guard (or (equal reg 0) (equal reg 3) (equal reg 1) (equal reg 2)).

      Definitions and Theorems

      Function: default-cpuid-flag-fn

      (defun default-cpuid-flag-fn (eax ecx reg bit width)
        (declare (type (unsigned-byte 32) eax)
                 (type (unsigned-byte 32) ecx)
                 (type (integer 0 63) bit)
                 (type (integer 1 32) width))
        (declare (xargs :guard (or (equal reg 0)
                                   (equal reg 3)
                                   (equal reg 1)
                                   (equal reg 2))))
        (let ((__function__ 'default-cpuid-flag-fn))
          (declare (ignorable __function__))
          (case eax
            (2147483656 (case reg
                          (0 (case bit
                               (0 (if (equal width 8) 52 0))
                               (8 (if (equal width 8) 48 0))
                               (t 0)))
                          (t 1)))
            (t 1))))