X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FMC%2FDisassembler%2FHexagon%2Fld.txt;h=15c23b644886194ab48977e849c3e6fb36e5d033;hb=e18cdd45dd39b2dcc9f2c04771cf38fbdb818341;hp=313bf7abeb9bbf99934cca07e66c9a3d11615300;hpb=88e5659aaf6b1f251728ae5d476a9fca3b638264;p=oota-llvm.git diff --git a/test/MC/Disassembler/Hexagon/ld.txt b/test/MC/Disassembler/Hexagon/ld.txt index 313bf7abeb9..15c23b64488 100644 --- a/test/MC/Disassembler/Hexagon/ld.txt +++ b/test/MC/Disassembler/Hexagon/ld.txt @@ -1,7 +1,11 @@ -# RUN: llvm-mc --triple hexagon -disassemble < %s | FileCheck %s +# RUN: llvm-mc -triple hexagon -disassemble < %s | FileCheck %s +# Hexagon Programmer's Reference Manual 11.5 LD +# Load doubleword 0x90 0xff 0xd5 0x3a # CHECK: r17:16 = memd(r21 + r31<<#3) +0x10 0xc5 0xc0 0x49 +# CHECK: r17:16 = memd(##320) 0xb0 0xe0 0xd5 0x99 # CHECK: r17:16 = memd(r21 ++ #40:circ(m1)) 0x10 0xe2 0xd5 0x99 @@ -12,6 +16,8 @@ # CHECK: r17:16 = memd(r21++m1) 0x10 0xe0 0xd5 0x9f # CHECK: r17:16 = memd(r21 ++ m1:brev) + +# Load doubleword conditionally 0xf0 0xff 0xd5 0x30 # CHECK: if (p3) r17:16 = memd(r21+r31<<#3) 0xf0 0xff 0xd5 0x31 @@ -43,8 +49,11 @@ # CHECK: p3 = r5 # CHECK-NEXT: if (!p3.new) r17:16 = memd(r21++#40) +# Load byte 0x91 0xff 0x15 0x3a # CHECK: r17 = memb(r21 + r31<<#3) +0xb1 0xc2 0x00 0x49 +# CHECK: r17 = memb(##21) 0xf1 0xc3 0x15 0x91 # CHECK: r17 = memb(r21 + #31) 0xb1 0xe0 0x15 0x99 @@ -57,6 +66,8 @@ # CHECK: r17 = memb(r21++m1) 0x11 0xe0 0x15 0x9f # CHECK: r17 = memb(r21 ++ m1:brev) + +# Load byte conditionally 0xf1 0xff 0x15 0x30 # CHECK: if (p3) r17 = memb(r21+r31<<#3) 0xf1 0xff 0x15 0x31 @@ -88,8 +99,11 @@ # CHECK: p3 = r5 # CHECK-NEXT: if (!p3.new) r17 = memb(r21++#5) +# Load halfword 0x91 0xff 0x55 0x3a # CHECK: r17 = memh(r21 + r31<<#3) +0x51 0xc5 0x40 0x49 +# CHECK: r17 = memh(##84) 0xf1 0xc3 0x55 0x91 # CHECK: r17 = memh(r21 + #62) 0xb1 0xe0 0x55 0x99 @@ -102,6 +116,8 @@ # CHECK: r17 = memh(r21++m1) 0x11 0xe0 0x55 0x9f # CHECK: r17 = memh(r21 ++ m1:brev) + +# Load halfword conditionally 0xf1 0xff 0x55 0x30 # CHECK: if (p3) r17 = memh(r21+r31<<#3) 0xf1 0xff 0x55 0x31 @@ -123,8 +139,11 @@ # CHECK: p3 = r5 # CHECK-NEXT: if (!p3.new) r17 = memh(r21++#10) +# Load unsigned byte 0x91 0xff 0x35 0x3a # CHECK: r17 = memub(r21 + r31<<#3) +0xb1 0xc2 0x20 0x49 +# CHECK: r17 = memub(##21) 0xf1 0xc3 0x35 0x91 # CHECK: r17 = memub(r21 + #31) 0xb1 0xe0 0x35 0x99 @@ -137,6 +156,8 @@ # CHECK: r17 = memub(r21++m1) 0x11 0xe0 0x35 0x9f # CHECK: r17 = memub(r21 ++ m1:brev) + +# Load unsigned byte conditionally 0xf1 0xff 0x35 0x30 # CHECK: if (p3) r17 = memub(r21+r31<<#3) 0xf1 0xff 0x35 0x31 @@ -168,8 +189,11 @@ # CHECK: p3 = r5 # CHECK-NEXT: if (!p3.new) r17 = memub(r21++#5) +# Load unsigned halfword 0x91 0xff 0x75 0x3a # CHECK: r17 = memuh(r21 + r31<<#3) +0x51 0xc5 0x60 0x49 +# CHECK: r17 = memuh(##84) 0xb1 0xc2 0x75 0x91 # CHECK: r17 = memuh(r21 + #42) 0xb1 0xe0 0x75 0x99 @@ -182,6 +206,8 @@ # CHECK: r17 = memuh(r21++m1) 0x11 0xe0 0x75 0x9f # CHECK: r17 = memuh(r21 ++ m1:brev) + +# Load unsigned halfword conditionally 0xf1 0xff 0x75 0x30 # CHECK: if (p3) r17 = memuh(r21+r31<<#3) 0xf1 0xff 0x75 0x31 @@ -213,8 +239,11 @@ # CHECK: p3 = r5 # CHECK-NEXT: if (!p3.new) r17 = memuh(r21++#10) +# Load word 0x91 0xff 0x95 0x3a # CHECK: r17 = memw(r21 + r31<<#3) +0x91 0xc2 0x80 0x49 +# CHECK: r17 = memw(##80) 0xb1 0xc2 0x95 0x91 # CHECK: r17 = memw(r21 + #84) 0xb1 0xe0 0x95 0x99 @@ -227,6 +256,8 @@ # CHECK: r17 = memw(r21++m1) 0x11 0xe0 0x95 0x9f # CHECK: r17 = memw(r21 ++ m1:brev) + +# Load word conditionally 0xf1 0xff 0x95 0x30 # CHECK: if (p3) r17 = memw(r21+r31<<#3) 0xf1 0xff 0x95 0x31 @@ -258,5 +289,76 @@ # CHECK: p3 = r5 # CHECK-NEXT: if (!p3.new) r17 = memw(r21++#20) +# Deallocate stack frame 0x1e 0xc0 0x1e 0x90 # CHECK: deallocframe + +# Deallocate stack frame and return +0x1e 0xc0 0x1e 0x96 +# CHECK: dealloc_return +0x03 0x40 0x45 0x85 0x1e 0xcb 0x1e 0x96 +# CHECK: p3 = r5 +# CHECK-NEXT: if (p3.new) dealloc_return:nt +0x1e 0xd3 0x1e 0x96 +# CHECK: if (p3) dealloc_return +0x03 0x40 0x45 0x85 0x1e 0xdb 0x1e 0x96 +# CHECK: p3 = r5 +# CHECK-NEXT: if (p3.new) dealloc_return:t +0x03 0x40 0x45 0x85 0x1e 0xeb 0x1e 0x96 +# CHECK: p3 = r5 +# CHECK-NEXT: if (!p3.new) dealloc_return:nt +0x1e 0xf3 0x1e 0x96 +# CHECK: if (!p3) dealloc_return +0x03 0x40 0x45 0x85 0x1e 0xfb 0x1e 0x96 +# CHECK: p3 = r5 +# CHECK-NEXT: if (!p3.new) dealloc_return:t + +# Load and unpack bytes to halfwords +0xf1 0xc3 0x35 0x90 +# CHECK: r17 = membh(r21 + #62) +0xf1 0xc3 0x75 0x90 +# CHECK: r17 = memubh(r21 + #62) +0xf0 0xc3 0xb5 0x90 +# CHECK: r17:16 = memubh(r21 + #124) +0xf0 0xc3 0xf5 0x90 +# CHECK: r17:16 = membh(r21 + #124) +0xb1 0xe0 0x35 0x98 +# CHECK: r17 = membh(r21 ++ #10:circ(m1)) +0x11 0xe2 0x35 0x98 +# CHECK: r17 = membh(r21 ++ I:circ(m1)) +0xb1 0xe0 0x75 0x98 +# CHECK: r17 = memubh(r21 ++ #10:circ(m1)) +0x11 0xe2 0x75 0x98 +# CHECK: r17 = memubh(r21 ++ I:circ(m1)) +0xb0 0xe0 0xf5 0x98 +# CHECK: r17:16 = membh(r21 ++ #20:circ(m1)) +0x10 0xe2 0xf5 0x98 +# CHECK: r17:16 = membh(r21 ++ I:circ(m1)) +0xb0 0xe0 0xb5 0x98 +# CHECK: r17:16 = memubh(r21 ++ #20:circ(m1)) +0x10 0xe2 0xb5 0x98 +# CHECK: r17:16 = memubh(r21 ++ I:circ(m1)) +0xb1 0xc0 0x35 0x9a +# CHECK: r17 = membh(r21++#10) +0xb1 0xc0 0x75 0x9a +# CHECK: r17 = memubh(r21++#10) +0xb0 0xc0 0xb5 0x9a +# CHECK: r17:16 = memubh(r21++#20) +0xb0 0xc0 0xf5 0x9a +# CHECK: r17:16 = membh(r21++#20) +0x11 0xe0 0x35 0x9c +# CHECK: r17 = membh(r21++m1) +0x11 0xe0 0x75 0x9c +# CHECK: r17 = memubh(r21++m1) +0x10 0xe0 0xf5 0x9c +# CHECK: r17:16 = membh(r21++m1) +0x10 0xe0 0xb5 0x9c +# CHECK: r17:16 = memubh(r21++m1) +0x11 0xe0 0x35 0x9e +# CHECK: r17 = membh(r21 ++ m1:brev) +0x11 0xe0 0x75 0x9e +# CHECK: r17 = memubh(r21 ++ m1:brev) +0x10 0xe0 0xb5 0x9e +# CHECK: r17:16 = memubh(r21 ++ m1:brev) +0x10 0xe0 0xf5 0x9e +# CHECK: r17:16 = membh(r21 ++ m1:brev)