Skip to content

Instantly share code, notes, and snippets.

@jamorton
Created April 16, 2014 22:30
Show Gist options
  • Save jamorton/10939170 to your computer and use it in GitHub Desktop.
Save jamorton/10939170 to your computer and use it in GitHub Desktop.
@0000 B111 // LLB R1, 0x11
@0001 A111 // LHB R1, 0x11
@0002 B222 // LLB R2, 0x22
@0003 A222 // LHB R2, 0x22
@0004 B333 // LLB R3, 0x33
@0005 A333 // LHB R3, 0x33
@0006 B444 // LLB R4, 0x44
@0007 A444 // LHB R4, 0x44
@0008 B555 // LLB R5, 0x55
@0009 A555 // LHB R5, 0x55
@000a B666 // LLB R6, 0x66
@000b A666 // LHB R6, 0x66
@000c B777 // LLB R7, 0x77
@000d A777 // LHB R7, 0x77
@000e B888 // LLB R8, 0x88
@000f A888 // LHB R8, 0x88
@0010 B999 // LLB R9, 0x99
@0011 A999 // LHB R9, 0x99
@0012 BAAA // LLB R10, 0xaa
@0013 AAAA // LHB R10, 0xaa
@0014 BBBB // LLB R11, 0xbb
@0015 ABBB // LHB R11, 0xbb
@0016 BCCC // LLB R12, 0xcc
@0017 ACCC // LHB R12, 0xcc
@0018 BDDD // LLB R13, 0xdd
@0019 ADDD // LHB R13, 0xdd
@001a BEEE // LLB R14, 0xee
@001b AEEE // LHB R14, 0xee
@001c BFFF // LLB R15, 0xff
@001d AFFF // LHB R15, 0xff
@001e B10F // LLB R1, 0x0F
@001f B207 // LLB R2, 0x07
@0020 B3FF // LLB R3, 0xFF
@0021 B40B // LLB R4, 0x0B
@0022 B501 // LLB R5, 0x01
@0023 B605 // LLB R6, 0x05
@0024 B707 // LLB R7, 0x07
@0025 B809 // LLB R8, 0x09
@0026 2921 // SUB R9, R2, R1
@0027 C603 // B LT, LABEL1
@0028 0115 // ADD R1, R1, R5
@0029 0665 // ADD R6, R6, R5
@002a CFFF // FAILURE: B UNCOND, FAILURE
@002b C5FE // LABEL1: B GT, FAILURE
@002c 2942 // SUB R9, R4, R2
@002d C402 // B GT, LABEL3
@002e 0118 // ADD R1, R1, R8
@002f 2667 // SUB R6, R6, R7
@0030 C3F9 // LABEL3: B EQ, FAILURE
@0031 C001 // B NEQ, LABEL4
@0032 CFF7 // B UNCOND, FAILURE
@0033 D003 // LABEL4: JAL FUNC1
@0034 2927 // SUB R9, R2, R7
@0035 CA09 // B LTE, LABEL6
@0036 0887 // ADD R8, R8, R7
@0037 B300 // LLB R3, 0x00
@0038 A380 // LHB R3, 0x80
@0039 0933 // ADD R9, R3, R3
@003a CC01 // B OVFL, LABEL5
@003b CFEE // B UNCOND, FAILURE
@003c E0F0 // JR R15
@003d 0113 // ADD R1, R1, R3
@003e CFEB // B UNCOND, FAILURE
@003f C802 // B GTE, LABEL7
@0040 0113 // ADD R1, R1, R3
@0041 CFE8 // B UNCOND, FAILURE
@0042 D001 // JAL FUNC2
@0043 CE05 // B UNCOND, END
@0044 0B0F // FUNC2: ADD R11, R0, R15
@0045 D001 // JAL FUNC3
@0046 E0B0 // JR R11
@0047 E0F0 // JR R15
@0048 0BB3 // ADD R11, R11, R3
@0049 F000 // END: HLT
###############################################################################
##
## Pipeline Test 2 - Branching
## 04/08/14
##
## Passing Test should result in a HLT instr. A failed test should time out
## after reaching the failure loop.
##
###############################################################################
LLB R1, 0x11
LHB R1, 0x11
LLB R2, 0x22
LHB R2, 0x22
LLB R3, 0x33
LHB R3, 0x33
LLB R4, 0x44
LHB R4, 0x44
LLB R5, 0x55
LHB R5, 0x55
LLB R6, 0x66
LHB R6, 0x66
LLB R7, 0x77
LHB R7, 0x77
LLB R8, 0x88
LHB R8, 0x88
LLB R9, 0x99
LHB R9, 0x99
LLB R10, 0xaa
LHB R10, 0xaa
LLB R11, 0xbb
LHB R11, 0xbb
LLB R12, 0xcc
LHB R12, 0xcc
LLB R13, 0xdd
LHB R13, 0xdd
LLB R14, 0xee
LHB R14, 0xee
LLB R15, 0xff
LHB R15, 0xff
LLB R1, 0x0F
LLB R2, 0x07
LLB R3, 0xFF
LLB R4, 0x0B
LLB R5, 0x01
LLB R6, 0x05
LLB R7, 0x07
LLB R8, 0x09
SUB R9, R2, R1
B LT, LABEL1
ADD R1, R1, R5 #should not be executed
ADD R6, R6, R5 #should not be executed
FAILURE: B UNCOND, FAILURE #get stuck here if failure
LABEL1: B GT, FAILURE #should not be taken
SUB R9, R4, R2
B GT, LABEL3
ADD R1, R1, R8
SUB R6, R6, R7
LABEL3: B EQ, FAILURE #flags should still be pos
B NEQ, LABEL4
B UNCOND, FAILURE
LABEL4: JAL FUNC1
SUB R9, R2, R7
B LTE, LABEL6
ADD R8, R8, R7
FUNC1:
LLB R3, 0x00
LHB R3, 0x80
ADD R9, R3, R3
B OVFL, LABEL5
B UNCOND, FAILURE
LABEL5:
JR R15
ADD R1, R1, R3
B UNCOND, FAILURE
LABEL6:
B GTE, LABEL7
ADD R1, R1, R3
B UNCOND, FAILURE
LABEL7:
JAL FUNC2
B UNCOND, END
FUNC2: ADD R11, R0, R15
JAL FUNC3
JR R11
FUNC3:
JR R15
ADD R11, R11, R3
END: HLT # Great Success!
##########################################
# Single cycle ref output
##########################################
#
# R00000001 = 000f
# R00000002 = 0007
# R00000003 = 8000
# R00000004 = 000b
# R00000005 = 0001
# R00000006 = 0005
# R00000007 = 0007
# R00000008 = 0009
# R00000009 = 0000
# R0000000a = xxxx
# R0000000b = 0025
# R0000000c = xxxx
# R0000000d = xxxx
# R0000000e = xxxx
# R0000000f = 0028
# Time: 300
# Cycles: 30
# PC: 002c
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment