public static Cons yieldNativeSlotValueTree(StorageSlot slot, Stella_Object objectref, StandardObject objecttype) {
    slot = StorageSlot.canonicalSlot(slot);
    { boolean mixinslotP = ((Stella_Class)(slot.slotOwner.surrogateValue)).mixinP;
      Stella_Class objectclass = StandardObject.typeSpecToClass(objecttype);

      if (mixinslotP &&
          Stella.translateToSingleInheritanceLanguageP()) {
        if (objectclass.mixinP) {
          return (Stella_Object.sysTree(Cons.list$(Cons.cons(Stella.SYM_STELLA_SYS_CALL_METHOD, Cons.cons(Stella.SGT_STELLA_OBJECT, Cons.cons(StorageSlot.yieldNativeSlotReaderName(slot), Cons.cons(Cons.cons(objectref, Stella.NIL), Stella.NIL))))), ((((CompoundTypeSpecifier)(KeyValueList.dynamicSlotValue(slot.dynamicSlots, Stella.SYM_STELLA_SLOT_TYPE_SPECIFIER, null))) != null) ? ((StandardObject)(((CompoundTypeSpecifier)(KeyValueList.dynamicSlotValue(slot.dynamicSlots, Stella.SYM_STELLA_SLOT_TYPE_SPECIFIER, null))))) : ((StandardObject)(slot.slotBaseType))), new Object[1]));
        }
      }
      if (slot.slotHardwiredP) {
        return (Cons.list$(Cons.cons(Stella.SYM_STELLA_SYS_CALL_METHOD, Cons.cons(objectclass.classType, Cons.cons(Cons.cons(slot.slotName, Cons.cons(objectref, Stella.NIL)), Stella.NIL)))));
      }
      else {
        return (Cons.list$(Cons.cons(Stella.SYM_STELLA_SYS_SLOT_VALUE, Cons.cons(objectclass.classType, Cons.cons(Cons.cons(slot.slotName, Cons.cons(objectref, Stella.NIL)), Stella.NIL)))));
      }
    }
  }