good
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
wstring.h
|
||||
|
||||
diStorm3 - Powerful disassembler for X86/AMD64
|
||||
http://ragestorm.net/distorm/
|
||||
distorm at gmail dot com
|
||||
Copyright (C) 2003-2021 Gil Dabah
|
||||
This library is licensed under the BSD license. See the file COPYING.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef WSTRING_H
|
||||
#define WSTRING_H
|
||||
|
||||
#include "config.h"
|
||||
#include "../include/mnemonics.h"
|
||||
|
||||
#ifndef DISTORM_LIGHT
|
||||
|
||||
_INLINE_ void strcat_WSR(unsigned char** str, const _WRegister* reg)
|
||||
{
|
||||
/*
|
||||
* Longest register name is YMM15 - 5 characters,
|
||||
* Copy 8 so compiler can do a QWORD move.
|
||||
* We copy nul termination and fix the length, so it's okay to copy more to the output buffer.
|
||||
* There's a sentinel register to make sure we don't read past the end of the registers table.
|
||||
*/
|
||||
memcpy((int8_t*)*str, (const int8_t*)reg->p, 8);
|
||||
*str += reg->length;
|
||||
}
|
||||
|
||||
#define strfinalize_WS(s, end) do { *end = 0; s.length = (unsigned int)((size_t)end - (size_t)s.p); } while (0)
|
||||
#define chrcat_WS(s, ch) do { *s = ch; s += 1; } while (0)
|
||||
#define strcat_WS(s, buf, copylen, advancelen) do { memcpy((int8_t*)s, buf, copylen); s += advancelen; } while(0)
|
||||
|
||||
#endif /* DISTORM_LIGHT */
|
||||
|
||||
#endif /* WSTRING_H */
|
||||
Reference in New Issue
Block a user