<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Tianocore/edk2.git/MdePkg/Library/BaseMemoryLibSse2/X64, branch master</title>
<subtitle>EDK II (mirror)</subtitle>
<id>https://git.radix-linux.su/Tianocore/edk2.git/atom?h=master</id>
<link rel='self' href='https://git.radix-linux.su/Tianocore/edk2.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/'/>
<updated>2020-10-16T01:12:05+00:00</updated>
<entry>
<title>BaseMemoryLibSse2: Take advantage of write combining buffers</title>
<updated>2020-10-16T01:12:05+00:00</updated>
<author>
<name>Compostella, Jeremy</name>
<email>jeremy.compostella@intel.com</email>
</author>
<published>2020-10-09T20:42:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=d25fd8710d6c8fc11582210fb1f8480c0d98416b'/>
<id>urn:sha1:d25fd8710d6c8fc11582210fb1f8480c0d98416b</id>
<content type='text'>
The current SSE2 implementation of the ZeroMem(), SetMem(),
SetMem16(), SetMem32 and SetMem64 functions is writing 16 bytes per 16
bytes. It hurts the performances so bad that this is even slower than
a simple 'rep stos' (4% slower) in regular DRAM.

To take full advantages of the 'movntdq' instruction it is better to
"queue" a total of 64 bytes in the write combining buffers.  This
patch implement such a change.  Below is a table where I measured
(with 'rdtsc') the time to write an entire 100MB RAM buffer. These
functions operate almost two times faster.

| Function | Arch | Untouched | 64 bytes | Result |
|----------+------+-----------+----------+--------|
| ZeroMem  | Ia32 |  17765947 |  9136062 | 1.945x |
| ZeroMem  | X64  |  17525170 |  9233391 | 1.898x |
| SetMem   | Ia32 |  17522291 |  9137272 | 1.918x |
| SetMem   | X64  |  17949261 |  9176978 | 1.956x |
| SetMem16 | Ia32 |  18219673 |  9372062 | 1.944x |
| SetMem16 | X64  |  17523331 |  9275184 | 1.889x |
| SetMem32 | Ia32 |  18495036 |  9273053 | 1.994x |
| SetMem32 | X64  |  17368864 |  9285885 | 1.870x |
| SetMem64 | Ia32 |  18564473 |  9241362 | 2.009x |
| SetMem64 | X64  |  17506951 |  9280148 | 1.886x |

Signed-off-by: Jeremy Compostella &lt;jeremy.compostella@intel.com&gt;
Reviewed-by: Liming Gao &lt;gaoliming@byosoft.com.cn&gt;
</content>
</entry>
<entry>
<title>MdePkg: Replace BSD License with BSD+Patent License</title>
<updated>2019-04-09T17:58:13+00:00</updated>
<author>
<name>Michael D Kinney</name>
<email>michael.d.kinney@intel.com</email>
</author>
<published>2019-04-03T23:06:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=9344f0921518309295da89c221d10cbead8531aa'/>
<id>urn:sha1:9344f0921518309295da89c221d10cbead8531aa</id>
<content type='text'>
https://bugzilla.tianocore.org/show_bug.cgi?id=1373

Replace BSD 2-Clause License with BSD+Patent License.  This change is
based on the following emails:

  https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html
  https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html

RFCs with detailed process for the license change:

  V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html
  V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html
  V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
Reviewed-by: Liming Gao &lt;liming.gao@intel.com&gt;
</content>
</entry>
<entry>
<title>MdePkg/BaseMemoryLibSse2: Remove .S files for IA32 and X64 arch</title>
<updated>2019-04-03T05:27:44+00:00</updated>
<author>
<name>Shenglei Zhang</name>
<email>shenglei.zhang@intel.com</email>
</author>
<published>2019-03-07T01:10:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=94cf7d235a484f34cc112f92e91ff7540980eb03'/>
<id>urn:sha1:94cf7d235a484f34cc112f92e91ff7540980eb03</id>
<content type='text'>
.nasm file has been added for X86 arch. .S assembly code
is not required any more.
https://bugzilla.tianocore.org/show_bug.cgi?id=1594

Cc: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
Cc: Liming Gao &lt;liming.gao@intel.com&gt;
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Shenglei Zhang &lt;shenglei.zhang@intel.com&gt;
Reviewed-by: Liming Gao &lt;liming.gao@intel.com&gt;
</content>
</entry>
<entry>
<title>MdePkg: Clean up source files</title>
<updated>2018-06-28T03:19:47+00:00</updated>
<author>
<name>Liming Gao</name>
<email>liming.gao@intel.com</email>
</author>
<published>2018-06-27T13:11:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=9095d37b8fe5bfc3d02adad6ba7fd7359ebc0107'/>
<id>urn:sha1:9095d37b8fe5bfc3d02adad6ba7fd7359ebc0107</id>
<content type='text'>
1. Do not use tab characters
2. No trailing white space in one line
3. All files must end with CRLF

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao &lt;liming.gao@intel.com&gt;
</content>
</entry>
<entry>
<title>MdePkg: Remove X86 ASM and S files</title>
<updated>2018-06-07T07:26:27+00:00</updated>
<author>
<name>Liming Gao</name>
<email>liming.gao@intel.com</email>
</author>
<published>2018-06-04T05:26:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=13688930ae9ad5101f10d28f650382058e449616'/>
<id>urn:sha1:13688930ae9ad5101f10d28f650382058e449616</id>
<content type='text'>
NASM has replaced ASM and S files.
1. Remove ASM from all modules.
2. Remove S files from the drivers only.
3. https://bugzilla.tianocore.org/show_bug.cgi?id=881
After NASM is updated, S files can be removed from Library.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao &lt;liming.gao@intel.com&gt;
Reviewed-by: Michael Kinney &lt;michael.d.kinney@intel.com&gt;
</content>
</entry>
<entry>
<title>MdePkg BaseMemoryLibSse2: Add SSE2 implementation of API IsZeroBuffer()</title>
<updated>2016-08-22T10:54:31+00:00</updated>
<author>
<name>Hao Wu</name>
<email>hao.a.wu@intel.com</email>
</author>
<published>2016-08-17T06:27:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=102b4c7cdd11172d5b7fde35a0c472ecd7fa49e7'/>
<id>urn:sha1:102b4c7cdd11172d5b7fde35a0c472ecd7fa49e7</id>
<content type='text'>
Add the implementation of API IsZeroBuffer() via assembly in
BaseMemoryLibSse2.

The assembly codes use SSE2 XMM registers and related instructions.

Cc: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
Cc: Liming Gao &lt;liming.gao@intel.com&gt;
Cc: Jiewen Yao &lt;jiewen.yao@intel.com&gt;
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu &lt;hao.a.wu@intel.com&gt;
Reviewed-by: Liming Gao &lt;liming.gao@intel.com&gt;
</content>
</entry>
<entry>
<title>MdePkg BaseMemoryLibSse2: Convert X64/CopyMem.asm to NASM</title>
<updated>2016-06-28T01:51:42+00:00</updated>
<author>
<name>Jordan Justen</name>
<email>jordan.l.justen@intel.com</email>
</author>
<published>2016-05-31T01:52:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=9987eaeab950c792dca953c62fe7a54c0519798a'/>
<id>urn:sha1:9987eaeab950c792dca953c62fe7a54c0519798a</id>
<content type='text'>
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
X64/CopyMem.asm to X64/CopyMem.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen &lt;jordan.l.justen@intel.com&gt;
</content>
</entry>
<entry>
<title>MdePkg BaseMemoryLibSse2: Convert X64/SetMem.asm to NASM</title>
<updated>2016-06-28T01:51:41+00:00</updated>
<author>
<name>Jordan Justen</name>
<email>jordan.l.justen@intel.com</email>
</author>
<published>2016-05-31T01:52:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=e8758b6af084b19fd7df95653f62ae6c3188f08c'/>
<id>urn:sha1:e8758b6af084b19fd7df95653f62ae6c3188f08c</id>
<content type='text'>
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
X64/SetMem.asm to X64/SetMem.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen &lt;jordan.l.justen@intel.com&gt;
</content>
</entry>
<entry>
<title>MdePkg BaseMemoryLibSse2: Convert X64/SetMem16.asm to NASM</title>
<updated>2016-06-28T01:51:40+00:00</updated>
<author>
<name>Jordan Justen</name>
<email>jordan.l.justen@intel.com</email>
</author>
<published>2016-05-31T01:52:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=e53526ca990de75ee1895bae438f40f368c6b392'/>
<id>urn:sha1:e53526ca990de75ee1895bae438f40f368c6b392</id>
<content type='text'>
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
X64/SetMem16.asm to X64/SetMem16.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen &lt;jordan.l.justen@intel.com&gt;
</content>
</entry>
<entry>
<title>MdePkg BaseMemoryLibSse2: Convert X64/SetMem32.asm to NASM</title>
<updated>2016-06-28T01:51:39+00:00</updated>
<author>
<name>Jordan Justen</name>
<email>jordan.l.justen@intel.com</email>
</author>
<published>2016-05-31T01:52:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=1380b8d060015e4277d0e492dd339b0acf8d05a9'/>
<id>urn:sha1:1380b8d060015e4277d0e492dd339b0acf8d05a9</id>
<content type='text'>
The BaseTools/Scripts/ConvertMasmToNasm.py script was used to convert
X64/SetMem32.asm to X64/SetMem32.nasm

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen &lt;jordan.l.justen@intel.com&gt;
</content>
</entry>
</feed>
