x86 instruction reordering for code compression

Runtime executable code compression is a method which uses standard data compression methods and binary machine code transformations to achieve smaller file size, yet maintaining the ability to execute the compressed file as a regular executable. With a disassembler, an almost perfect instructional...

Teljes leírás

Elmentve itt :
Bibliográfiai részletek
Szerző: Paroczi Zsombor
Dokumentumtípus: Cikk
Megjelent: 2013
Sorozat:Acta cybernetica 21 No. 1
Kulcsszavak:Számítástechnika, Kibernetika, Matematika
Tárgyszavak:
doi:10.14232/actacyb.21.1.2013.13

Online Access:http://acta.bibl.u-szeged.hu/30857
LEADER 01982nab a2200241 i 4500
001 acta30857
005 20220617154202.0
008 161017s2013 hu o 0|| eng d
022 |a 0324-721X 
024 7 |a 10.14232/actacyb.21.1.2013.13  |2 doi 
040 |a SZTE Egyetemi Kiadványok Repozitórium  |b hun 
041 |a eng 
100 1 |a Paroczi Zsombor 
245 1 0 |a x86 instruction reordering for code compression  |h [elektronikus dokumentum] /  |c  Paroczi Zsombor 
260 |c 2013 
300 |a 177-190 
490 0 |a Acta cybernetica  |v 21 No. 1 
520 3 |a Runtime executable code compression is a method which uses standard data compression methods and binary machine code transformations to achieve smaller file size, yet maintaining the ability to execute the compressed file as a regular executable. With a disassembler, an almost perfect instructional and functional level disassembly can be generated. Using the structural information of the compiled machine code each function can be split into so called basic blocks. In this work we show that reordering instructions within basic blocks using data flow constraints can improve code compression without changing the behavior of the code. We use two kinds of data affection (read, write) and 20 data types including registers: 8 basic x86 registers, 11 eflags, and memory data. Due to the complexity of the reordering, some simplification is required. Our solution is to search local optimum of the compression on the function level and then combine the results to get a suboptimal global result. Using the reordering method better results can be achieved, namely the compression size gain for gzip can be as high as 1.24%, for lzma 0.68% on the tested executables. 
650 4 |a Természettudományok 
650 4 |a Matematika 
650 4 |a Számítás- és információtudomány 
695 |a Számítástechnika, Kibernetika, Matematika 
856 4 0 |u http://acta.bibl.u-szeged.hu/30857/1/actacyb_21_1_2013_13.pdf  |z Dokumentum-elérés