VM: merge strings.hpp and tuples.hpp into layouts.hpp, because those

header files were so tiny
db4
Björn Lindqvist 2015-07-03 19:12:57 +02:00
parent 66eb9f1fe5
commit 46423dfebf
5 changed files with 19 additions and 21 deletions

View File

@ -91,7 +91,6 @@ ifdef CONFIG
vm/mark_bits.hpp \
vm/free_list.hpp \
vm/fixup.hpp \
vm/tuples.hpp \
vm/free_list_allocator.hpp \
vm/write_barrier.hpp \
vm/object_start_map.hpp \
@ -100,7 +99,6 @@ ifdef CONFIG
vm/data_heap.hpp \
vm/code_heap.hpp \
vm/gc.hpp \
vm/strings.hpp \
vm/float_bits.hpp \
vm/io.hpp \
vm/image.hpp \

View File

@ -107,6 +107,14 @@ inline static cell tag_fixnum(fixnum untagged) {
struct object {
NO_TYPE_CHECK;
// header format (bits indexed with least significant as zero):
// bit 0 : free?
// if not forwarding:
// bit 1 : forwarding pointer?
// bit 2-5 : tag
// bit 7-end : hashcode
// if forwarding:
// bit 2-end : forwarding pointer
cell header;
template <typename Fixup> cell base_size(Fixup fixup) const;
@ -324,4 +332,15 @@ struct tuple : public object {
cell* data() const { return (cell*)(this + 1); }
};
inline static cell tuple_size(const tuple_layout* layout) {
cell size = untag_fixnum(layout->size);
return sizeof(tuple) + size * sizeof(cell);
}
inline static cell string_capacity(const string* str) {
return untag_fixnum(str->length);
}
inline static cell string_size(cell size) { return sizeof(string) + size; }
}

View File

@ -109,7 +109,6 @@ namespace factor { struct factor_vm; }
#include "mark_bits.hpp"
#include "free_list.hpp"
#include "fixup.hpp"
#include "tuples.hpp"
#include "free_list_allocator.hpp"
#include "write_barrier.hpp"
#include "object_start_map.hpp"
@ -118,7 +117,6 @@ namespace factor { struct factor_vm; }
#include "data_heap.hpp"
#include "code_heap.hpp"
#include "gc.hpp"
#include "strings.hpp"
#include "float_bits.hpp"
#include "io.hpp"
#include "image.hpp"

View File

@ -1,9 +0,0 @@
namespace factor {
inline static cell string_capacity(const string* str) {
return untag_fixnum(str->length);
}
inline static cell string_size(cell size) { return sizeof(string) + size; }
}

View File

@ -1,8 +0,0 @@
namespace factor {
inline static cell tuple_size(const tuple_layout* layout) {
cell size = untag_fixnum(layout->size);
return sizeof(tuple) + size * sizeof(cell);
}
}