# $2 - .in_c
outf=$3
-grep '@' $1 | grep -v '\<DATA\>' | awk '{print $1}' > ${outf}_explist
+grep '@' $1 | grep -v '\<DATA\>' | grep -v '=' | \
+ awk '{print $1}' > ${outf}_explist
echo ".text" > $outf
echo ".align 4" >> $outf
unsigned long __cdecl _beginthreadex (void *, unsigned int, unsigned int (__stdcall *) (void *), void*, unsigned int, unsigned int*);
DECLSPEC_NORETURN void __cdecl _endthreadex (unsigned int);
+__int64 __cdecl _atoi64(const char *);
+char* __cdecl _i64toa(__int64, char *, int);
+char* __cdecl _ui64toa(unsigned __int64, char *, int);
+
void __cdecl _lock(int locknum);
void __cdecl _unlock(int locknum);
size_t __cdecl strncnt(const char*, size_t);
if (tmp_op->operand[0].lmod == OPLM_QWORD)
arg++;
}
+ else if (pp->arg[arg].type.is_64bit) {
+ ferr_assert(po, tmp_op->p_argpass == 0);
+ ferr_assert(po, !pp->arg[arg].is_saved);
+ ferr_assert(po, cast[0] == 0);
+ out_src_opr(buf1, sizeof(buf1),
+ tmp_op, &tmp_op->operand[0], cast, 0);
+ tmp_op = pp->arg[++arg].datap;
+ ferr_assert(po, tmp_op != NULL);
+ out_src_opr(buf2, sizeof(buf2),
+ tmp_op, &tmp_op->operand[0], cast, 0);
+ fprintf(fout, "((u64)(%s) << 32) | (%s)",
+ buf2, buf1);
+ }
else if (tmp_op->p_argpass != 0) {
fprintf(fout, "a%d", tmp_op->p_argpass);
}