Added svcReleaseSemaphore and svcCreateSemaphore

Tested.
Here you're overwriting the caller's r4, according to AAPCS. Please use instead a scratch register such as r3.