Tests for XORBSU and ANDNBSU
This commit is contained in:
parent
ec3b02d8a5
commit
46d9d35e21
176
gauntlet.s
176
gauntlet.s
|
@ -2172,7 +2172,7 @@ return_from_trap2:
|
|||
halt
|
||||
|
||||
# TODO: Floats
|
||||
# TODO: Bitstrings
|
||||
# TODO: Bitstring search
|
||||
|
||||
#========= I / O ============================
|
||||
|
||||
|
@ -2445,6 +2445,180 @@ movbsu2:
|
|||
be 4
|
||||
halt
|
||||
|
||||
xorbsu:
|
||||
# Set up our test data.
|
||||
movhi hi(0x05000000), r0, r30
|
||||
movea lo(0x05000000), r30, r30
|
||||
|
||||
# Source data
|
||||
movhi hi(0x76543210), r0, r7
|
||||
movea lo(0x76543210), r7, r7
|
||||
st.w r7, 0[r30]
|
||||
movhi hi(0xfedcba98), r0, r7
|
||||
movea lo(0xfedcba98), r7, r7
|
||||
st.w r7, 4[r30]
|
||||
movhi hi(0xdeadbeef), r0, r7
|
||||
movea lo(0xdeadbeef), r7, r7
|
||||
st.w r7, 8[r30]
|
||||
|
||||
|
||||
# Destination at 0x05000100
|
||||
addi 0x100, r30, r29
|
||||
|
||||
# Dst data (set to some known values)
|
||||
movhi hi(0x11111111), r0, r7
|
||||
movea lo(0x11111111), r7, r7
|
||||
st.w r7, 0[r29]
|
||||
st.w r7, 4[r29]
|
||||
st.w r7, 8[r29]
|
||||
st.w r7, 12[r29]
|
||||
|
||||
# Copy 93 bits
|
||||
movea 93, r0, r28
|
||||
|
||||
# Read from bit 4
|
||||
mov 4, r27
|
||||
|
||||
# Write starting at bit 7
|
||||
mov 7, r26
|
||||
|
||||
# Execute
|
||||
xorbsu
|
||||
|
||||
# 0 bits left
|
||||
cmp 0, r28
|
||||
be 4
|
||||
halt
|
||||
|
||||
# Dst offset now 4
|
||||
cmp 4, r26
|
||||
be 4
|
||||
halt
|
||||
|
||||
# Src offset now 1
|
||||
cmp 1, r27
|
||||
be 4
|
||||
halt
|
||||
|
||||
# Now inspect the memory...
|
||||
movhi hi(0x05000100), r0, r29
|
||||
movea lo(0x05000100), r29, r29
|
||||
|
||||
ld.w 0[r29], r6
|
||||
movhi hi(0xA3B08191), r0, r7
|
||||
movea lo(0xA3B08191), r7, r7
|
||||
cmp r6, r7
|
||||
be 4
|
||||
halt
|
||||
|
||||
ld.w 4[r29], r6
|
||||
movhi hi(0xE7F4C5D2), r0, r7
|
||||
movea lo(0xE7F4C5D2), r7, r7
|
||||
cmp r6, r7
|
||||
be 4
|
||||
halt
|
||||
|
||||
ld.w 8[r29], r6
|
||||
movhi hi(0xE47CE66E), r0, r7
|
||||
movea lo(0xE47CE66E), r7, r7
|
||||
cmp r6, r7
|
||||
be 4
|
||||
halt
|
||||
|
||||
ld.w 12[r29], r6
|
||||
movhi hi(0x1111111f), r0, r7
|
||||
movea lo(0x1111111f), r7, r7
|
||||
cmp r6, r7
|
||||
be 4
|
||||
halt
|
||||
|
||||
andnbsu:
|
||||
# Set up our test data.
|
||||
movhi hi(0x05000000), r0, r30
|
||||
movea lo(0x05000000), r30, r30
|
||||
|
||||
# Source data
|
||||
movhi hi(0x76543210), r0, r7
|
||||
movea lo(0x76543210), r7, r7
|
||||
st.w r7, 0[r30]
|
||||
movhi hi(0xfedcba98), r0, r7
|
||||
movea lo(0xfedcba98), r7, r7
|
||||
st.w r7, 4[r30]
|
||||
movhi hi(0xdeadbeef), r0, r7
|
||||
movea lo(0xdeadbeef), r7, r7
|
||||
st.w r7, 8[r30]
|
||||
|
||||
|
||||
# Destination at 0x05000100
|
||||
addi 0x100, r30, r29
|
||||
|
||||
# Dst data (set to some known values)
|
||||
movhi hi(0x11111111), r0, r7
|
||||
movea lo(0x11111111), r7, r7
|
||||
st.w r7, 0[r29]
|
||||
st.w r7, 4[r29]
|
||||
st.w r7, 8[r29]
|
||||
st.w r7, 12[r29]
|
||||
|
||||
# Copy 93 bits
|
||||
movea 93, r0, r28
|
||||
|
||||
# Read from bit 4
|
||||
mov 4, r27
|
||||
|
||||
# Write starting at bit 7
|
||||
mov 7, r26
|
||||
|
||||
# Execute
|
||||
andnbsu
|
||||
|
||||
# 0 bits left
|
||||
cmp 0, r28
|
||||
be 4
|
||||
halt
|
||||
|
||||
# Dst offset now 4
|
||||
cmp 4, r26
|
||||
be 4
|
||||
halt
|
||||
|
||||
# Src offset now 1
|
||||
cmp 1, r27
|
||||
be 4
|
||||
halt
|
||||
|
||||
# Now inspect the memory...
|
||||
movhi hi(0x05000100), r0, r29
|
||||
movea lo(0x05000100), r29, r29
|
||||
|
||||
ld.w 0[r29], r6
|
||||
movhi hi(0x01100111), r0, r7
|
||||
movea lo(0x01100111), r7, r7
|
||||
cmp r6, r7
|
||||
be 4
|
||||
halt
|
||||
|
||||
ld.w 4[r29], r6
|
||||
movhi hi(0x01100110), r0, r7
|
||||
movea lo(0x01100110), r7, r7
|
||||
cmp r6, r7
|
||||
be 4
|
||||
halt
|
||||
|
||||
ld.w 8[r29], r6
|
||||
movhi hi(0x00100000), r0, r7
|
||||
movea lo(0x00100000), r7, r7
|
||||
cmp r6, r7
|
||||
be 4
|
||||
halt
|
||||
|
||||
ld.w 12[r29], r6
|
||||
movhi hi(0x11111111), r0, r7
|
||||
movea lo(0x11111111), r7, r7
|
||||
cmp r6, r7
|
||||
be 4
|
||||
halt
|
||||
|
||||
caxi:
|
||||
movhi 0x500, r0, r6
|
||||
movea 0x10, r6, r6
|
||||
|
|
Loading…
Reference in New Issue