brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.0 KiB · 17fdbd9 Raw
170 lines · plain
1; RUN: llvm-mc -triple arm64-apple-darwin -show-encoding < %s | FileCheck %s2 3foo:4 5;-----------------------------------------------------------------------------6; Unconditional branch (register) instructions.7;-----------------------------------------------------------------------------8 9  ret10; CHECK: encoding: [0xc0,0x03,0x5f,0xd6]11  ret x112; CHECK: encoding: [0x20,0x00,0x5f,0xd6]13  drps14; CHECK: encoding: [0xe0,0x03,0xbf,0xd6]15  eret16; CHECK: encoding: [0xe0,0x03,0x9f,0xd6]17  br  x518; CHECK: encoding: [0xa0,0x00,0x1f,0xd6]19  blr x920; CHECK: encoding: [0x20,0x01,0x3f,0xd6]21  bl  L122; CHECK: bl L1   ; encoding: [A,A,A,0b100101AA]23; CHECK: fixup A - offset: 0, value: L1, kind: fixup_aarch64_pcrel_call2624 25;-----------------------------------------------------------------------------26; Contitional branch instructions.27;-----------------------------------------------------------------------------28 29  b     L130; CHECK: b L1      ; encoding: [A,A,A,0b000101AA]31; CHECK: fixup A - offset: 0, value: L1, kind: fixup_aarch64_pcrel_branch2632  b.eq  L133; CHECK: b.eq L1   ; encoding: [0bAAA00000,A,A,0x54]34; CHECK: fixup A - offset: 0, value: L1, kind: fixup_aarch64_pcrel_branch1935  b.ne  L136; CHECK: b.ne L1   ; encoding: [0bAAA00001,A,A,0x54]37; CHECK: fixup A - offset: 0, value: L1, kind: fixup_aarch64_pcrel_branch1938  b.cs  L139; CHECK: b.hs L1   ; encoding: [0bAAA00010,A,A,0x54]40; CHECK: fixup A - offset: 0, value: L1, kind: fixup_aarch64_pcrel_branch1941  b.cc  L142; CHECK: b.lo L1   ; encoding: [0bAAA00011,A,A,0x54]43; CHECK: fixup A - offset: 0, value: L1, kind: fixup_aarch64_pcrel_branch1944  b.mi  L145; CHECK: b.mi L1   ; encoding: [0bAAA00100,A,A,0x54]46; CHECK: fixup A - offset: 0, value: L1, kind: fixup_aarch64_pcrel_branch1947  b.pl  L148; CHECK: b.pl L1   ; encoding: [0bAAA00101,A,A,0x54]49; CHECK: fixup A - offset: 0, value: L1, kind: fixup_aarch64_pcrel_branch1950  b.vs  L151; CHECK: b.vs L1   ; encoding: [0bAAA00110,A,A,0x54]52; CHECK: fixup A - offset: 0, value: L1, kind: fixup_aarch64_pcrel_branch1953  b.vc  L154; CHECK: b.vc L1   ; encoding: [0bAAA00111,A,A,0x54]55; CHECK: fixup A - offset: 0, value: L1, kind: fixup_aarch64_pcrel_branch1956  b.hi  L157; CHECK: b.hi L1   ; encoding: [0bAAA01000,A,A,0x54]58; CHECK: fixup A - offset: 0, value: L1, kind: fixup_aarch64_pcrel_branch1959  b.ls  L160; CHECK: b.ls L1   ; encoding: [0bAAA01001,A,A,0x54]61; CHECK: fixup A - offset: 0, value: L1, kind: fixup_aarch64_pcrel_branch1962  b.ge  L163; CHECK: b.ge L1   ; encoding: [0bAAA01010,A,A,0x54]64; CHECK: fixup A - offset: 0, value: L1, kind: fixup_aarch64_pcrel_branch1965  b.lt  L166; CHECK: b.lt L1   ; encoding: [0bAAA01011,A,A,0x54]67; CHECK: fixup A - offset: 0, value: L1, kind: fixup_aarch64_pcrel_branch1968  b.gt  L169; CHECK: b.gt L1   ; encoding: [0bAAA01100,A,A,0x54]70; CHECK: fixup A - offset: 0, value: L1, kind: fixup_aarch64_pcrel_branch1971  b.le  L172; CHECK: b.le L1   ; encoding: [0bAAA01101,A,A,0x54]73; CHECK: fixup A - offset: 0, value: L1, kind: fixup_aarch64_pcrel_branch1974  b.al  L175; CHECK: b.al L1      ; encoding: [0bAAA01110,A,A,0x54]76; CHECK: fixup A - offset: 0, value: L1, kind: fixup_aarch64_pcrel_branch1977L1:78  b #2879; CHECK: b #2880  b.lt #2881; CHECK: b.lt #2882  b.cc #104857283; CHECK: b.lo	#1048572                ; encoding: [0xe3,0xff,0x7f,0x54]84  b #13421772485; CHECK: b	#134217724              ; encoding: [0xff,0xff,0xff,0x15]86  b #-13421772887; CHECK: b	#-134217728             ; encoding: [0x00,0x00,0x00,0x16]88 89;-----------------------------------------------------------------------------90; Compare-and-branch instructions.91;-----------------------------------------------------------------------------92 93  cbz w1, foo94; CHECK: encoding: [0bAAA00001,A,A,0x34]95  cbz x1, foo96; CHECK: encoding: [0bAAA00001,A,A,0xb4]97  cbnz w2, foo98; CHECK: encoding: [0bAAA00010,A,A,0x35]99  cbnz x2, foo100; CHECK: encoding: [0bAAA00010,A,A,0xb5]101  cbz w1, #28102; CHECK: cbz w1, #28103  cbz     w20, #1048572104; CHECK: cbz	w20, #1048572           ; encoding: [0xf4,0xff,0x7f,0x34]105  cbnz x2, #-1048576106; CHECK: cbnz	x2, #-1048576           ; encoding: [0x02,0x00,0x80,0xb5]107 108 109;-----------------------------------------------------------------------------110; Bit-test-and-branch instructions.111;-----------------------------------------------------------------------------112 113  tbz x1, #3, foo114; CHECK: encoding: [0bAAA00001,A,0b00011AAA,0x36]115  tbnz x1, #63, foo116; CHECK: encoding: [0bAAA00001,A,0b11111AAA,0xb7]117 118  tbz w1, #3, foo119; CHECK: encoding: [0bAAA00001,A,0b00011AAA,0x36]120  tbnz w1, #31, foo121; CHECK: encoding: [0bAAA00001,A,0b11111AAA,0x37]122 123  tbz w1, #3, #28124; CHECK: tbz w1, #3, #28125  tbz w3, #5, #32764126; CHECK: tbz	w3, #5, #32764          ; encoding: [0xe3,0xff,0x2b,0x36]127  tbnz x3, #8, #-32768128; CHECK: tbnz	w3, #8, #-32768         ; encoding: [0x03,0x00,0x44,0x37]129 130;-----------------------------------------------------------------------------131; Exception generation instructions.132;-----------------------------------------------------------------------------133 134  brk   #1135; CHECK: encoding: [0x20,0x00,0x20,0xd4]136  dcps1 #2137; CHECK: encoding: [0x41,0x00,0xa0,0xd4]138  dcps2 #3139; CHECK: encoding: [0x62,0x00,0xa0,0xd4]140  dcps3 #4141; CHECK: encoding: [0x83,0x00,0xa0,0xd4]142  hlt   #5143; CHECK: encoding: [0xa0,0x00,0x40,0xd4]144  hvc   #6145; CHECK: encoding: [0xc2,0x00,0x00,0xd4]146  smc   #7147; CHECK: encoding: [0xe3,0x00,0x00,0xd4]148  svc   #8149; CHECK: encoding: [0x01,0x01,0x00,0xd4]150 151; The immediate defaults to zero for DCPSn152  dcps1153  dcps2154  dcps3155 156; CHECK: dcps1                     ; encoding: [0x01,0x00,0xa0,0xd4]157; CHECK: dcps2                     ; encoding: [0x02,0x00,0xa0,0xd4]158; CHECK: dcps3                     ; encoding: [0x03,0x00,0xa0,0xd4]159 160;; Test "bad" names161  bl lsl162  b.eq lsr163  b.ne uxth164; CHECK:      bl lsl     ; encoding: [A,A,A,0b100101AA]165; CHECK-NEXT:   fixup A - offset: 0, value: lsl, kind: fixup_aarch64_pcrel_call26166; CHECK-NEXT: b.eq lsr   ; encoding: [0bAAA00000,A,A,0x54]167; CHECK-NEXT:   fixup A - offset: 0, value: lsr, kind: fixup_aarch64_pcrel_branch19168; CHECK-NEXT: b.ne uxth  ; encoding: [0bAAA00001,A,A,0x54]169; CHECK-NEXT:   fixup A - offset: 0, value: uxth, kind: fixup_aarch64_pcrel_branch19170