1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00

Remove ByteswapSCANFResults, it is dead.

llvm-svn: 86458
This commit is contained in:
Daniel Dunbar 2009-11-08 09:46:57 +00:00
parent ec7a3ae5f7
commit c2a6a7dea5

View File

@ -419,82 +419,6 @@ GenericValue lle_X_printf(const FunctionType *FT,
return GV;
}
static void ByteswapSCANFResults(LLVMContext &C,
const char *Fmt, void *Arg0, void *Arg1,
void *Arg2, void *Arg3, void *Arg4, void *Arg5,
void *Arg6, void *Arg7, void *Arg8) {
void *Args[] = { Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, 0 };
// Loop over the format string, munging read values as appropriate (performs
// byteswaps as necessary).
unsigned ArgNo = 0;
while (*Fmt) {
if (*Fmt++ == '%') {
// Read any flag characters that may be present...
bool Suppress = false;
bool Half = false;
bool Long = false;
bool LongLong = false; // long long or long double
while (1) {
switch (*Fmt++) {
case '*': Suppress = true; break;
case 'a': /*Allocate = true;*/ break; // We don't need to track this
case 'h': Half = true; break;
case 'l': Long = true; break;
case 'q':
case 'L': LongLong = true; break;
default:
if (Fmt[-1] > '9' || Fmt[-1] < '0') // Ignore field width specs
goto Out;
}
}
Out:
// Read the conversion character
if (!Suppress && Fmt[-1] != '%') { // Nothing to do?
unsigned Size = 0;
const Type *Ty = 0;
switch (Fmt[-1]) {
case 'i': case 'o': case 'u': case 'x': case 'X': case 'n': case 'p':
case 'd':
if (Long || LongLong) {
Size = 8; Ty = Type::getInt64Ty(C);
} else if (Half) {
Size = 4; Ty = Type::getInt16Ty(C);
} else {
Size = 4; Ty = Type::getInt32Ty(C);
}
break;
case 'e': case 'g': case 'E': case 'f':
if (Long || LongLong) {
Size = 8; Ty = Type::getDoubleTy(C);
} else {
Size = 4; Ty = Type::getFloatTy(C);
}
break;
case 's': case 'c': case '[': // No byteswap needed
Size = 1;
Ty = Type::getInt8Ty(C);
break;
default: break;
}
if (Size) {
GenericValue GV;
void *Arg = Args[ArgNo++];
memcpy(&GV, Arg, Size);
TheInterpreter->StoreValueToMemory(GV, (GenericValue*)Arg, Ty);
}
}
}
}
}
// int sscanf(const char *format, ...);
GenericValue lle_X_sscanf(const FunctionType *FT,
const std::vector<GenericValue> &args) {