added load word immediate(lwi) pseudo-instruction

master
bx 2021-08-31 10:50:42 +01:00
parent b666aa05e9
commit 19e844f43e
1 changed files with 10 additions and 10 deletions

View File

@ -77,6 +77,7 @@ def ori(src, bits, dest)
end end
# store word # store word
# NOTE: this doesn't work unaligned
def sw(src, offset, dest) def sw(src, offset, dest)
# oooooo ddddd sssss iiiiiiii iiiiiiii # oooooo ddddd sssss iiiiiiii iiiiiiii
op = 0b101011_00000_00000_00000000_00000000 op = 0b101011_00000_00000_00000000_00000000
@ -93,6 +94,12 @@ def nop
word 0x00000000 word 0x00000000
end end
# load word immediate
def lwi(val, dest)
lui val >> 16, dest
ori dest, val, dest
end
@ -137,20 +144,13 @@ nop ; jmp $base_addr + 16 ; nop ; word 0xdeadbeef
# ops should always be in format of # ops should always be in format of
# src [args] -> dest # src [args] -> dest
lui $gp0 >> 16, 1 lwi $gp0, 1
ori 1, $gp0, 1
nop nop
#lui 0, 3 lwi 0x10040, 2
#ori 3, 0xffff, 3
#sw 1, 0, 2
32.times do |i|
ori i, 0xf00d, i
end
sw 1, 0, 2
nop ; nop ; nop ; nop nop ; nop ; nop ; nop
nop ; nop ; nop ; nop nop ; nop ; nop ; nop