-C Fix\sa\sproblem\spreventing\sresumption\sof\sRBU\soperations\safter\srecovering\sfrom\sa\nprocess\sor\ssystem\sfailure\sthat\soccurs\sduring\sthe\sincremental-checkpoint\sphase.
-D 2017-01-13T18:24:37.297
+C An\sexample\sshowing\show\sto\simprove\sperformance\sof\ssqlite3VdbeSerialPut()\nusing\sthe\sGCC\sintrinsic\sfunction\s__builtin_bswap64().
+D 2017-01-16T11:54:30.181
F Makefile.in 41bd4cad981487345c4a84081074bcdb876e4b2e
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
F Makefile.msc b8ca53350ae545e3562403d5da2a69cec79308da
F src/vdbe.h b0866e4191f096f1c987a84b042c3599bdf5423b
F src/vdbeInt.h 281cb70332dc8b593b8c7afe776f3a2ba7d4255e
F src/vdbeapi.c d6ebaa465f070eb1af8ba4e7b34583ece87bdd24
-F src/vdbeaux.c 35c9a9908174e5a26c96d15e1f98214814a39147
+F src/vdbeaux.c 54442bffd753cfc400feee9a7e7e689df51016fb
F src/vdbeblob.c f4f98ea672b242f807c08c92c7faaa79e5091b65
F src/vdbemem.c 3b5a9a5b375458d3e12a50ae1aaa41eeec2175fd
F src/vdbesort.c eda25cb2d1727efca6f7862fea32b8aa33c0face
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 8c85b8fdd7f0ba65fba83361d361a567b797a184
-R dc62936e86267740ae9736f88160b05f
-U dan
-Z f2366ce5ecd39574b5b5eb81b3b99a63
+P 97914266cb4ec63b0c9185ab139673139bd2f0ed
+R c4f7e9fcfe4c1d83ea6964cbcf99c043
+T *branch * builtin-bswap64
+T *sym-builtin-bswap64 *
+T -sym-trunk *
+U drh
+Z cb7b2935a5bb1b1c67b24a56ddd75f5f
*/
u32 sqlite3VdbeSerialPut(u8 *buf, Mem *pMem, u32 serial_type){
u32 len;
-
- /* Integer and Real */
- if( serial_type<=7 && serial_type>0 ){
- u64 v;
- u32 i;
- if( serial_type==7 ){
- assert( sizeof(v)==sizeof(pMem->u.r) );
- memcpy(&v, &pMem->u.r, sizeof(v));
- swapMixedEndianFloat(v);
- }else{
- v = pMem->u.i;
- }
- len = i = sqlite3SmallTypeSizes[serial_type];
- assert( i>0 );
- do{
- buf[--i] = (u8)(v&0xFF);
- v >>= 8;
- }while( i );
- return len;
- }
+ u64 v;
+ u32 i;
/* String or blob */
if( serial_type>=12 ){
return len;
}
- /* NULL or constants 0 or 1 */
- return 0;
+ /* Integer and Real */
+ if( serial_type==7 ){
+ assert( sizeof(v)==sizeof(pMem->u.r) );
+ memcpy(&v, &pMem->u.r, sizeof(v));
+ swapMixedEndianFloat(v);
+ }else{
+ v = pMem->u.i;
+ }
+ len = i = sqlite3SmallTypeSizes[serial_type];
+ v = __builtin_bswap64(v);
+ memcpy(buf, &((char*)&v)[8-i], i);
+ return len;
}
/* Input "x" is a sequence of unsigned characters that represent a