1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-14 00:22:38 +03:00

Additional comments ono the SQLITE_MIXED_ENDIAN_64BIT_FLOAT issue. (CVS 4029)

FossilOrigin-Name: dd48a31e671de09f59661b2ba1a20e7b9f09099a
This commit is contained in:
drh
2007-05-23 07:20:08 +00:00
parent 50027d1c0c
commit 7a4f5023a4
3 changed files with 23 additions and 9 deletions

View File

@@ -1,5 +1,5 @@
C Make\ssure\szeroblob()\sworks\swith\sthe\sconcatenation\soperator.\s\sTicket\s#2379.\s(CVS\s4028) C Additional\scomments\sono\sthe\sSQLITE_MIXED_ENDIAN_64BIT_FLOAT\sissue.\s(CVS\s4029)
D 2007-05-23T06:31:39 D 2007-05-23T07:20:09
F Makefile.in a42354804b50c2708ce72cf79e4daa30f50191b5 F Makefile.in a42354804b50c2708ce72cf79e4daa30f50191b5
F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935 F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -137,7 +137,7 @@ F src/vdbe.c 74a82e8dc0cd84416fcca63d158c5ab8715f158d
F src/vdbe.h 001c5b257567c1d3de7feb2203aac71d0d7b16a3 F src/vdbe.h 001c5b257567c1d3de7feb2203aac71d0d7b16a3
F src/vdbeInt.h 7d2bf163d6d4e815724a457f2216dd8e38c3955c F src/vdbeInt.h 7d2bf163d6d4e815724a457f2216dd8e38c3955c
F src/vdbeapi.c f89d6bc5264e66f44589e454fbeeee96854d0dd3 F src/vdbeapi.c f89d6bc5264e66f44589e454fbeeee96854d0dd3
F src/vdbeaux.c 47f483c35c27dc0806715182ef6b281320c4b9b5 F src/vdbeaux.c a978d170b2ca99c8ff3da8a91f116a66da2600ac
F src/vdbeblob.c 96f3572fdc45eda5be06e6372b612bc30742d9f0 F src/vdbeblob.c 96f3572fdc45eda5be06e6372b612bc30742d9f0
F src/vdbefifo.c 3ca8049c561d5d67cbcb94dc909ae9bb68c0bf8f F src/vdbefifo.c 3ca8049c561d5d67cbcb94dc909ae9bb68c0bf8f
F src/vdbemem.c 332875a5fc9ac482e00701db5487ceb7f6fc1adc F src/vdbemem.c 332875a5fc9ac482e00701db5487ceb7f6fc1adc
@@ -494,7 +494,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5 F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
P f3c3412afa95e7e4b2e6477718785b51f5352c39 P 6e19ef758207cedd6db8b2796ef5d4d688cc0b62
R be1ade13052f97e4c5360ea8823361db R 5b955388b5718234e99bb751cff2d291
U drh U drh
Z acf5b62f956d717ae98df8f752c497d0 Z eaf7c05ab3e15bb90bfa5a13a327e560

View File

@@ -1 +1 @@
6e19ef758207cedd6db8b2796ef5d4d688cc0b62 dd48a31e671de09f59661b2ba1a20e7b9f09099a

View File

@@ -1773,10 +1773,24 @@ int sqlite3VdbeSerialTypeLen(u32 serial_type){
/* /*
** If we are on an architecture with mixed-endian floating ** If we are on an architecture with mixed-endian floating
*** points (ex: ARM7) then swap the lower 4 bytes with the ** points (ex: ARM7) then swap the lower 4 bytes with the
** upper 4 bytes. Return the result. ** upper 4 bytes. Return the result.
** **
** For most (sane) architectures, this is a no-op. ** For most architectures, this is a no-op.
**
** (later): It is reported to me that the mixed-endian problem
** on ARM7 is an issue with GCC, not with the ARM7 chip. It seems
** that early versions of GCC stored the two words of a 64-bit
** float in the wrong order. And that error has been propagated
** ever since. The blame is not necessarily with GCC, though.
** GCC might have just copying the problem from a prior compiler.
** I am also told that newer versions of GCC that follow a different
** ABI get the byte order right.
**
** Developers using SQLite on an ARM7 should compile and run their
** application using -DSQLITE_DEBUG=1 at least once. With DEBUG
** enabled, some asserts below will ensure that the byte order of
** floating point values is correct.
*/ */
#ifdef SQLITE_MIXED_ENDIAN_64BIT_FLOAT #ifdef SQLITE_MIXED_ENDIAN_64BIT_FLOAT
static double floatSwap(double in){ static double floatSwap(double in){