~ubuntu-branches/ubuntu/karmic/pulseaudio/karmic-updates

« back to all changes in this revision

Viewing changes to src/pulsecore/svolume_mmx.c

  • Committer: Bazaar Package Importer
  • Author(s): Luke Yelavich, Daniel T Chen, Luke Yelavich
  • Date: 2009-09-21 10:28:25 UTC
  • mfrom: (1.14.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20090921102825-dn0svrgwo8w19bc8
Tags: 1:0.9.18-0ubuntu1
[ Daniel T Chen ]
* New upstream bugfix release
* debian/patches/:
  - 0052-backport-56b6e18030.patch: Drop
  - 0053-fix-output-element.patch: Drop, applied upstream
  - 0090-use-volume-ignore-for-analog-output.patch: Stop applying
    this patch. Too many people are confused as to why PCM isn't
    being changed when they adjust PA's volume.
  + 0060-backport-c194d.patch: Backport fixes from 0.9.18-stable
    branch (to changeset c194db71b0ff853b4f46df26e135edf63b215451)
  + 0090-disable-flat-volumes.patch: Many people seem uncomfortable
    with PA's new default volume adjustment routine, so disable it
    in favour of the existing behaviour known in previous Ubuntu
    releases. The downside is that the user again has many knobs to
    fiddle; the upside is that applications can no longer drop the
    volume floor. This addresses LP: #403859, #433209.

[ Luke Yelavich ]
* debian/pulse-alsa.conf: Expose the pulse device to the ALSA name hint API.
  Thanks to David Henningsson <launchpad.web@epost.diwic.se> for the patch.
* Add epoch to shlibs version definitions.

Show diffs side-by-side

added added

removed removed

Lines of Context:
57
57
      " punpcklwd %%mm4, "#s"        \n\t" /* .. |    0  |   p0  | */                   \
58
58
      " pcmpgtw "#v", %%mm4          \n\t" /* .. |    0  | s(vl) | */                   \
59
59
      " pand "#s", %%mm4             \n\t" /* .. |    0  |  (p0) |  (vl >> 15) & p */   \
60
 
      " movq %%mm6, %%mm5            \n\t" /* .. |  ffff |   0   | */                   \
61
 
      " pand "#v", %%mm5             \n\t" /* .. |   vh  |   0   | */                   \
62
 
      " por %%mm5, %%mm4             \n\t" /* .. |   vh  |  (p0) | */                   \
63
 
      " pmulhw "#s", "#v"            \n\t" /* .. |    0  | vl*p0 | */                   \
64
 
      " paddw %%mm4, "#v"            \n\t" /* .. |   vh  | vl*p0 | vh + sign correct */ \
65
 
      " pslld $16, "#s"              \n\t" /* .. |   p0  |    0  | */                   \
66
 
      " por %%mm7, "#s"              \n\t" /* .. |   p0  |    1  | */                   \
67
 
      " pmaddwd "#s", "#v"           \n\t" /* .. |    p0 * v0    | */                   \
 
60
      " movq "#s", %%mm5             \n\t"                                              \
 
61
      " pmulhw "#v", "#s"            \n\t" /* .. |    0  | vl*p0 | */                   \
 
62
      " paddw %%mm4, "#s"            \n\t" /* .. |    0  | vl*p0 | + sign correct */    \
 
63
      " psrld $16, "#v"              \n\t" /* .. |    0  |   vh  | */                   \
 
64
      " pmaddwd %%mm5, "#v"          \n\t" /* .. |    p0 * vh    | */                   \
 
65
      " paddd "#s", "#v"             \n\t" /* .. |    p0 * v0    | */                   \
68
66
      " packssdw "#v", "#v"          \n\t" /* .. | p1*v1 | p0*v0 | */
69
67
 
70
68
/* approximately advances %3 = (%3 + a) % b. This function requires that
105
103
    __asm__ __volatile__ (
106
104
        " xor %3, %3                    \n\t"
107
105
        " sar $1, %2                    \n\t" /* length /= sizeof (int16_t) */
108
 
        " pcmpeqw %%mm6, %%mm6          \n\t" /* .. |  ffff |  ffff | */
109
 
        " pcmpeqw %%mm7, %%mm7          \n\t" /* .. |  ffff |  ffff | */
110
 
        " pslld  $16, %%mm6             \n\t" /* .. |  ffff |     0 | */
111
 
        " psrld  $31, %%mm7             \n\t" /* .. |     0 |     1 | */
112
106
 
113
107
        " test $1, %2                   \n\t" /* check for odd samples */
114
108
        " je 2f                         \n\t"