fix bad ordering in HEAPFIELDS: OPERANDS must be well placed before we can

recover atom table and dependent preds.
This commit is contained in:
Vítor Manuel de Morais Santos Costa 2009-11-18 15:48:29 +00:00
parent 71de4ed52a
commit 7155fbec22
7 changed files with 64 additions and 64 deletions

View File

@ -75,6 +75,18 @@
#define HeapTopOwner Yap_heap_regs->heap_top_owner
#endif
#if USE_THREADED_CODE
#define OP_RTABLE Yap_heap_regs->op_rtable
#endif
#define EXECUTE_CPRED_OP_CODE Yap_heap_regs->execute_cpred_op_code
#define EXPAND_OP_CODE Yap_heap_regs->expand_op_code
#define FAIL_OPCODE Yap_heap_regs->fail_op
#define INDEX_OPCODE Yap_heap_regs->index_op
#define LOCKPRED_OPCODE Yap_heap_regs->lockpred_op
#define UNDEF_OPCODE Yap_heap_regs->undef_op
#define NOfAtoms Yap_heap_regs->n_of_atoms
#define AtomHashTableSize Yap_heap_regs->atom_hash_table_size
#define WideAtomHashTableSize Yap_heap_regs->wide_atom_hash_table_size
@ -108,20 +120,8 @@
#if USE_THREADED_CODE
#define OP_RTABLE Yap_heap_regs->op_rtable
#endif
#define Yap_ExecutionMode Yap_heap_regs->execution_mode
#define EXECUTE_CPRED_OP_CODE Yap_heap_regs->execute_cpred_op_code
#define EXPAND_OP_CODE Yap_heap_regs->expand_op_code
#define FAIL_OPCODE Yap_heap_regs->fail_op
#define INDEX_OPCODE Yap_heap_regs->index_op
#define LOCKPRED_OPCODE Yap_heap_regs->lockpred_op
#define UNDEF_OPCODE Yap_heap_regs->undef_op
#define PredHash Yap_heap_regs->pred_hash
#if defined(YAPOR) || defined(THREADS)
#define PredHashRWLock Yap_heap_regs->pred_hash_rw_lock

View File

@ -75,6 +75,18 @@
int heap_top_owner;
#endif
#if USE_THREADED_CODE
opentry *op_rtable;
#endif
OPCODE execute_cpred_op_code;
OPCODE expand_op_code;
OPCODE fail_op;
OPCODE index_op;
OPCODE lockpred_op;
OPCODE undef_op;
UInt n_of_atoms;
UInt atom_hash_table_size;
UInt wide_atom_hash_table_size;
@ -108,20 +120,8 @@
#if USE_THREADED_CODE
opentry *op_rtable;
#endif
yap_exec_mode execution_mode;
OPCODE execute_cpred_op_code;
OPCODE expand_op_code;
OPCODE fail_op;
OPCODE index_op;
OPCODE lockpred_op;
OPCODE undef_op;
struct pred_entry **pred_hash;
#if defined(YAPOR) || defined(THREADS)
rwlock_t pred_hash_rw_lock;

View File

@ -76,6 +76,18 @@
#endif
#if USE_THREADED_CODE
#endif
Yap_heap_regs->execute_cpred_op_code = Yap_opcode(_execute_cpred);
Yap_heap_regs->expand_op_code = Yap_opcode(_expand_index);
Yap_heap_regs->fail_op = Yap_opcode(_op_fail);
Yap_heap_regs->index_op = Yap_opcode(_index_pred);
Yap_heap_regs->lockpred_op = Yap_opcode(_lock_pred);
Yap_heap_regs->undef_op = Yap_opcode(_undef_p);
@ -108,20 +120,8 @@
Yap_InitModules();
#if USE_THREADED_CODE
#endif
Yap_heap_regs->execution_mode = INTERPRETED;
Yap_heap_regs->execute_cpred_op_code = Yap_opcode(_execute_cpred);
Yap_heap_regs->expand_op_code = Yap_opcode(_expand_index);
Yap_heap_regs->fail_op = Yap_opcode(_op_fail);
Yap_heap_regs->index_op = Yap_opcode(_index_pred);
Yap_heap_regs->lockpred_op = Yap_opcode(_lock_pred);
Yap_heap_regs->undef_op = Yap_opcode(_undef_p);
InitPredHash();
#if defined(YAPOR) || defined(THREADS)

View File

@ -76,6 +76,18 @@
#endif
#if USE_THREADED_CODE
Yap_heap_regs->op_rtable = OpRTableAdjust(Yap_heap_regs->op_rtable);
#endif
Yap_heap_regs->execute_cpred_op_code = Yap_opcode(_execute_cpred);
Yap_heap_regs->expand_op_code = Yap_opcode(_expand_index);
Yap_heap_regs->fail_op = Yap_opcode(_op_fail);
Yap_heap_regs->index_op = Yap_opcode(_index_pred);
Yap_heap_regs->lockpred_op = Yap_opcode(_lock_pred);
Yap_heap_regs->undef_op = Yap_opcode(_undef_p);
@ -109,18 +121,6 @@
#if USE_THREADED_CODE
Yap_heap_regs->op_rtable = OpRTableAdjust(Yap_heap_regs->op_rtable);
#endif
Yap_heap_regs->execute_cpred_op_code = Yap_opcode(_execute_cpred);
Yap_heap_regs->expand_op_code = Yap_opcode(_expand_index);
Yap_heap_regs->fail_op = Yap_opcode(_op_fail);
Yap_heap_regs->index_op = Yap_opcode(_index_pred);
Yap_heap_regs->lockpred_op = Yap_opcode(_lock_pred);
Yap_heap_regs->undef_op = Yap_opcode(_undef_p);
RestorePredHash();
#if defined(YAPOR) || defined(THREADS)

View File

@ -78,6 +78,20 @@ int heap_top_owner HeapTopOwner =-1 void
#endif
/* execution info */
/* OPCODE TABLE, needed to recover op tables */
#if USE_THREADED_CODE
opentry *op_rtable OP_RTABLE void OpRTableAdjust
#endif
/* popular opcodes */
OPCODE execute_cpred_op_code EXECUTE_CPRED_OP_CODE MkOp _execute_cpred
OPCODE expand_op_code EXPAND_OP_CODE MkOp _expand_index
OPCODE fail_op FAIL_OPCODE MkOp _op_fail
OPCODE index_op INDEX_OPCODE MkOp _index_pred
OPCODE lockpred_op LOCKPRED_OPCODE MkOp _lock_pred
OPCODE undef_op UNDEF_OPCODE MkOp _undef_p
/* atom tables */
UInt n_of_atoms NOfAtoms void void
UInt atom_hash_table_size AtomHashTableSize void void
@ -115,23 +129,9 @@ struct mod_entry *current_modules CurrentModules =NULL ModEntryPtrAdjust
// don't actually want to define a field
void void void Yap_InitModules() void
/* execution info */
/* OPCODE TABLE */
#if USE_THREADED_CODE
opentry *op_rtable OP_RTABLE void OpRTableAdjust
#endif
/* Anderson's JIT */
yap_exec_mode execution_mode Yap_ExecutionMode =INTERPRETED void
/* popular opcodes */
OPCODE execute_cpred_op_code EXECUTE_CPRED_OP_CODE MkOp _execute_cpred
OPCODE expand_op_code EXPAND_OP_CODE MkOp _expand_index
OPCODE fail_op FAIL_OPCODE MkOp _op_fail
OPCODE index_op INDEX_OPCODE MkOp _index_pred
OPCODE lockpred_op LOCKPRED_OPCODE MkOp _lock_pred
OPCODE undef_op UNDEF_OPCODE MkOp _undef_p
/* The Predicate Hash Table: fast access to predicates. */
struct pred_entry **pred_hash PredHash InitPredHash() RestorePredHash()
#if defined(YAPOR) || defined(THREADS)

@ -1 +1 @@
Subproject commit e071f01c1d9015e6d3fabc73092a6e902541485a
Subproject commit c325e4564bb8d4e32c27f2061df85f13d315974e

@ -1 +1 @@
Subproject commit eb6d27251c2548c25e6d37fff2a27a014caaa7aa
Subproject commit a2d2f03107eecd45462cd61a678035132cf06326