https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119455
Robert Dubner <rdubner at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|ASSIGNED |RESOLVED
--- Comment #9 from Robert Dubner <rdubner at gcc dot gnu.org> ---
A -O0 compilation of this code:
working-storage section.
01 x1 pic x(1).
01 x2 pic x(2).
01 x3 pic x(3).
01 x4 pic x(4).
01 x5 pic x(5).
01 x64 pic x(64).
procedure division.
continue
move "1" to x1
move "12" to x2
move "123" to x3
move "1234" to x4
move "12345" to x5
move "These are the first 33 characters" to x64
now generates this machine language:
12:playpen.cbl **** move "1" to x1
466 0330 488B0500 movq x1.73.0(%rip), %rax
467 0337 C60031 movb $49, (%rax)
13:playpen.cbl **** move "12" to x2
469 033a 488B0500 movq x2.74.0(%rip), %rax
470 0341 66C70031 movw $12849, (%rax)
14:playpen.cbl **** move "123" to x3
472 0346 488B0500 movq x3.75.0(%rip), %rax
473 034d 66C70031 movw $12849, (%rax)
474 0352 C6400233 movb $51, 2(%rax)
15:playpen.cbl **** move "1234" to x4
476 0356 488B0500 movq x4.76.0(%rip), %rax
477 035d C7003132 movl $875770417, (%rax)
16:playpen.cbl **** move "12345" to x5
479 0363 488B0500 movq x5.77.0(%rip), %rax
480 036a C7003132 movl $875770417, (%rax)
481 0370 C6400435 movb $53, 4(%rax)
17:playpen.cbl **** move "These are the first 33 characters" to
x64
483 0374 488B0500 movq x64.78.0(%rip), %rax
484 037b 48B95468 movabsq $8241904413164529748, %rcx
485 0385 48BB6520 movabsq $7594793441523146853, %rbx
486 038f 488908 movq %rcx, (%rax)
487 0392 48895808 movq %rbx, 8(%rax)
488 0396 48B97273 movabsq $7142765303690457970, %rcx
489 03a0 48BB6861 movabsq $8243122663157031272, %rbx
490 03aa 48894810 movq %rcx, 16(%rax)
491 03ae 48895818 movq %rbx, 24(%rax)
492 03b2 48B97320 movabsq $2314885530818453619, %rcx
493 03bc 48BB2020 movabsq $2314885530818453536, %rbx
494 03c6 48894820 movq %rcx, 32(%rax)
495 03ca 48895828 movq %rbx, 40(%rax)
496 03ce 48B92020 movabsq $2314885530818453536, %rcx
497 03d8 4889CB movq %rcx, %rbx
498 03db 48894830 movq %rcx, 48(%rax)
499 03df 48895838 movq %rbx, 56(%rax)
18:playpen.cbl **** goback.
I am declaring victory and moving on.