Mercurial > hg > graal-jvmci-8
comparison src/share/vm/opto/memnode.cpp @ 7474:00af3a3a8df4
8005522: use fast-string instructions on x86 for zeroing
Summary: use 'rep stosb' instead of 'rep stosq' when fast-string operations are available.
Reviewed-by: twisti, roland
author | kvn |
---|---|
date | Thu, 03 Jan 2013 15:09:55 -0800 |
parents | d804e148cff8 |
children | b30b3c2a0cf2 |
comparison
equal
deleted
inserted
replaced
7473:d092d1b31229 | 7474:00af3a3a8df4 |
---|---|
2723 Node* shift = phase->intcon(exact_log2(unit)); | 2723 Node* shift = phase->intcon(exact_log2(unit)); |
2724 zbase = phase->transform( new(C) URShiftXNode(zbase, shift) ); | 2724 zbase = phase->transform( new(C) URShiftXNode(zbase, shift) ); |
2725 zend = phase->transform( new(C) URShiftXNode(zend, shift) ); | 2725 zend = phase->transform( new(C) URShiftXNode(zend, shift) ); |
2726 } | 2726 } |
2727 | 2727 |
2728 // Bulk clear double-words | |
2728 Node* zsize = phase->transform( new(C) SubXNode(zend, zbase) ); | 2729 Node* zsize = phase->transform( new(C) SubXNode(zend, zbase) ); |
2729 Node* zinit = phase->zerocon((unit == BytesPerLong) ? T_LONG : T_INT); | |
2730 | |
2731 // Bulk clear double-words | |
2732 Node* adr = phase->transform( new(C) AddPNode(dest, dest, start_offset) ); | 2730 Node* adr = phase->transform( new(C) AddPNode(dest, dest, start_offset) ); |
2733 mem = new (C) ClearArrayNode(ctl, mem, zsize, adr); | 2731 mem = new (C) ClearArrayNode(ctl, mem, zsize, adr); |
2734 return phase->transform(mem); | 2732 return phase->transform(mem); |
2735 } | 2733 } |
2736 | 2734 |