public static StorageClass getBasicTypeClass(DataType tp) {
		if (tp instanceof TypeDef) {
			tp = ((TypeDef) tp).getBaseDataType();
		}
		if (tp instanceof AbstractFloatDataType) {
			return StorageClass.FLOAT;
		}
		if (tp instanceof Pointer) {
			return StorageClass.PTR;
		}
		return StorageClass.GENERAL;
	}
Return -1 if (op2,sz2) is not properly contained in (op1,sz1)
If it is contained, return the endian aware offset of (op2,sz2)
I.e. if the least significant byte of the op2 range falls on the least significant
byte of the op1 range, return 0.  If it intersects the second least significant, return 1, etc.
@param spc1  the first address space
@param offset1 the first offset
@param sz1   size of first space
@param spc2  the second address space
@param offset2 is the second offset
@param sz2   size of second space
@param forceleft  is true if containment is forced to be on the left even for big endian
@param isBigEndian true if big endian
@return the endian aware offset or -1
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/ParamEntry.java