code: def create_load_global(name, push_null) -> Instruction:
      """
      `name` is the name of the global to be loaded.
      `push_null` specifies whether or not a NULL should be pushed to the stack
      before the global (Python 3.11+ only).
  
      Python 3.11 changed the LOAD_GLOBAL instruction in that the first bit of
      the instruction arg specifies whether a NULL should be pushed to the stack
      before the global. The remaining bits of the instruction arg contain the
      name index. See `create_call_function` for why this NULL is needed.
  
      The instruction's `arg` is actually computed when assembling the bytecode.
      For Python 3.11, push_null information is propagated through the arg.
  
      NOTE: we don't use create_instruction since LOAD_GLOBAL is the only instruction
      where both arg and argval need to be specified.
      """
      return Instruction(
          opcode=dis.opmap["LOAD_GLOBAL"],
          opname="LOAD_GLOBAL",
          arg=push_null,
          argval=name,
      )
  
imports: import copy
  import dataclasses
  import dis
  import itertools
  import sys
  import types
  from typing import Any, Callable, cast, Dict, Iterator, List, Optional, Tuple
  from .bytecode_analysis import get_indexof, propagate_line_nums, remove_extra_line_nums, stacksize_analysis
label_desc: Use image node_id 4 for calling a global function with example usage: create_load_global(name, push_null) and returns: Instruction