compiler: implement syscall.rawSyscallNoError in inline assembly

This makes it possible to call syscall.Getpid() on Linux, for example.
These syscalls never return an error so don't need any error checking.
This commit is contained in:
Ayke van Laethem
2021-06-25 15:00:32 +02:00
committed by Ron Evans
parent e02f308d43
commit e65592599c
2 changed files with 33 additions and 9 deletions
+3 -1
View File
@@ -23,7 +23,7 @@ import (
// Version of the compiler pacakge. Must be incremented each time the compiler
// package changes in a way that affects the generated LLVM module.
// This version is independent of the TinyGo version number.
const Version = 11 // last change: change method name globals
const Version = 12 // last change: implement syscall.rawSyscallNoError
func init() {
llvm.InitializeAllTargets()
@@ -1310,6 +1310,8 @@ func (b *builder) createFunctionCall(instr *ssa.CallCommon) (llvm.Value, error)
return b.emitCSROperation(instr)
case strings.HasPrefix(name, "syscall.Syscall"):
return b.createSyscall(instr)
case strings.HasPrefix(name, "syscall.rawSyscallNoError"):
return b.createRawSyscallNoError(instr)
case strings.HasPrefix(name, "runtime/volatile.Load"):
return b.createVolatileLoad(instr)
case strings.HasPrefix(name, "runtime/volatile.Store"):