mirror of
https://github.com/arnaucube/circom.git
synced 2026-02-06 18:56:40 +01:00
Big component entry tables
This commit is contained in:
@@ -356,7 +356,6 @@ class BuilderC {
|
|||||||
|
|
||||||
this.sizePointers = {};
|
this.sizePointers = {};
|
||||||
this.hashMapPointers = {};
|
this.hashMapPointers = {};
|
||||||
this.cetPointers = {};
|
|
||||||
this.functionIdx = {};
|
this.functionIdx = {};
|
||||||
this.nCets = 0;
|
this.nCets = 0;
|
||||||
}
|
}
|
||||||
@@ -370,11 +369,11 @@ class BuilderC {
|
|||||||
this.hashMaps[name] = hm;
|
this.hashMaps[name] = hm;
|
||||||
}
|
}
|
||||||
|
|
||||||
addComponentEntriesTable(name, cet) {
|
addComponentEntriesTable(name, cet, idComponent) {
|
||||||
this.componentEntriesTables.push({
|
this.componentEntriesTables[idComponent] = {
|
||||||
name: name,
|
name: name,
|
||||||
cet: cet
|
cet: cet
|
||||||
});
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
addSizes(name, accSizes) {
|
addSizes(name, accSizes) {
|
||||||
@@ -462,10 +461,9 @@ class BuilderC {
|
|||||||
this.pCets = fdData.pos;
|
this.pCets = fdData.pos;
|
||||||
for (let i=0; i< this.componentEntriesTables.length; i++) {
|
for (let i=0; i< this.componentEntriesTables.length; i++) {
|
||||||
if ((this.verbose)&&(i%100000 ==0)) console.log(`_buildComponentEntriesTables ${i}/${this.componentEntriesTables.length}`);
|
if ((this.verbose)&&(i%100000 ==0)) console.log(`_buildComponentEntriesTables ${i}/${this.componentEntriesTables.length}`);
|
||||||
const cetName = this.componentEntriesTables[i].name;
|
|
||||||
const cet = this.componentEntriesTables[i].cet;
|
const cet = this.componentEntriesTables[i].cet;
|
||||||
|
|
||||||
this.cetPointers[cetName] = fdData.pos;
|
this.components[i].entryTablePointer = fdData.pos;
|
||||||
const buff = new Uint8Array(16*cet.length);
|
const buff = new Uint8Array(16*cet.length);
|
||||||
const buffV = new DataView(buff.buffer);
|
const buffV = new DataView(buff.buffer);
|
||||||
|
|
||||||
@@ -612,7 +610,7 @@ class BuilderC {
|
|||||||
const c = this.components[i];
|
const c = this.components[i];
|
||||||
|
|
||||||
utils.setUint64(buffV, 0, this.hashMapPointers[c.hashMapName], true);
|
utils.setUint64(buffV, 0, this.hashMapPointers[c.hashMapName], true);
|
||||||
utils.setUint64(buffV, 8, this.cetPointers[c.entryTableName], true);
|
utils.setUint64(buffV, 8, c.entryTablePointer, true);
|
||||||
utils.setUint64(buffV, 16, this.functionIdx[c.functionName], true);
|
utils.setUint64(buffV, 16, this.functionIdx[c.functionName], true);
|
||||||
buffV.setUint32(24, c.nInSignals, true);
|
buffV.setUint32(24, c.nInSignals, true);
|
||||||
buffV.setUint32(28, c.newThread ? 1 : 0, true);
|
buffV.setUint32(28, c.newThread ? 1 : 0, true);
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ function buildEntryTables(ctx) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.builder.addComponentEntriesTable(componentEntriesTableName, componentEntriesTable);
|
ctx.builder.addComponentEntriesTable(componentEntriesTableName, componentEntriesTable, i);
|
||||||
|
|
||||||
ctx.components[i].htName = htName;
|
ctx.components[i].htName = htName;
|
||||||
ctx.components[i].etName = componentEntriesTableName;
|
ctx.components[i].etName = componentEntriesTableName;
|
||||||
|
|||||||
Reference in New Issue
Block a user