... | ... | @@ -143,9 +143,9 @@ Core子电路的执行状态中,遇到和copy相关的状态,做法如下。 |
|
|
|
|
|
### CODECOPY, EXTCODECOPY
|
|
|
|
|
|
此指令遇到位数不足时,会填充0。因此,在得到 offset length dst_offset (这三个数从栈获得)后,需要判断是否需要填充,会得到两个length:normal_length, zero_length。从core进行两个copy的lookup。一个的src type是bytecode,另一个的src type是zero。这两个copy的lookup的排布,可以在cnt=2行的前9个格子和次9个格子。对于每个copy的lookup,用门约束约束其各个位置的值,然后用lookup约束从core向copy去查找表即可。
|
|
|
此指令遇到位数不足时,会填充0。因此,在得到 offset length dst_offset (这三个数从栈获得)后,通过Arithmetic子电路的Normallength来判断是否需要填充,向Normallength传入三个值:length,offset,data_size,会得到两个length:normal_length, zero_length(即padding的length),通过lookup来约束normal_length和zero_length。
|
|
|
|
|
|
> 判断是否需要填充可以放到Arithmetic子电路里,通过lookup去获得normal_length, zero_length。
|
|
|
从core进行两个copy的lookup。一个的src type是bytecode,另一个的src type是zero。这两个copy的lookup的排布,可以在cnt=2行的前9个格子和次9个格子。对于每个copy的lookup,用门约束约束其各个位置的值,然后用lookup约束从core向copy去查找表即可。
|
|
|
|
|
|
### CALLDATACOPY
|
|
|
|
... | ... | |