Improved ssa compiler
All checks were successful
/ test (push) Successful in 15s

This commit is contained in:
Eduard Urbach 2025-07-02 16:55:24 +02:00
parent c9c6b94c18
commit 3301cf5542
Signed by: akyoto
GPG key ID: 49226B848C78F6C8
49 changed files with 690 additions and 262 deletions

View file

@ -1,13 +1,14 @@
package ssa
import (
"fmt"
"strconv"
"strings"
"git.urbach.dev/cli/q/src/types"
)
type Syscall struct {
Id
Arguments
Liveness
Source
@ -27,14 +28,37 @@ func (v *Syscall) IsConst() bool {
return false
}
func (v *Syscall) String() string {
args := make([]string, 0, len(v.Arguments))
func (v *Syscall) Debug() string {
tmp := strings.Builder{}
tmp.WriteString("syscall(")
for _, arg := range v.Arguments {
args = append(args, arg.String())
for i, arg := range v.Arguments {
tmp.WriteString("%")
tmp.WriteString(strconv.Itoa(arg.ID()))
if i != len(v.Arguments)-1 {
tmp.WriteString(", ")
}
}
return fmt.Sprintf("syscall(%s)", strings.Join(args, ", "))
tmp.WriteString(")")
return tmp.String()
}
func (v *Syscall) String() string {
tmp := strings.Builder{}
tmp.WriteString("syscall(")
for i, arg := range v.Arguments {
tmp.WriteString(arg.String())
if i != len(v.Arguments)-1 {
tmp.WriteString(", ")
}
}
tmp.WriteString(")")
return tmp.String()
}
func (v *Syscall) Type() types.Type {