aboutsummaryrefslogtreecommitdiffstats
path: root/cfrontend/Cstrategy.v
diff options
context:
space:
mode:
authorValoran <valomay@protonmail.com>2023-04-05 19:37:20 +0200
committerGitHub <noreply@github.com>2023-04-05 19:37:20 +0200
commit358230d26eb5d29cb12c6c16e4e4f60117647a23 (patch)
tree47c7e4049fc5e3ab8916e3093d5bbf7c40663fad /cfrontend/Cstrategy.v
parentf4ddce910894bf6dbdf83c0642c4b275854b60dd (diff)
downloadcompcert-358230d26eb5d29cb12c6c16e4e4f60117647a23.tar.gz
compcert-358230d26eb5d29cb12c6c16e4e4f60117647a23.zip
Use a shorter insruction on x86 for loading unsigned 32-bit immediates into 64-bit registers.(#487)
Writing into a 32-bit register erases the upper 32 bits of a 64-bit register. This is the shortest instruction for loading unsigned 32-bit immediates. The length of those instructions is: - movl: 5 bytes - movq: 7 bytes - movabsq: 10 bytes Some assemblers will choose the proper instruction by themselves; the GNU assembler does not, apparently. So it's better to make the choice of instruction explicit.
Diffstat (limited to 'cfrontend/Cstrategy.v')
0 files changed, 0 insertions, 0 deletions