public static void getPcodeForLdc(PcodeOpEmitter pCode, int constantPoolIndex,
			AbstractConstantPoolInfoJava[] constantPool) {
		byte tag = constantPool[constantPoolIndex].getTag();
		switch (tag){
		case ConstantPoolTagsJava.CONSTANT_Class: 
		case ConstantPoolTagsJava.CONSTANT_Float:
		case ConstantPoolTagsJava.CONSTANT_Integer:
		case ConstantPoolTagsJava.CONSTANT_MethodHandle:
		case ConstantPoolTagsJava.CONSTANT_MethodType:
		case ConstantPoolTagsJava.CONSTANT_String:
				pCode.emitAssignVarnodeFromPcodeOpCall(VALUE, 4, ConstantPoolJava.CPOOL_OP, "0",
					Integer.toString(constantPoolIndex), ConstantPoolJava.CPOOL_LDC);
				pCode.emitPushCat1Value(VALUE);
			break;
		case ConstantPoolTagsJava.CONSTANT_Double:
		case ConstantPoolTagsJava.CONSTANT_Long:
				pCode.emitAssignVarnodeFromPcodeOpCall(VALUE, 8, ConstantPoolJava.CPOOL_OP, "0",
					Integer.toString(constantPoolIndex), ConstantPoolJava.CPOOL_LDC2_W);
				pCode.emitPushCat2Value(VALUE);
			break;
		default:
			throw new IllegalArgumentException("Invalid load from constant pool: tag " + tag);

		}
	}
Generates pcode modeling an ldc, ldc_w, or ldc2_w bytecode ops, which refer to constants
in the constant pool.  

@param pCode is the pcode accumulator
@param constantPoolIndex - the index of item in the constant pool.
@param constantPool - the constant pool
Ghidra/Processors/JVM/src/main/java/ghidra/app/util/pcodeInject/LdcMethods.java