projects
/
uebersetzerbau-ss10.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
97454f9
)
asmb: 0 geht auch anders... ;)
author
Bernhard Urban
<lewurm@gmail.com>
Sun, 14 Mar 2010 18:09:47 +0000
(19:09 +0100)
committer
Bernhard Urban
<lewurm@gmail.com>
Sun, 14 Mar 2010 18:09:47 +0000
(19:09 +0100)
asmb/asmb.s
patch
|
blob
|
history
diff --git
a/asmb/asmb.s
b/asmb/asmb.s
index 101ed4199cd4ac1658806de298dbd5f96a556a5f..027a99931de03b05994c876963455d8e1fa7c3b4 100644
(file)
--- a/
asmb/asmb.s
+++ b/
asmb/asmb.s
@@
-13,6
+13,10
@@
constc0:
.rept 16
.byte 0xc0
.endr
.rept 16
.byte 0xc0
.endr
+const00:
+ .rept 16
+ .byte 0x00
+ .endr
.text
.globl asmb
.text
.globl asmb
@@
-21,9
+25,6
@@
asmb:
.LFB2:
xor %rdx, %rdx
.LFB2:
xor %rdx, %rdx
- //soll einfach null sein
- pxor %xmm14, %xmm14
-
.nextround:
//speicheradresse des pointers zeigt auf 16*8 feld = 128bit
movdqu (%rdi, %rdx, 8), %xmm11
.nextround:
//speicheradresse des pointers zeigt auf 16*8 feld = 128bit
movdqu (%rdi, %rdx, 8), %xmm11
@@
-48,7
+49,7
@@
asmb:
movdqu %xmm11, (%rdi, %rdx, 8)
//entspricht ein byte dem nullbyte dann steht an jener stelle 0xff sonst 0x00
movdqu %xmm11, (%rdi, %rdx, 8)
//entspricht ein byte dem nullbyte dann steht an jener stelle 0xff sonst 0x00
- pcmpeqb
%xmm14
, %xmm11
+ pcmpeqb
const00
, %xmm11
//hol die MSBs aller bytes raus
pmovmskb %xmm11, %ecx
add $2, %rdx
//hol die MSBs aller bytes raus
pmovmskb %xmm11, %ecx
add $2, %rdx