mirror of
https://github.com/ProgramSnail/Lama.git
synced 2025-12-17 20:28:47 +00:00
Better support for assignment
This commit is contained in:
parent
7bf40bf26f
commit
061bd3c48d
2 changed files with 19 additions and 5 deletions
11
src/X86.ml
11
src/X86.ml
|
|
@ -180,11 +180,20 @@ let compile env code =
|
|||
| S _ | M _ -> [Mov (env'#loc x, eax); Mov (eax, s)]
|
||||
| _ -> [Mov (env'#loc x, s)]
|
||||
)
|
||||
|
||||
| ST x ->
|
||||
let env' = env#variable x in
|
||||
let s = env'#peek in
|
||||
env',
|
||||
(match s with
|
||||
| S _ | M _ -> [Mov (s, eax); Mov (eax, env'#loc x)]
|
||||
| _ -> [Mov (s, env'#loc x)]
|
||||
)
|
||||
|
||||
| STA ->
|
||||
call env ".sta" 3
|
||||
|
||||
| ST ->
|
||||
| STI ->
|
||||
let v, x, env' = env#pop2 in
|
||||
env'#push x,
|
||||
(match x with
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue