# RUN: llvm-mc --disassemble %s -triple=sparc-unknown-linux | FileCheck %s --check-prefixes=CHECK,V8 # RUN: llvm-mc --disassemble %s -triple=sparcv9-unknown-linux | FileCheck %s --check-prefixes=CHECK,V9 # CHECK: wr %g1, -2, %y 0x81 0x80 0x7f 0xfe # CHECK: rd %y, %i0 0xb1 0x40 0x00 0x00 # CHECK: rd %asr1, %i0 0xb1 0x40 0x40 0x00 # CHECK: wr %i0, 5, %y 0x81 0x86 0x20 0x05 # CHECK: wr %i0, %i1, %asr15 0x9f 0x86 0x00 0x19 # CHECK: rd %psr, %i0 0xb1 0x48 0x00 0x00 # CHECK: rd %wim, %i0 0xb1 0x50 0x00 0x00 # CHECK: rd %tbr, %i0 0xb1 0x58 0x00 0x00 # CHECK: wr %i0, 5, %psr 0x81 0x8e 0x20 0x05 # CHECK: wr %i0, 5, %wim 0x81 0x96 0x20 0x05 # CHECK: wr %i0, 5, %tbr 0x81 0x9e 0x20 0x05 # CHECK: st %fsr, [%i5] 0xc1 0x2f 0x40 0x00 ## The same encoding resolves to different instructions in V8 and V9. # V8: std %fq, [%i5+%l1] # V9: stq %f0, [%i5+%l1] 0xc1 0x37 0x40 0x11 ## Those instructions are processed differently on V8 and V9. # V8: rd %asr2, %i0 # V9: rd %ccr, %i0 0xb1 0x40 0x80 0x00 # V8: wr %i0, 7, %asr2 # V9: wr %i0, 7, %ccr 0x85 0x86 0x20 0x07 # V8: rd %asr3, %i0 # V9: rd %asi, %i0 0xb1 0x40 0xc0 0x00 # V8: wr %i0, 7, %asr3 # V9: wr %i0, 7, %asi 0x87 0x86 0x20 0x07 # V8: rd %asr4, %i0 # V9: rd %tick, %i0 0xb1 0x41 0x00 0x00 # V8: wr %i0, 7, %asr4 # V9: wr %i0, 7, %tick 0x89 0x86 0x20 0x07 # V8: rd %asr5, %i0 # V9: rd %pc, %i0 0xb1 0x41 0x40 0x00 # V8: wr %i0, 7, %asr5 # V9: wr %i0, 7, %pc 0x8b 0x86 0x20 0x07 # V8: rd %asr6, %i0 # V9: rd %fprs, %i0 0xb1 0x41 0x80 0x00 # V8: wr %i0, 7, %asr6 # V9: wr %i0, 7, %fprs 0x8d 0x86 0x20 0x07