mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
5a75088c2f
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227498 91177308-0d34-0410-b5e6-96231b3b80d8
203 lines
6.3 KiB
Plaintext
203 lines
6.3 KiB
Plaintext
# RUN: llvm-mc -triple hexagon -disassemble < %s | FileCheck %s
|
|
# Hexagon Programmer's Reference Manual 11.4 J
|
|
|
|
# Call subroutine
|
|
0x22 0xc0 0x00 0x5a
|
|
# CHECK: call
|
|
0x22 0xc3 0x00 0x5d
|
|
# CHECK: if (p3) call
|
|
0x22 0xc3 0x20 0x5d
|
|
# CHECK: if (!p3) call
|
|
|
|
# Compare and jump
|
|
0x00 0xc0 0x89 0x11
|
|
# CHECK: p0 = cmp.eq(r9,#-1); if (p0.new) jump:nt
|
|
0x00 0xc1 0x89 0x11
|
|
# CHECK: p0 = cmp.gt(r9,#-1); if (p0.new) jump:nt
|
|
0x00 0xc3 0x89 0x11
|
|
# CHECK: p0 = tstbit(r9, #0); if (p0.new) jump:nt
|
|
0x00 0xe0 0x89 0x11
|
|
# CHECK: p0 = cmp.eq(r9,#-1); if (p0.new) jump:t
|
|
0x00 0xe1 0x89 0x11
|
|
# CHECK: p0 = cmp.gt(r9,#-1); if (p0.new) jump:t
|
|
0x00 0xe3 0x89 0x11
|
|
# CHECK: p0 = tstbit(r9, #0); if (p0.new) jump:t
|
|
0x00 0xc0 0xc9 0x11
|
|
# CHECK: p0 = cmp.eq(r9,#-1); if (!p0.new) jump:nt
|
|
0x00 0xc1 0xc9 0x11
|
|
# CHECK: p0 = cmp.gt(r9,#-1); if (!p0.new) jump:nt
|
|
0x00 0xc3 0xc9 0x11
|
|
# CHECK: p0 = tstbit(r9, #0); if (!p0.new) jump:nt
|
|
0x00 0xe0 0xc9 0x11
|
|
# CHECK: p0 = cmp.eq(r9,#-1); if (!p0.new) jump:t
|
|
0x00 0xe1 0xc9 0x11
|
|
# CHECK: p0 = cmp.gt(r9,#-1); if (!p0.new) jump:t
|
|
0x00 0xe3 0xc9 0x11
|
|
# CHECK: p0 = tstbit(r9, #0); if (!p0.new) jump:t
|
|
0x00 0xd5 0x09 0x10
|
|
# CHECK: p0 = cmp.eq(r9, #21); if (p0.new) jump:nt
|
|
0x00 0xf5 0x09 0x10
|
|
# CHECK: p0 = cmp.eq(r9, #21); if (p0.new) jump:t
|
|
0x00 0xd5 0x49 0x10
|
|
# CHECK: p0 = cmp.eq(r9, #21); if (!p0.new) jump:nt
|
|
0x00 0xf5 0x49 0x10
|
|
# CHECK: p0 = cmp.eq(r9, #21); if (!p0.new) jump:t
|
|
0x00 0xd5 0x89 0x10
|
|
# CHECK: p0 = cmp.gt(r9, #21); if (p0.new) jump:nt
|
|
0x00 0xf5 0x89 0x10
|
|
# CHECK: p0 = cmp.gt(r9, #21); if (p0.new) jump:t
|
|
0x00 0xd5 0xc9 0x10
|
|
# CHECK: p0 = cmp.gt(r9, #21); if (!p0.new) jump:nt
|
|
0x00 0xf5 0xc9 0x10
|
|
# CHECK: p0 = cmp.gt(r9, #21); if (!p0.new) jump:t
|
|
0x00 0xd5 0x09 0x11
|
|
# CHECK: p0 = cmp.gtu(r9, #21); if (p0.new) jump:nt
|
|
0x00 0xf5 0x09 0x11
|
|
# CHECK: p0 = cmp.gtu(r9, #21); if (p0.new) jump:t
|
|
0x00 0xd5 0x49 0x11
|
|
# CHECK: p0 = cmp.gtu(r9, #21); if (!p0.new) jump:nt
|
|
0x00 0xf5 0x49 0x11
|
|
# CHECK: p0 = cmp.gtu(r9, #21); if (!p0.new) jump:t
|
|
0x00 0xc0 0x89 0x13
|
|
# CHECK: p1 = cmp.eq(r9,#-1); if (p1.new) jump:nt
|
|
0x00 0xc1 0x89 0x13
|
|
# CHECK: p1 = cmp.gt(r9,#-1); if (p1.new) jump:nt
|
|
0x00 0xc3 0x89 0x13
|
|
# CHECK: p1 = tstbit(r9, #0); if (p1.new) jump:nt
|
|
0x00 0xe0 0x89 0x13
|
|
# CHECK: p1 = cmp.eq(r9,#-1); if (p1.new) jump:t
|
|
0x00 0xe1 0x89 0x13
|
|
# CHECK: p1 = cmp.gt(r9,#-1); if (p1.new) jump:t
|
|
0x00 0xe3 0x89 0x13
|
|
# CHECK: p1 = tstbit(r9, #0); if (p1.new) jump:t
|
|
0x00 0xc0 0xc9 0x13
|
|
# CHECK: p1 = cmp.eq(r9,#-1); if (!p1.new) jump:nt
|
|
0x00 0xc1 0xc9 0x13
|
|
# CHECK: p1 = cmp.gt(r9,#-1); if (!p1.new) jump:nt
|
|
0x00 0xc3 0xc9 0x13
|
|
# CHECK: p1 = tstbit(r9, #0); if (!p1.new) jump:nt
|
|
0x00 0xe0 0xc9 0x13
|
|
# CHECK: p1 = cmp.eq(r9,#-1); if (!p1.new) jump:t
|
|
0x00 0xe1 0xc9 0x13
|
|
# CHECK: p1 = cmp.gt(r9,#-1); if (!p1.new) jump:t
|
|
0x00 0xe3 0xc9 0x13
|
|
# CHECK: p1 = tstbit(r9, #0); if (!p1.new) jump:t
|
|
0x00 0xd5 0x09 0x12
|
|
# CHECK: p1 = cmp.eq(r9, #21); if (p1.new) jump:nt
|
|
0x00 0xf5 0x09 0x12
|
|
# CHECK: p1 = cmp.eq(r9, #21); if (p1.new) jump:t
|
|
0x00 0xd5 0x49 0x12
|
|
# CHECK: p1 = cmp.eq(r9, #21); if (!p1.new) jump:nt
|
|
0x00 0xf5 0x49 0x12
|
|
# CHECK: p1 = cmp.eq(r9, #21); if (!p1.new) jump:t
|
|
0x00 0xd5 0x89 0x12
|
|
# CHECK: p1 = cmp.gt(r9, #21); if (p1.new) jump:nt
|
|
0x00 0xf5 0x89 0x12
|
|
# CHECK: p1 = cmp.gt(r9, #21); if (p1.new) jump:t
|
|
0x00 0xd5 0xc9 0x12
|
|
# CHECK: p1 = cmp.gt(r9, #21); if (!p1.new) jump:nt
|
|
0x00 0xf5 0xc9 0x12
|
|
# CHECK: p1 = cmp.gt(r9, #21); if (!p1.new) jump:t
|
|
0x00 0xd5 0x09 0x13
|
|
# CHECK: p1 = cmp.gtu(r9, #21); if (p1.new) jump:nt
|
|
0x00 0xf5 0x09 0x13
|
|
# CHECK: p1 = cmp.gtu(r9, #21); if (p1.new) jump:t
|
|
0x00 0xd5 0x49 0x13
|
|
# CHECK: p1 = cmp.gtu(r9, #21); if (!p1.new) jump:nt
|
|
0x00 0xf5 0x49 0x13
|
|
# CHECK: p1 = cmp.gtu(r9, #21); if (!p1.new) jump:t
|
|
0x00 0xcd 0x09 0x14
|
|
# CHECK: p0 = cmp.eq(r9, r13); if (p0.new) jump:nt
|
|
0x00 0xdd 0x09 0x14
|
|
# CHECK: p1 = cmp.eq(r9, r13); if (p1.new) jump:nt
|
|
0x00 0xed 0x09 0x14
|
|
# CHECK: p0 = cmp.eq(r9, r13); if (p0.new) jump:t
|
|
0x00 0xfd 0x09 0x14
|
|
# CHECK: p1 = cmp.eq(r9, r13); if (p1.new) jump:t
|
|
0x00 0xcd 0x49 0x14
|
|
# CHECK: p0 = cmp.eq(r9, r13); if (!p0.new) jump:nt
|
|
0x00 0xdd 0x49 0x14
|
|
# CHECK: p1 = cmp.eq(r9, r13); if (!p1.new) jump:nt
|
|
0x00 0xed 0x49 0x14
|
|
# CHECK: p0 = cmp.eq(r9, r13); if (!p0.new) jump:t
|
|
0x00 0xfd 0x49 0x14
|
|
# CHECK: p1 = cmp.eq(r9, r13); if (!p1.new) jump:t
|
|
0x00 0xcd 0x89 0x14
|
|
# CHECK: p0 = cmp.gt(r9, r13); if (p0.new) jump:nt
|
|
0x00 0xdd 0x89 0x14
|
|
# CHECK: p1 = cmp.gt(r9, r13); if (p1.new) jump:nt
|
|
0x00 0xed 0x89 0x14
|
|
# CHECK: p0 = cmp.gt(r9, r13); if (p0.new) jump:t
|
|
0x00 0xfd 0x89 0x14
|
|
# CHECK: p1 = cmp.gt(r9, r13); if (p1.new) jump:t
|
|
0x00 0xcd 0xc9 0x14
|
|
# CHECK: p0 = cmp.gt(r9, r13); if (!p0.new) jump:nt
|
|
0x00 0xdd 0xc9 0x14
|
|
# CHECK: p1 = cmp.gt(r9, r13); if (!p1.new) jump:nt
|
|
0x00 0xed 0xc9 0x14
|
|
# CHECK: p0 = cmp.gt(r9, r13); if (!p0.new) jump:t
|
|
0x00 0xfd 0xc9 0x14
|
|
# CHECK: p1 = cmp.gt(r9, r13); if (!p1.new) jump:t
|
|
0x00 0xcd 0x09 0x15
|
|
# CHECK: p0 = cmp.gtu(r9, r13); if (p0.new) jump:nt
|
|
0x00 0xdd 0x09 0x15
|
|
# CHECK: p1 = cmp.gtu(r9, r13); if (p1.new) jump:nt
|
|
0x00 0xed 0x09 0x15
|
|
# CHECK: p0 = cmp.gtu(r9, r13); if (p0.new) jump:t
|
|
0x00 0xfd 0x09 0x15
|
|
# CHECK: p1 = cmp.gtu(r9, r13); if (p1.new) jump:t
|
|
0x00 0xcd 0x49 0x15
|
|
# CHECK: p0 = cmp.gtu(r9, r13); if (!p0.new) jump:nt
|
|
0x00 0xdd 0x49 0x15
|
|
# CHECK: p1 = cmp.gtu(r9, r13); if (!p1.new) jump:nt
|
|
0x00 0xed 0x49 0x15
|
|
# CHECK: p0 = cmp.gtu(r9, r13); if (!p0.new) jump:t
|
|
0x00 0xfd 0x49 0x15
|
|
# CHECK: p1 = cmp.gtu(r9, r13); if (!p1.new) jump:t
|
|
|
|
# Jump to address
|
|
0x22 0xc0 0x00 0x58
|
|
# CHECK: jump
|
|
0x22 0xc3 0x00 0x5c
|
|
# CHECK: if (p3) jump
|
|
0x22 0xc3 0x20 0x5c
|
|
# CHECK: if (!p3) jump
|
|
|
|
# Jump to address conditioned on new predicate
|
|
0x03 0x40 0x45 0x85 0x00 0xcb 0x00 0x5c
|
|
# CHECK: p3 = r5
|
|
# CHECK-NEXT: if (p3.new) jump:nt
|
|
0x03 0x40 0x45 0x85 0x00 0xdb 0x00 0x5c
|
|
# CHECK: p3 = r5
|
|
# CHECK-NEXT: if (p3.new) jump:t
|
|
0x03 0x40 0x45 0x85 0x00 0xcb 0x20 0x5c
|
|
# CHECK: p3 = r5
|
|
# CHECK-NEXT: if (!p3.new) jump:nt
|
|
0x03 0x40 0x45 0x85 0x00 0xdb 0x20 0x5c
|
|
# CHECK: p3 = r5
|
|
# CHECK-NEXT: if (!p3.new) jump:t
|
|
|
|
# Jump to address conditioned on register value
|
|
0x00 0xc0 0x11 0x61
|
|
# CHECK: if (r17!=#0) jump:nt
|
|
0x00 0xd0 0x11 0x61
|
|
# CHECK: if (r17!=#0) jump:t
|
|
0x00 0xc0 0x51 0x61
|
|
# CHECK: if (r17>=#0) jump:nt
|
|
0x00 0xd0 0x51 0x61
|
|
# CHECK: if (r17>=#0) jump:t
|
|
0x00 0xc0 0x91 0x61
|
|
# CHECK: if (r17==#0) jump:nt
|
|
0x00 0xd0 0x91 0x61
|
|
# CHECK: if (r17==#0) jump:t
|
|
0x00 0xc0 0xd1 0x61
|
|
# CHECK: if (r17<=#0) jump:nt
|
|
0x00 0xd0 0xd1 0x61
|
|
# CHECK: if (r17<=#0) jump:t
|
|
|
|
# Transfer and jump
|
|
0x00 0xd5 0x09 0x16
|
|
# CHECK: r9 = #21 ; jump
|
|
0x00 0xc9 0x0d 0x17
|
|
# CHECK: r9 = r13 ; jump
|