blob: 39c8646265256c3c4250da325977dc845d90e178 [file] [log] [blame]
; Test border-cases for relaxation of pc-relative expressions.
.macro relaxcode
.endm
.text
.syntax no_register_prefix
; Region of relaxation is after insn, same segment
z:
move.d [pc-(x1-x+128-4)],r8 ; 4
move.d [pc-(x2-x+129-8)],r8 ; 6
move.d [pc+x3-x+127-14],r8 ; 4
move.d [pc+x4-x+128-18],r8 ; 6
move.d [pc-(x5-x+32768-26)],r8 ; 6
move.d [pc-(x6-x+32769-32)],r8 ; 8
move.d [pc+x7-x+32767-40],r8 ; 6
move.d [pc+x8-x+32768-46],r8 ; 8
.p2align 1
; Region of relaxation is around insn, same segment
x:
move.d [pc-(x1-x+128-4)],r8 ; 4
x1:
move.d [pc-(x2-x+129-8)],r8 ; 6
x2:
move.d [pc+x3-x+127-14],r8 ; 4
x3:
move.d [pc+x4-x+128-18],r8 ; 6
x4:
move.d [pc-(x5-x+32768-26)],r8 ; 6
x5:
move.d [pc-(x6-x+32769-32)],r8 ; 8
x6:
move.d [pc+x7-x+32767-40],r8 ; 6
x7:
move.d [pc+x8-x+32768-46],r8 ; 8
x8:
; Region of relaxation is before insn, same segment.
move.d [pc-(x1-x+128-4)],r8 ; 4
move.d [pc-(x2-x+129-8)],r8 ; 6
move.d [pc+x3-x+127-14],r8 ; 4
move.d [pc+x4-x+128-18],r8 ; 6
move.d [pc-(x5-x+32768-26)],r8 ; 6
move.d [pc-(x6-x+32769-32)],r8 ; 8
move.d [pc+x7-x+32767-40],r8 ; 6
move.d [pc+x8-x+32768-46],r8 ; 8
; Region of relaxation is in other segment.
.section .text.other
y:
move.d [pc-(x1-x+128-4)],r8 ; 4
move.d [pc-(x2-x+129-8)],r8 ; 6
move.d [pc+x3-x+127-14],r8 ; 4
move.d [pc+x4-x+128-18],r8 ; 6
move.d [pc-(x5-x+32768-26)],r8 ; 6
move.d [pc-(x6-x+32769-32)],r8 ; 8
move.d [pc+x7-x+32767-40],r8 ; 6
move.d [pc+x8-x+32768-46],r8 ; 8