mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-04-29 17:02:16 +00:00
inline single-use implementations
This commit is contained in:
parent
3a60638f72
commit
d3ca06b7ce
@ -10,7 +10,7 @@ var startOffset: usize = (HEAP_BASE + AL_MASK) & ~AL_MASK;
|
|||||||
var offset: usize = startOffset;
|
var offset: usize = startOffset;
|
||||||
|
|
||||||
// @ts-ignore: decorator
|
// @ts-ignore: decorator
|
||||||
@unsafe @global
|
@unsafe @global @inline
|
||||||
function __memory_allocate(size: usize): usize {
|
function __memory_allocate(size: usize): usize {
|
||||||
if (size > MAX_SIZE_32) unreachable();
|
if (size > MAX_SIZE_32) unreachable();
|
||||||
var ptr = offset;
|
var ptr = offset;
|
||||||
@ -30,12 +30,12 @@ function __memory_allocate(size: usize): usize {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// @ts-ignore: decorator
|
// @ts-ignore: decorator
|
||||||
@unsafe @global
|
@unsafe @global @inline
|
||||||
function __memory_free(ptr: usize): void {
|
function __memory_free(ptr: usize): void {
|
||||||
}
|
}
|
||||||
|
|
||||||
// @ts-ignore: decorator
|
// @ts-ignore: decorator
|
||||||
@unsafe @global
|
@unsafe @global @inline
|
||||||
function __memory_reset(): void {
|
function __memory_reset(): void {
|
||||||
offset = startOffset;
|
offset = startOffset;
|
||||||
}
|
}
|
||||||
|
@ -7,13 +7,13 @@ declare function _malloc(size: usize): usize;
|
|||||||
declare function _free(ptr: usize): void;
|
declare function _free(ptr: usize): void;
|
||||||
|
|
||||||
// @ts-ignore: decorator
|
// @ts-ignore: decorator
|
||||||
@unsafe @global
|
@unsafe @global @inline
|
||||||
function __memory_allocate(size: usize): usize {
|
function __memory_allocate(size: usize): usize {
|
||||||
return _malloc(size);
|
return _malloc(size);
|
||||||
}
|
}
|
||||||
|
|
||||||
// @ts-ignore: decorator
|
// @ts-ignore: decorator
|
||||||
@unsafe @global
|
@unsafe @global @inline
|
||||||
function __memory_free(ptr: usize): void {
|
function __memory_free(ptr: usize): void {
|
||||||
_free(ptr);
|
_free(ptr);
|
||||||
}
|
}
|
||||||
|
@ -7,13 +7,13 @@ declare function malloc(size: usize): usize;
|
|||||||
declare function free(ptr: usize): void;
|
declare function free(ptr: usize): void;
|
||||||
|
|
||||||
// @ts-ignore: decorator
|
// @ts-ignore: decorator
|
||||||
@unsafe @global
|
@unsafe @global @inline
|
||||||
function __memory_allocate(size: usize): usize {
|
function __memory_allocate(size: usize): usize {
|
||||||
return malloc(size);
|
return malloc(size);
|
||||||
}
|
}
|
||||||
|
|
||||||
// @ts-ignore: decorator
|
// @ts-ignore: decorator
|
||||||
@unsafe @global
|
@unsafe @global @inline
|
||||||
function __memory_free(ptr: usize): void {
|
function __memory_free(ptr: usize): void {
|
||||||
free(ptr);
|
free(ptr);
|
||||||
}
|
}
|
||||||
|
@ -423,7 +423,7 @@ var ROOT: Root = changetype<Root>(0);
|
|||||||
|
|
||||||
/** Allocates a chunk of memory. */
|
/** Allocates a chunk of memory. */
|
||||||
// @ts-ignore: decorator
|
// @ts-ignore: decorator
|
||||||
@unsafe @global
|
@unsafe @global @inline
|
||||||
function __memory_allocate(size: usize): usize {
|
function __memory_allocate(size: usize): usize {
|
||||||
// initialize if necessary
|
// initialize if necessary
|
||||||
var root = ROOT;
|
var root = ROOT;
|
||||||
@ -473,7 +473,7 @@ function __memory_allocate(size: usize): usize {
|
|||||||
|
|
||||||
/** Frees the chunk of memory at the specified address. */
|
/** Frees the chunk of memory at the specified address. */
|
||||||
// @ts-ignore: decorator
|
// @ts-ignore: decorator
|
||||||
@unsafe @global
|
@unsafe @global @inline
|
||||||
function __memory_free(data: usize): void {
|
function __memory_free(data: usize): void {
|
||||||
if (data) {
|
if (data) {
|
||||||
let root = ROOT;
|
let root = ROOT;
|
||||||
|
@ -141,6 +141,8 @@ export function memcpy(dest: usize, src: usize, n: usize): void { // see: musl/s
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @ts-ignore: decorator
|
||||||
|
@inline
|
||||||
export function memmove(dest: usize, src: usize, n: usize): void { // see: musl/src/string/memmove.c
|
export function memmove(dest: usize, src: usize, n: usize): void { // see: musl/src/string/memmove.c
|
||||||
if (dest === src) return;
|
if (dest === src) return;
|
||||||
if (src + n <= dest || dest + n <= src) {
|
if (src + n <= dest || dest + n <= src) {
|
||||||
@ -182,6 +184,8 @@ export function memmove(dest: usize, src: usize, n: usize): void { // see: musl/
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @ts-ignore: decorator
|
||||||
|
@inline
|
||||||
export function memset(dest: usize, c: u8, n: usize): void { // see: musl/src/string/memset
|
export function memset(dest: usize, c: u8, n: usize): void { // see: musl/src/string/memset
|
||||||
|
|
||||||
// fill head and tail with minimal branching
|
// fill head and tail with minimal branching
|
||||||
@ -242,6 +246,8 @@ export function memset(dest: usize, c: u8, n: usize): void { // see: musl/src/st
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @ts-ignore: decorator
|
||||||
|
@inline
|
||||||
export function memcmp(vl: usize, vr: usize, n: usize): i32 { // see: musl/src/string/memcmp.c
|
export function memcmp(vl: usize, vr: usize, n: usize): i32 { // see: musl/src/string/memcmp.c
|
||||||
if (vl == vr) return 0;
|
if (vl == vr) return 0;
|
||||||
while (n != 0 && load<u8>(vl) == load<u8>(vr)) {
|
while (n != 0 && load<u8>(vl) == load<u8>(vr)) {
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user