+static inline int
+lowtag_of(lispobj obj) {
+ return obj & LOWTAG_MASK;
+}
+
+static inline int
+widetag_of(lispobj obj) {
+ return obj & WIDETAG_MASK;
+}
+
+/* Is the Lisp object obj something with pointer nature (as opposed to
+ * e.g. a fixnum or character or unbound marker)? */
+static inline int
+is_lisp_pointer(lispobj obj)
+{
+ return obj & 1;
+}
+
+/* Convert from a lispobj with type bits to a native (ordinary
+ * C/assembly) pointer to the beginning of the object. */
+static inline lispobj
+native_pointer(lispobj obj)
+{
+ return obj & ~LOWTAG_MASK;
+}
+