VM: Refactor utilities.cpp/hpp to Factor style
parent
5b1a9d753e
commit
8522265169
|
@ -1,12 +1,10 @@
|
|||
#include "master.hpp"
|
||||
|
||||
namespace factor
|
||||
{
|
||||
namespace factor {
|
||||
|
||||
/* Fill in a PPC function descriptor */
|
||||
void *fill_function_descriptor(void *ptr, void *code)
|
||||
{
|
||||
void **descriptor = (void **)ptr;
|
||||
void* fill_function_descriptor(void* ptr, void* code) {
|
||||
void** descriptor = (void**)ptr;
|
||||
descriptor[0] = code;
|
||||
descriptor[1] = NULL;
|
||||
descriptor[2] = NULL;
|
||||
|
@ -14,32 +12,30 @@ void *fill_function_descriptor(void *ptr, void *code)
|
|||
}
|
||||
|
||||
/* Get a field from a PPC function descriptor */
|
||||
void *function_descriptor_field(void *ptr, size_t idx)
|
||||
{
|
||||
return ptr ? ((void **) ptr)[idx] : ptr;
|
||||
void* function_descriptor_field(void* ptr, size_t idx) {
|
||||
return ptr ? ((void**)ptr)[idx] : ptr;
|
||||
}
|
||||
|
||||
/* If memory allocation fails, bail out */
|
||||
vm_char *safe_strdup(const vm_char *str)
|
||||
{
|
||||
vm_char *ptr = STRDUP(str);
|
||||
if(!ptr) fatal_error("Out of memory in safe_strdup", 0);
|
||||
vm_char* safe_strdup(const vm_char* str) {
|
||||
vm_char* ptr = STRDUP(str);
|
||||
if (!ptr)
|
||||
fatal_error("Out of memory in safe_strdup", 0);
|
||||
return ptr;
|
||||
}
|
||||
|
||||
cell read_cell_hex()
|
||||
{
|
||||
cell read_cell_hex() {
|
||||
cell cell;
|
||||
std::cin >> std::hex >> cell >> std::dec;
|
||||
if(!std::cin.good()) exit(1);
|
||||
if (!std::cin.good())
|
||||
exit(1);
|
||||
return cell;
|
||||
}
|
||||
|
||||
/* On Windows, memcpy() is in a different DLL and the non-optimizing
|
||||
compiler can't find it */
|
||||
VM_C_API void *factor_memcpy(void *dst, void *src, size_t len)
|
||||
{
|
||||
return memcpy(dst,src,len);
|
||||
VM_C_API void* factor_memcpy(void* dst, void* src, size_t len) {
|
||||
return memcpy(dst, src, len);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,20 +1,16 @@
|
|||
namespace factor
|
||||
{
|
||||
namespace factor {
|
||||
|
||||
inline static void memset_2(void *dst, u16 pattern, size_t size)
|
||||
{
|
||||
inline static void memset_2(void* dst, u16 pattern, size_t size) {
|
||||
#ifdef __APPLE__
|
||||
cell cell_pattern = (pattern | (pattern << 16));
|
||||
memset_pattern4(dst,&cell_pattern,size);
|
||||
memset_pattern4(dst, &cell_pattern, size);
|
||||
#else
|
||||
if(pattern == 0)
|
||||
memset(dst,0,size);
|
||||
else
|
||||
{
|
||||
u16 *start = (u16 *)dst;
|
||||
u16 *end = (u16 *)((cell)dst + size);
|
||||
while(start < end)
|
||||
{
|
||||
if (pattern == 0)
|
||||
memset(dst, 0, size);
|
||||
else {
|
||||
u16* start = (u16*)dst;
|
||||
u16* end = (u16*)((cell) dst + size);
|
||||
while (start < end) {
|
||||
*start = pattern;
|
||||
start++;
|
||||
}
|
||||
|
@ -22,23 +18,20 @@ inline static void memset_2(void *dst, u16 pattern, size_t size)
|
|||
#endif
|
||||
}
|
||||
|
||||
inline static void memset_cell(void *dst, cell pattern, size_t size)
|
||||
{
|
||||
inline static void memset_cell(void* dst, cell pattern, size_t size) {
|
||||
#ifdef __APPLE__
|
||||
#ifdef FACTOR_64
|
||||
memset_pattern8(dst,&pattern,size);
|
||||
#else
|
||||
memset_pattern4(dst,&pattern,size);
|
||||
#endif
|
||||
#ifdef FACTOR_64
|
||||
memset_pattern8(dst, &pattern, size);
|
||||
#else
|
||||
if(pattern == 0)
|
||||
memset(dst,0,size);
|
||||
else
|
||||
{
|
||||
cell *start = (cell *)dst;
|
||||
cell *end = (cell *)((cell)dst + size);
|
||||
while(start < end)
|
||||
{
|
||||
memset_pattern4(dst, &pattern, size);
|
||||
#endif
|
||||
#else
|
||||
if (pattern == 0)
|
||||
memset(dst, 0, size);
|
||||
else {
|
||||
cell* start = (cell*)dst;
|
||||
cell* end = (cell*)((cell) dst + size);
|
||||
while (start < end) {
|
||||
*start = pattern;
|
||||
start++;
|
||||
}
|
||||
|
@ -46,11 +39,11 @@ inline static void memset_cell(void *dst, cell pattern, size_t size)
|
|||
#endif
|
||||
}
|
||||
|
||||
void *fill_function_descriptor(void *ptr, void *code);
|
||||
void *function_descriptor_field(void *ptr, size_t idx);
|
||||
void* fill_function_descriptor(void* ptr, void* code);
|
||||
void* function_descriptor_field(void* ptr, size_t idx);
|
||||
|
||||
vm_char *safe_strdup(const vm_char *str);
|
||||
vm_char* safe_strdup(const vm_char* str);
|
||||
cell read_cell_hex();
|
||||
VM_C_API void *factor_memcpy(void *dst, void *src, size_t len);
|
||||
VM_C_API void* factor_memcpy(void* dst, void* src, size_t len);
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue