summaryrefslogtreecommitdiff
path: root/cpu/instructions/parameter.txt
blob: 311c00af01dad613b4ab80e31c21b10cb3938a80 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
n: min number of bits to be able to represent all parameter types
y: min size required to represent each power of two value less than or equal to the current mode (in bytes, and greater than or equal to 1)
x: n + y + max([min size to represent each valid offset into the immediate value array], [min size to represent all registers])

Binary format:
	type[n], data[x]


Types:
	Short immediate reference:
		Value is placed directly in the data section

	Immediate reference:
		data[n to x-y-1]:
			size of immediate value

		data[x-y to x-1]:
			byte offset into the array of immediate values

	Register:
		data[n to x-y-1]:
			how much of the register to use

		data[x-y to x-1]:
			which register to use

	Memory at immediate reference:
		Uses RAM pointed to by the value as obtained in `immediate reference` above
		Size is specified by data[0 to n-1]

	Memory at register:
		Uses RAM pointed to by the value as obtained in `register` above
		Size is specified by data[0 to n-1]

	TODO: Will add more later

All memory references go through any configured translation thereof, unless specified otherwise