| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes a regression that was created by
75e478abdf336bbdc1b00e2ca4f5293d5455a0cb.
That broke accessibility on 64 bit windows, since lParam can both be
0x00000000fffffffc and 0xfffffffffffffffc.
However, MSDN explicitly says that lParam should be casted to a DWORD,
which would result in (an unsigned) 0xfffffffc in both cases. This can
then be compared to OBJID_CLIENT (defined to ((LONG)0xFFFFFFFC).
Reviewed-by: Prasanth Ullattil
|
|
|
|
|
|
|
|
|
| |
This was probably caused by the fact that the only spinbox
visible in the main control panel has an inactive frame border.
In XCode 4, however the spin buttons are generally attached
to an active lineedit frame, so we change the default for 4.8.
Reviewed-by: gabriel
|
|
|
|
| |
I changed a string by accident.
|
|
|
|
|
|
|
| |
If the macro is set, we should not use cocoa exceptions either, as
this causes compile failures
Rev-By: jbache
|
|\ |
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
master-integration
* 'master' of scm.dev.nokia.troll.no:qt/oslo-staging-1: (48 commits)
Remove the use of the QtTest baseline feature I reverted
Revert "Add a feature to QTestLib to correct benchmark results."
Use the ARM version of UTF-8 detection in the Neon code
Update the data files for the QString benchmark test
Fix a bug in the SSE2 UTF-8 decoder.
Add ARM Neon versions of fromLatin1 and fromUtf8
Make this compile on Atom/Core2 (no SSE4) and on ARM (no SSE)
Add baselines and zeros to the benchmarks.
Add an UTF-8 conversion on trusted data and no BOM.
Make it easier to write a UTF-8 conversion on trusted data
Add the missing tests and 4-byte UTF-8 sequences
Improve the code and avoid unnecessary stores
Add an UTF-8 conversion optimised for ASCII using SSE2
Add an UTF-8 conversion code that is optimised for ASCII
Add a stateless copy of the Qt 4.7 UTF-8 codec.
Add UTF-8 code benchmarks
Improve a little more the core loop and propagate to the other code
Reduce the number of operations in the main loop
Add an SSE4 version using PMOVZXBW and PSRLDQ
Attempt to improve the epilog code
...
|
| | | |
|
| | |
| | |
| | |
| | | |
This reverts commit 3cc83349d9a07bcb7ae9c338bfdc355905a5a2f1.
|
| | | |
|
| | |
| | |
| | |
| | | |
Also add the Neon build flags
|
| | |
| | |
| | |
| | |
| | | |
If the multibyte sequence crossed the end of the SSE2 area, then len
would have a wrong value and the data wouldn't be read.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The fromLatin1 code is very simple, yet the handwritten assembly
performs better due to the use of post-increments.
The fromUtf8 code has two alternatives. Neon lacks an instruction
similar to SSE2's _mm_movemask_epi8 (PMOVMSKB) which extracts one bit
from each byte and stores it in a register. We used that in the UTF-8
code to detect bytes with the highest bit set. To compensate, we used
two alternatives:
1) AND the comparison result with a vector containing {128, 64, ...,1 }
Do 3 parallel-adds (VPADD.I8), which will make the mask propagate
to the lowest component in the vector.
Trick found in: http://hilbert-space.de/?p=22 (comment 16-17)
2) Extract the two words from the doubleword Neon register and do the
work in ARM assembly.
It looks like the latter version is performing better.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
This assumes that there are no overlong sequences, no continuation
characters without the leading, no missing continuations and no BOM.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
If there's an UTF-8 high byte in the first 8 bytes, don't
try to save the latter 8 characters
|
| | |
| | |
| | |
| | |
| | | |
This code is 2x faster than the original UTF-8 code and within 35% of
the pure Latin1 code
|
| | |
| | |
| | |
| | | |
This code is ~1.5x faster than the original UTF-8 code
|
| | |
| | |
| | |
| | | |
For whatever reason, this code is worse than the stateful code...
|
| | |
| | |
| | |
| | |
| | |
| | | |
Also compare to the Latin1 functions. The UTF-8 algorithm in
Qt 4.7 right now is 109% slower than the unoptimised Latin-1
algo, 120% than the Qt 4.7 SSE2 code
|
| | |
| | |
| | |
| | |
| | |
| | | |
Currently are that the "improved SSE2" version and the SSE4.1 version
are yielding the best results, within 1% of each other. These results
are around 20% better than the Qt 4.7 code.
|
| | |
| | |
| | |
| | |
| | |
| | | |
The more operations there are, the more time it takes. More
importantly, the more variables we touch, the more the compiler may
want to use the stack instead of registers.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Two special values are added to the measurement of benchmarks: a zero
and a comparison. The "zero" value is to be used when the test incurs
a non-negligible overhead just to run. The benchmark author should add
an "empty" run that measures basically the overhead and set it to
attribute QTest::Zero.
The "zero" value will be subtracted from any benchmark measurements
before reporting (currently the plain logger only). Note that all
benchmark types don't make sense, notably those already measurement
some kind of rate, like frames per second and bytes per second.
The "baseline" value is the comparison (with the "zero"
subtracted"). When the baseline is set, the library will instead
report the ratio between the benchmark and the baseline, in percentage
or a multiple (e.g. "75%" [of the time] or "10.0x" [faster]).
Adding measurements in "robes" left for future improvement.
This feature is not reviewed and will be reverted later.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
Reviewed-by: Trust Me
|
| | | |
|
| | |
| | |
| | |
| | | |
Reviewed-by: Markus Goetz
|
| | |
| | |
| | |
| | | |
Reviewed-by: Friedemann Kleint
|