docs: def arg_locs(self, is_fp=None, sizes=None):
          """
          Pass this a list of whether each parameter is floating-point or not, and get back a list of
          SimFunctionArguments. Optionally, pass a list of argument sizes (in bytes) as well.
  
          If you've customized this CC, this will sanity-check the provided locations with the given list.
          """
          session = self.arg_session
          if self.func_ty is None:
              # No function prototype is provided. `is_fp` must be provided.
              if is_fp is None:
                  raise ValueError('"is_fp" must be provided when no function prototype is available.')
          else:
              # let's rely on the func_ty for the number of arguments and whether each argument is FP or not
              is_fp = [ True if isinstance(arg, (SimTypeFloat, SimTypeDouble)) else False for arg in self.func_ty.args ]
  
          if sizes is None: sizes = [self.arch.bytes] * len(is_fp)
          return [session.next_arg(ifp, size=sz) for ifp, sz in zip(is_fp, sizes)]