Showing with 16 additions and 25 deletions.
  1. +10 −25 src/rt/arraybyte.d
  2. +6 −0 win32.mak
35 changes: 10 additions & 25 deletions src/rt/arraybyte.d
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,7 @@ body
{
auto n = aptr + (a.length & ~63);

uint l = cast(ubyte) value;
l |= (l << 8);
l |= (l << 16);
uint l = cast(ubyte)value * 0x01010101;

if (((cast(uint) aptr | cast(uint) bptr) & 15) != 0)
{
Expand Down Expand Up @@ -164,8 +162,7 @@ body
{
auto n = aptr + (a.length & ~31);

uint l = cast(ubyte) value;
l |= (l << 8);
uint l = cast(ubyte)value * 0x0101;

asm
{
Expand Down Expand Up @@ -523,9 +520,7 @@ T[] _arrayExpSliceAddass_g(T[] a, T value)
{
auto n = aptr + (a.length & ~63);

uint l = cast(ubyte) value;
l |= (l << 8);
l |= (l << 16);
uint l = cast(ubyte)value * 0x01010101;

if (((cast(uint) aptr) & 15) != 0)
{
Expand Down Expand Up @@ -595,8 +590,7 @@ T[] _arrayExpSliceAddass_g(T[] a, T value)

auto n = aptr + (a.length & ~31);

uint l = cast(ubyte) value;
l |= (l << 8);
uint l = cast(ubyte)value * 0x0101;

asm
{
Expand Down Expand Up @@ -910,9 +904,7 @@ body
{
auto n = aptr + (a.length & ~63);

uint l = cast(ubyte) value;
l |= (l << 8);
l |= (l << 16);
uint l = cast(ubyte)value * 0x01010101;

if (((cast(uint) aptr | cast(uint) bptr) & 15) != 0)
{
Expand Down Expand Up @@ -987,8 +979,7 @@ body
{
auto n = aptr + (a.length & ~31);

uint l = cast(ubyte) value;
l |= (l << 8);
uint l = cast(ubyte)value * 0x0101;

asm
{
Expand Down Expand Up @@ -1138,9 +1129,7 @@ body
{
auto n = aptr + (a.length & ~63);

uint l = cast(ubyte) value;
l |= (l << 8);
l |= (l << 16);
uint l = cast(ubyte)value * 0x01010101;

if (((cast(uint) aptr | cast(uint) bptr) & 15) != 0)
{
Expand Down Expand Up @@ -1223,8 +1212,7 @@ body
{
auto n = aptr + (a.length & ~31);

uint l = cast(ubyte) value;
l |= (l << 8);
uint l = cast(ubyte)value * 0x0101;

asm
{
Expand Down Expand Up @@ -1547,9 +1535,7 @@ T[] _arrayExpSliceMinass_g(T[] a, T value)
{
auto n = aptr + (a.length & ~63);

uint l = cast(ubyte) value;
l |= (l << 8);
l |= (l << 16);
uint l = cast(ubyte)value * 0x01010101;

if (((cast(uint) aptr) & 15) != 0)
{
Expand Down Expand Up @@ -1619,8 +1605,7 @@ T[] _arrayExpSliceMinass_g(T[] a, T value)

auto n = aptr + (a.length & ~31);

uint l = cast(ubyte) value;
l |= (l << 8);
uint l = cast(ubyte)value * 0x0101;

asm
{
Expand Down
6 changes: 6 additions & 0 deletions win32.mak
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ MANIFEST= \
src\core\sync\rwmutex.d \
src\core\sync\semaphore.d \
\
src\core\sys\osx\pthread.d \
src\core\sys\osx\mach\dyld.d \
src\core\sys\osx\mach\getsect.d \
src\core\sys\osx\mach\kern_return.d \
Expand Down Expand Up @@ -117,6 +118,7 @@ MANIFEST= \
src\core\sys\posix\sys\time.d \
src\core\sys\posix\sys\types.d \
src\core\sys\posix\sys\uio.d \
src\core\sys\posix\sys\un.d \
src\core\sys\posix\sys\wait.d \
\
src\core\sys\windows\dbghelp.d \
Expand Down Expand Up @@ -452,6 +454,7 @@ IMPORTS=\
$(IMPDIR)\core\sys\posix\sys\time.di \
$(IMPDIR)\core\sys\posix\sys\types.di \
$(IMPDIR)\core\sys\posix\sys\uio.di \
$(IMPDIR)\core\sys\posix\sys\un.di \
$(IMPDIR)\core\sys\posix\sys\wait.di \
\
$(IMPDIR)\core\sys\windows\dbghelp.di \
Expand Down Expand Up @@ -738,6 +741,9 @@ $(IMPDIR)\core\sys\posix\sys\types.di : src\core\sys\posix\sys\types.d
$(IMPDIR)\core\sys\posix\sys\uio.di : src\core\sys\posix\sys\uio.d
$(DMD) -c -d -o- -Isrc -Iimport -Hf$@ $**

$(IMPDIR)\core\sys\posix\sys\un.di : src\core\sys\posix\sys\un.d
$(DMD) -c -d -o- -Isrc -Iimport -Hf$@ $**

$(IMPDIR)\core\sys\posix\sys\wait.di : src\core\sys\posix\sys\wait.d
$(DMD) -c -d -o- -Isrc -Iimport -Hf$@ $**

Expand Down