Rename Jerry's libc functions: __function_name -> function_name.

This commit is contained in:
Ruben Ayrapetyan
2015-02-12 20:15:56 +03:00
parent af77eac8e4
commit 7e4c16e4e6
36 changed files with 484 additions and 532 deletions
+12 -12
View File
@@ -75,7 +75,7 @@ static void
libc_printf_putchar (_FILE *stream, /**< stream pointer */ libc_printf_putchar (_FILE *stream, /**< stream pointer */
char character) /**< character */ char character) /**< character */
{ {
__fwrite (&character, 1, sizeof (character), stream); fwrite (&character, 1, sizeof (character), stream);
} /* libc_printf_putchar */ } /* libc_printf_putchar */
/** /**
@@ -88,7 +88,7 @@ libc_printf_justified_string_output (_FILE *stream, /**< stream pointer */
bool is_left_justify, /**< justify to left (true) or right (false) */ bool is_left_justify, /**< justify to left (true) or right (false) */
bool is_zero_padding) /**< left-pad with zeroes (true) or spaces (false) */ bool is_zero_padding) /**< left-pad with zeroes (true) or spaces (false) */
{ {
const size_t str_length = __strlen (string_p); const size_t str_length = strlen (string_p);
size_t outputted_length = 0; size_t outputted_length = 0;
@@ -103,7 +103,7 @@ libc_printf_justified_string_output (_FILE *stream, /**< stream pointer */
} }
} }
__fwrite (string_p, 1, str_length * sizeof (*string_p), stream); fwrite (string_p, 1, str_length * sizeof (*string_p), stream);
outputted_length += str_length; outputted_length += str_length;
if (is_left_justify) if (is_left_justify)
@@ -476,7 +476,7 @@ libc_printf_write_u_o_x_X(_FILE *stream, /**< stream pointer */
* @return number of characters printed * @return number of characters printed
*/ */
static int static int
__vfprintf (_FILE *stream, /**< stream pointer */ vfprintf (_FILE *stream, /**< stream pointer */
const char *format, /**< format string */ const char *format, /**< format string */
va_list args) /**< arguments */ va_list args) /**< arguments */
{ {
@@ -696,7 +696,7 @@ __vfprintf (_FILE *stream, /**< stream pointer */
if (value == NULL) if (value == NULL)
{ {
__printf ("(nil)"); printf ("(nil)");
} }
else else
{ {
@@ -725,7 +725,7 @@ __vfprintf (_FILE *stream, /**< stream pointer */
va_end (args_copy); va_end (args_copy);
return 0; return 0;
} /* __vfprintf */ } /* vfprintf */
/** /**
* fprintf * fprintf
@@ -733,7 +733,7 @@ __vfprintf (_FILE *stream, /**< stream pointer */
* @return number of characters printed * @return number of characters printed
*/ */
int int
__fprintf (_FILE *stream, /**< stream pointer */ fprintf (_FILE *stream, /**< stream pointer */
const char *format, /**< format string */ const char *format, /**< format string */
...) /**< parameters' values */ ...) /**< parameters' values */
{ {
@@ -741,12 +741,12 @@ __fprintf (_FILE *stream, /**< stream pointer */
va_start (args, format); va_start (args, format);
int ret = __vfprintf (stream, format, args); int ret = vfprintf (stream, format, args);
va_end (args); va_end (args);
return ret; return ret;
} /* __fprintf */ } /* fprintf */
/** /**
* printf * printf
@@ -754,17 +754,17 @@ __fprintf (_FILE *stream, /**< stream pointer */
* @return number of characters printed * @return number of characters printed
*/ */
int int
__printf (const char *format, /**< format string */ printf (const char *format, /**< format string */
...) /**< parameters' values */ ...) /**< parameters' values */
{ {
va_list args; va_list args;
va_start (args, format); va_start (args, format);
int ret = __vfprintf (LIBC_STDOUT, format, args); int ret = vfprintf (LIBC_STDOUT, format, args);
va_end (args); va_end (args);
return ret; return ret;
} /* __printf */ } /* printf */
+47 -95
View File
@@ -20,26 +20,27 @@
#include "jerry-libc.h" #include "jerry-libc.h"
/** /**
* memcpy alias to __memcpy (for compiler usage) * Unreachable stubs for routines that are never called,
* but referenced from third-party libraries.
*/ */
extern "C" void *memcpy (void *s1, const void*s2, size_t n); #define JRT_UNREACHABLE_STUB_FOR(...) \
extern "C" __VA_ARGS__; \
__used __VA_ARGS__ \
{ \
JERRY_UNREACHABLE (); \
}
/** JRT_UNREACHABLE_STUB_FOR(void abort (void))
* memset alias to __memset (for compiler usage) JRT_UNREACHABLE_STUB_FOR(int raise (int sig_no __unused))
*/
extern "C" void *memset (void *s, int c, size_t n);
/** #undef JRT_UNREACHABLE_STUB_FOR
* memmove alias to __memmove (for compiler usage)
*/
extern "C" void *memmove (void *s1, const void*s2, size_t n);
#ifdef __GNUC__ #ifdef __GNUC__
/* /*
* Making GCC not to replace: * Making GCC not to replace:
* - __memcpy -> call to memcpy; * - memcpy -> call to memcpy;
* - __memset -> call to memset; * - memset -> call to memset;
* - __memmove -> call to memmove. * - memmove -> call to memmove.
*/ */
CALL_PRAGMA(GCC diagnostic push) CALL_PRAGMA(GCC diagnostic push)
CALL_PRAGMA(GCC diagnostic ignored "-Wpragmas") CALL_PRAGMA(GCC diagnostic ignored "-Wpragmas")
@@ -47,69 +48,15 @@ CALL_PRAGMA(GCC push_options)
CALL_PRAGMA(GCC optimize ("-fno-tree-loop-distribute-patterns")) CALL_PRAGMA(GCC optimize ("-fno-tree-loop-distribute-patterns"))
#endif /* __GNUC__ */ #endif /* __GNUC__ */
/**
* memcpy alias to __memcpy (for compiler usage)
*/
void* __used
memcpy (void *s1, /**< destination */
const void* s2, /**< source */
size_t n) /**< bytes number */
{
return __memcpy (s1, s2, n);
} /* memcpy */
/**
* memset alias to __memset (for compiler usage)
*/
void* __used
memset (void *s, /**< area to set values in */
int c, /**< value to set */
size_t n) /**< area size */
{
return __memset (s, c, n);
} /* memset */
/**
* memmove alias to __memmove (for compiler usage)
*/
void* __used
memmove (void *s1, /**< destination*/
const void*s2, /**< source */
size_t n) /**< area size */
{
return __memmove (s1, s2, n);
} /* memmove */
#ifdef __GNUC__
CALL_PRAGMA(GCC pop_options)
CALL_PRAGMA(GCC diagnostic pop)
#endif /* __GNUC__ */
/**
* Unreachable stubs for routines that are never called,
* but referenced from third-party libraries.
*/
#define JRT_UNREACHABLE_STUB_FOR(...) \
extern "C" __VA_ARGS__; \
__used __VA_ARGS__ \
{ \
JERRY_UNREACHABLE (); \
}
JRT_UNREACHABLE_STUB_FOR(void abort (void))
JRT_UNREACHABLE_STUB_FOR(int raise (int sig_no __unused))
#undef JRT_UNREACHABLE_STUB_FOR
/** /**
* memset * memset
* *
* @return @s * @return @s
*/ */
void* void*
__memset (void *s, /**< area to set values in */ memset (void *s, /**< area to set values in */
int c, /**< value to set */ int c, /**< value to set */
size_t n) /**< area size */ size_t n) /**< area size */
{ {
uint8_t *area_p = (uint8_t *) s; uint8_t *area_p = (uint8_t *) s;
for (size_t index = 0; index < n; index++) for (size_t index = 0; index < n; index++)
@@ -118,7 +65,7 @@ __memset (void *s, /**< area to set values in */
} }
return s; return s;
} /* __memset */ } /* memset */
/** /**
* memcmp * memcmp
@@ -128,9 +75,9 @@ __memset (void *s, /**< area to set values in */
* 1, otherwise * 1, otherwise
*/ */
int int
__memcmp (const void *s1, /**< first area */ memcmp (const void *s1, /**< first area */
const void *s2, /**< second area */ const void *s2, /**< second area */
size_t n) /**< area size */ size_t n) /**< area size */
{ {
const uint8_t *area1_p = (uint8_t *) s1, *area2_p = (uint8_t *) s2; const uint8_t *area1_p = (uint8_t *) s1, *area2_p = (uint8_t *) s2;
for (size_t index = 0; index < n; index++) for (size_t index = 0; index < n; index++)
@@ -146,15 +93,15 @@ __memcmp (const void *s1, /**< first area */
} }
return 0; return 0;
} /* __memcmp */ } /* memcmp */
/** /**
* memcpy * memcpy
*/ */
void * void *
__memcpy (void *s1, /**< destination */ memcpy (void *s1, /**< destination */
const void *s2, /**< source */ const void *s2, /**< source */
size_t n) /**< bytes number */ size_t n) /**< bytes number */
{ {
uint8_t *area1_p = (uint8_t *) s1; uint8_t *area1_p = (uint8_t *) s1;
const uint8_t *area2_p = (const uint8_t *) s2; const uint8_t *area2_p = (const uint8_t *) s2;
@@ -165,7 +112,7 @@ __memcpy (void *s1, /**< destination */
} }
return s1; return s1;
} /* __memcpy */ } /* memcpy */
/** /**
* memmove * memmove
@@ -173,9 +120,9 @@ __memcpy (void *s1, /**< destination */
* @return the dest pointer's value * @return the dest pointer's value
*/ */
void * void *
__memmove (void *s1, /**< destination */ memmove (void *s1, /**< destination */
const void *s2, /**< source */ const void *s2, /**< source */
size_t n) /**< bytes number */ size_t n) /**< bytes number */
{ {
uint8_t *dest_p = (uint8_t *) s1; uint8_t *dest_p = (uint8_t *) s1;
const uint8_t *src_p = (const uint8_t *) s2; const uint8_t *src_p = (const uint8_t *) s2;
@@ -196,12 +143,17 @@ __memmove (void *s1, /**< destination */
} }
return s1; return s1;
} /* __memmove */ } /* memmove */
#ifdef __GNUC__
CALL_PRAGMA(GCC pop_options)
CALL_PRAGMA(GCC diagnostic pop)
#endif /* __GNUC__ */
/** Compare two strings. return an integer less than, equal to, or greater than zero /** Compare two strings. return an integer less than, equal to, or greater than zero
if s1 is found, respectively, to be less than, to match, or be greater than s2. */ if s1 is found, respectively, to be less than, to match, or be greater than s2. */
int int
__strcmp (const char *s1, const char *s2) strcmp (const char *s1, const char *s2)
{ {
size_t i; size_t i;
if (s1 == NULL) if (s1 == NULL)
@@ -244,7 +196,7 @@ __strcmp (const char *s1, const char *s2)
if the first n character of s1 is found, respectively, to be less than, to match, if the first n character of s1 is found, respectively, to be less than, to match,
or be greater than the first n character of s2. */ or be greater than the first n character of s2. */
int int
__strncmp (const char *s1, const char *s2, size_t n) strncmp (const char *s1, const char *s2, size_t n)
{ {
size_t i; size_t i;
if (s1 == NULL) if (s1 == NULL)
@@ -282,7 +234,7 @@ __strncmp (const char *s1, const char *s2, size_t n)
null byte among the first n bytes of src, the string placed in dest will not be null-terminated. null byte among the first n bytes of src, the string placed in dest will not be null-terminated.
@return a pointer to the destination string dest. */ @return a pointer to the destination string dest. */
char * char *
__strncpy (char *dest, const char *src, size_t n) strncpy (char *dest, const char *src, size_t n)
{ {
size_t i; size_t i;
@@ -300,7 +252,7 @@ __strncpy (char *dest, const char *src, size_t n)
/** Calculate the length of a string. */ /** Calculate the length of a string. */
size_t size_t
__strlen (const char *s) strlen (const char *s)
{ {
size_t i; size_t i;
for (i = 0; s[i]; i++) for (i = 0; s[i]; i++)
@@ -314,7 +266,7 @@ __strlen (const char *s)
/** Checks for white-space characters. In the "C" and "POSIX" locales, these are: space, /** Checks for white-space characters. In the "C" and "POSIX" locales, these are: space,
form-feed ('\f'), newline ('\n'), carriage return ('\r'), horizontal tab ('\t'), and vertical tab ('\v'). */ form-feed ('\f'), newline ('\n'), carriage return ('\r'), horizontal tab ('\t'), and vertical tab ('\v'). */
int int
__isspace (int c) isspace (int c)
{ {
switch (c) switch (c)
{ {
@@ -336,14 +288,14 @@ __isspace (int c)
/** Checks for an uppercase letter. */ /** Checks for an uppercase letter. */
int int
__isupper (int c) isupper (int c)
{ {
return c >= 'A' && c <= 'Z'; return c >= 'A' && c <= 'Z';
} }
/** Checks for an lowercase letter. */ /** Checks for an lowercase letter. */
int int
__islower (int c) islower (int c)
{ {
return c >= 'a' && c <= 'z'; return c >= 'a' && c <= 'z';
} }
@@ -351,14 +303,14 @@ __islower (int c)
/** Checks for an alphabetic character. /** Checks for an alphabetic character.
In the standard "C" locale, it is equivalent to (isupper (c) || islower (c)). */ In the standard "C" locale, it is equivalent to (isupper (c) || islower (c)). */
int int
__isalpha (int c) isalpha (int c)
{ {
return __isupper (c) || __islower (c); return isupper (c) || islower (c);
} }
/** Checks for a digit (0 through 9). */ /** Checks for a digit (0 through 9). */
int int
__isdigit (int c) isdigit (int c)
{ {
return c >= '0' && c <= '9'; return c >= '0' && c <= '9';
} }
@@ -366,7 +318,7 @@ __isdigit (int c)
/** checks for a hexadecimal digits, that is, one of /** checks for a hexadecimal digits, that is, one of
0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F. */ 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F. */
int int
__isxdigit (int c) isxdigit (int c)
{ {
return __isdigit (c) || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F'); return isdigit (c) || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F');
} }
+26 -26
View File
@@ -38,29 +38,29 @@ typedef void _FILE;
*/ */
#define LIBC_STDERR (_FILE*)2 #define LIBC_STDERR (_FILE*)2
extern void* __memset (void *s, int c, size_t n); extern void* memset (void *s, int c, size_t n);
extern int __memcmp (const void *s1, const void *s2, size_t n); extern int memcmp (const void *s1, const void *s2, size_t n);
extern void* __memcpy (void *s1, const void *s2, size_t n); extern void* memcpy (void *s1, const void *s2, size_t n);
extern void* __memmove (void *dest, const void *src, size_t n); extern void* memmove (void *dest, const void *src, size_t n);
extern int __printf (const char *format, ...); extern int printf (const char *format, ...);
extern int __putchar (int); extern int putchar (int);
extern "C" void __noreturn __exit (int); extern "C" void __noreturn exit (int);
extern int __strcmp (const char *, const char *); extern int strcmp (const char *, const char *);
extern int __strncmp (const char *, const char *, size_t); extern int strncmp (const char *, const char *, size_t);
extern char* __strncpy (char *, const char *, size_t); extern char* strncpy (char *, const char *, size_t);
extern float __strtof (const char *, char **); extern float __strtof (const char *, char **);
extern size_t __strlen (const char *); extern size_t strlen (const char *);
extern int __isspace (int); extern int isspace (int);
extern int __isupper (int); extern int isupper (int);
extern int __islower (int); extern int islower (int);
extern int __isalpha (int); extern int isalpha (int);
extern int __isdigit (int); extern int isdigit (int);
extern int __isxdigit (int); extern int isxdigit (int);
/** /**
* 'whence' argument of __fseek that identifies position * 'whence' argument of fseek that identifies position
* the 'offset' argument is added to. * the 'offset' argument is added to.
*/ */
typedef enum typedef enum
@@ -70,14 +70,14 @@ typedef enum
__SEEK_END /**< relative to end of file */ __SEEK_END /**< relative to end of file */
} _whence_t; } _whence_t;
extern _FILE* __fopen (const char *, const char *); extern _FILE* fopen (const char *, const char *);
extern int __fclose (_FILE *); extern int fclose (_FILE *);
extern int __fseek (_FILE *, long offset, _whence_t); extern int fseek (_FILE *, long offset, _whence_t);
extern long __ftell (_FILE *); extern long ftell (_FILE *);
extern void __rewind (_FILE *); extern void rewind (_FILE *);
extern size_t __fread (void *, size_t, size_t, _FILE *); extern size_t fread (void *, size_t, size_t, _FILE *);
extern size_t __fwrite (const void *, size_t, size_t, _FILE *); extern size_t fwrite (const void *, size_t, size_t, _FILE *);
extern int __fprintf (_FILE *, const char *, ...); extern int fprintf (_FILE *, const char *, ...);
extern void jrt_set_mem_limits (size_t data_size, size_t stack_size); extern void jrt_set_mem_limits (size_t data_size, size_t stack_size);
+2 -2
View File
@@ -1,4 +1,4 @@
/* Copyright 2014 Samsung Electronics Co., Ltd. /* Copyright 2014-2015 Samsung Electronics Co., Ltd.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -72,7 +72,7 @@
add r1, sp, #4; \ add r1, sp, #4; \
bl main; \ bl main; \
\ \
bl __exit; \ bl exit; \
1: \ 1: \
b 1b b 1b
+2 -2
View File
@@ -1,4 +1,4 @@
/* Copyright 2014 Samsung Electronics Co., Ltd. /* Copyright 2014-2015 Samsung Electronics Co., Ltd.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -62,7 +62,7 @@
callq main; \ callq main; \
\ \
mov %rax, %rdi; \ mov %rax, %rdi; \
callq __exit; \ callq exit; \
1: \ 1: \
jmp 1b jmp 1b
+2 -2
View File
@@ -1,4 +1,4 @@
/* Copyright 2014 Samsung Electronics Co., Ltd. /* Copyright 2014-2015 Samsung Electronics Co., Ltd.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -65,7 +65,7 @@ FIXME(Implement x86 ABI);
callq main; \ callq main; \
\ \
mov %rax, %rdi; \ mov %rax, %rdi; \
callq __exit; \ callq exit; \
1: \ 1: \
jmp 1b jmp 1b
+20 -20
View File
@@ -120,18 +120,18 @@ syscall_3 (long int syscall_no, /**< syscall number */
/** Output of character. Writes the character c, cast to an unsigned char, to stdout. */ /** Output of character. Writes the character c, cast to an unsigned char, to stdout. */
int int
__putchar (int c) putchar (int c)
{ {
__fwrite (&c, 1, sizeof (char), LIBC_STDOUT); fwrite (&c, 1, sizeof (char), LIBC_STDOUT);
return c; return c;
} /* __putchar */ } /* putchar */
/** /**
* Exit - cause normal process termination with specified status code * Exit - cause normal process termination with specified status code
*/ */
void __noreturn void __noreturn __used
__exit (int status) /**< status code */ exit (int status) /**< status code */
{ {
syscall_1 (__NR_close, (long int)LIBC_STDIN); syscall_1 (__NR_close, (long int)LIBC_STDIN);
syscall_1 (__NR_close, (long int)LIBC_STDOUT); syscall_1 (__NR_close, (long int)LIBC_STDOUT);
@@ -143,7 +143,7 @@ __exit (int status) /**< status code */
{ {
/* unreachable */ /* unreachable */
} }
} /* __exit */ } /* exit */
/** /**
* fopen * fopen
@@ -152,7 +152,7 @@ __exit (int status) /**< status code */
* NULL - otherwise * NULL - otherwise
*/ */
_FILE* _FILE*
__fopen (const char *path, /**< file path */ fopen (const char *path, /**< file path */
const char *mode) /**< file open mode */ const char *mode) /**< file open mode */
{ {
bool may_read = false; bool may_read = false;
@@ -233,17 +233,17 @@ __fopen (const char *path, /**< file path */
long int ret = syscall_3 (__NR_open, (long int) path, flags, access); long int ret = syscall_3 (__NR_open, (long int) path, flags, access);
return (void*) (uintptr_t) (ret); return (void*) (uintptr_t) (ret);
} /* __fopen */ } /* fopen */
/** /**
* The rewind () function sets the file position indicator * The rewind () function sets the file position indicator
* for the stream pointed to by STREAM to the beginning of the file. * for the stream pointed to by STREAM to the beginning of the file.
*/ */
void void
__rewind (_FILE *stream) /**< stream pointer */ rewind (_FILE *stream) /**< stream pointer */
{ {
syscall_3 (__NR_lseek, (long int) stream, 0, SEEK_SET); syscall_3 (__NR_lseek, (long int) stream, 0, SEEK_SET);
} /* __rewind */ } /* rewind */
/** /**
* fclose * fclose
@@ -252,18 +252,18 @@ __rewind (_FILE *stream) /**< stream pointer */
* non-zero value - otherwise. * non-zero value - otherwise.
*/ */
int int
__fclose (_FILE *fp) /**< stream pointer */ fclose (_FILE *fp) /**< stream pointer */
{ {
syscall_2 (__NR_close, (long int)fp, 0); syscall_2 (__NR_close, (long int)fp, 0);
return 0; return 0;
} /* __fclose */ } /* fclose */
/** /**
* fseek * fseek
*/ */
int int
__fseek (_FILE * fp, /**< stream pointer */ fseek (_FILE * fp, /**< stream pointer */
long offset, /**< offset */ long offset, /**< offset */
_whence_t whence) /**< specifies position type _whence_t whence) /**< specifies position type
to add offset to */ to add offset to */
@@ -291,18 +291,18 @@ __fseek (_FILE * fp, /**< stream pointer */
syscall_3 (__NR_lseek, (long int)fp, offset, whence_real); syscall_3 (__NR_lseek, (long int)fp, offset, whence_real);
return 0; return 0;
} /* __fseek */ } /* fseek */
/** /**
* ftell * ftell
*/ */
long long
__ftell (_FILE * fp) /**< stream pointer */ ftell (_FILE * fp) /**< stream pointer */
{ {
long int ret = syscall_3 (__NR_lseek, (long int)fp, 0, SEEK_CUR); long int ret = syscall_3 (__NR_lseek, (long int)fp, 0, SEEK_CUR);
return ret; return ret;
} /* __ftell */ } /* ftell */
/** /**
* fread * fread
@@ -310,7 +310,7 @@ __ftell (_FILE * fp) /**< stream pointer */
* @return number of bytes read * @return number of bytes read
*/ */
size_t size_t
__fread (void *ptr, /**< address of buffer to read to */ fread (void *ptr, /**< address of buffer to read to */
size_t size, /**< size of elements to read */ size_t size, /**< size of elements to read */
size_t nmemb, /**< number of elements to read */ size_t nmemb, /**< number of elements to read */
_FILE *stream) /**< stream pointer */ _FILE *stream) /**< stream pointer */
@@ -330,7 +330,7 @@ __fread (void *ptr, /**< address of buffer to read to */
while (bytes_read != size * nmemb && ret != 0); while (bytes_read != size * nmemb && ret != 0);
return bytes_read; return bytes_read;
} /* __fread */ } /* fread */
/** /**
* fwrite * fwrite
@@ -338,7 +338,7 @@ __fread (void *ptr, /**< address of buffer to read to */
* @return number of bytes written * @return number of bytes written
*/ */
size_t size_t
__fwrite (const void *ptr, /**< data to write */ fwrite (const void *ptr, /**< data to write */
size_t size, /**< size of elements to write */ size_t size, /**< size of elements to write */
size_t nmemb, /**< number of elements */ size_t nmemb, /**< number of elements */
_FILE *stream) /**< stream pointer */ _FILE *stream) /**< stream pointer */
@@ -357,7 +357,7 @@ __fwrite (const void *ptr, /**< data to write */
while (bytes_written != size * nmemb); while (bytes_written != size * nmemb);
return bytes_written; return bytes_written;
} /* __fwrite */ } /* fwrite */
/** /**
* Setup new memory limits * Setup new memory limits
+8 -8
View File
@@ -1,4 +1,4 @@
/* Copyright 2014 Samsung Electronics Co., Ltd. /* Copyright 2014-2015 Samsung Electronics Co., Ltd.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -25,14 +25,14 @@ extern void __noreturn exit (int status);
/** Output of character. Writes the character c, cast to an unsigned char, to stdout. */ /** Output of character. Writes the character c, cast to an unsigned char, to stdout. */
int int
__putchar (int c) putchar (int c)
{ {
JERRY_UNIMPLEMENTED_REF_UNUSED_VARS("putchar is not implemented for STM32F3.", c); JERRY_UNIMPLEMENTED_REF_UNUSED_VARS("putchar is not implemented for STM32F3.", c);
} /* __putchar */ } /* putchar */
/** exit - cause normal process termination */ /** exit - cause normal process termination */
void __noreturn void __noreturn __used
__exit (int status __unused) exit (int status __unused)
{ {
/** /**
* TODO: Blink LEDs? status -> binary -> LEDs? * TODO: Blink LEDs? status -> binary -> LEDs?
@@ -41,7 +41,7 @@ __exit (int status __unused)
while (true) while (true)
{ {
} }
} /* __exit */ } /* exit */
/** /**
* fwrite * fwrite
@@ -49,11 +49,11 @@ __exit (int status __unused)
* @return number of bytes written * @return number of bytes written
*/ */
size_t size_t
__fwrite (const void *ptr, /**< data to write */ fwrite (const void *ptr, /**< data to write */
size_t size, /**< size of elements to write */ size_t size, /**< size of elements to write */
size_t nmemb, /**< number of elements */ size_t nmemb, /**< number of elements */
_FILE *stream) /**< stream pointer */ _FILE *stream) /**< stream pointer */
{ {
JERRY_UNIMPLEMENTED_REF_UNUSED_VARS("fwrite is not implemented for STM32F3.", ptr, size, nmemb, stream); JERRY_UNIMPLEMENTED_REF_UNUSED_VARS("fwrite is not implemented for STM32F3.", ptr, size, nmemb, stream);
} /* __fwrite */ } /* fwrite */
+8 -8
View File
@@ -1,4 +1,4 @@
/* Copyright 2014 Samsung Electronics Co., Ltd. /* Copyright 2014-2015 Samsung Electronics Co., Ltd.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -25,14 +25,14 @@ extern void __noreturn exit (int status);
/** Output of character. Writes the character c, cast to an unsigned char, to stdout. */ /** Output of character. Writes the character c, cast to an unsigned char, to stdout. */
int int
__putchar (int c) putchar (int c)
{ {
JERRY_UNIMPLEMENTED_REF_UNUSED_VARS("putchar is not implemented for STM32F4.", c); JERRY_UNIMPLEMENTED_REF_UNUSED_VARS("putchar is not implemented for STM32F4.", c);
} /* __putchar */ } /* putchar */
/** exit - cause normal process termination */ /** exit - cause normal process termination */
void __noreturn void __noreturn __used
__exit (int status __unused) exit (int status __unused)
{ {
/** /**
* TODO: Blink LEDs? status -> binary -> LEDs? * TODO: Blink LEDs? status -> binary -> LEDs?
@@ -41,7 +41,7 @@ __exit (int status __unused)
while (true) while (true)
{ {
} }
} /* __exit */ } /* exit */
/** /**
* fwrite * fwrite
@@ -49,11 +49,11 @@ __exit (int status __unused)
* @return number of bytes written * @return number of bytes written
*/ */
size_t size_t
__fwrite (const void *ptr, /**< data to write */ fwrite (const void *ptr, /**< data to write */
size_t size, /**< size of elements to write */ size_t size, /**< size of elements to write */
size_t nmemb, /**< number of elements */ size_t nmemb, /**< number of elements */
_FILE *stream) /**< stream pointer */ _FILE *stream) /**< stream pointer */
{ {
JERRY_UNIMPLEMENTED_REF_UNUSED_VARS("fwrite is not implemented for STM32F4.", ptr, size, nmemb, stream); JERRY_UNIMPLEMENTED_REF_UNUSED_VARS("fwrite is not implemented for STM32F4.", ptr, size, nmemb, stream);
} /* __fwrite */ } /* fwrite */
+5 -5
View File
@@ -1,4 +1,4 @@
/* Copyright 2014 Samsung Electronics Co., Ltd. /* Copyright 2014-2015 Samsung Electronics Co., Ltd.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -26,7 +26,7 @@
void void
led_toggle (uint32_t led_id) /**< index of LED */ led_toggle (uint32_t led_id) /**< index of LED */
{ {
__printf ("led_toggle: %d\n", led_id); printf ("led_toggle: %d\n", led_id);
} }
/** /**
@@ -35,7 +35,7 @@ led_toggle (uint32_t led_id) /**< index of LED */
void void
led_on (uint32_t led_id) /**< index of LED */ led_on (uint32_t led_id) /**< index of LED */
{ {
__printf ("led_on: %d\n", led_id); printf ("led_on: %d\n", led_id);
} }
/** /**
@@ -44,7 +44,7 @@ led_on (uint32_t led_id) /**< index of LED */
void void
led_off (uint32_t led_id) /**< index of LED */ led_off (uint32_t led_id) /**< index of LED */
{ {
__printf ("led_off: %d\n", led_id); printf ("led_off: %d\n", led_id);
} }
/** /**
@@ -53,7 +53,7 @@ led_off (uint32_t led_id) /**< index of LED */
void void
led_blink_once (uint32_t led_id) /**< index of LED */ led_blink_once (uint32_t led_id) /**< index of LED */
{ {
__printf ("led_blink_once: %d\n", led_id); printf ("led_blink_once: %d\n", led_id);
} }
#else /* !__TARGET_HOST */ #else /* !__TARGET_HOST */
#ifndef __TARGET_MCU #ifndef __TARGET_MCU
+2 -2
View File
@@ -1,4 +1,4 @@
/* Copyright 2014 Samsung Electronics Co., Ltd. /* Copyright 2014-2015 Samsung Electronics Co., Ltd.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -49,7 +49,7 @@ analog_write (uint32_t arg1 __unused, uint32_t arg2 __unused)
void void
wait_ms (uint32_t time_ms) wait_ms (uint32_t time_ms)
{ {
__printf ("wait_ms: %d\n", time_ms); printf ("wait_ms: %d\n", time_ms);
} }
#else /* !__TARGET_HOST */ #else /* !__TARGET_HOST */
+2 -2
View File
@@ -274,7 +274,7 @@ ecma_gc_update_may_ref_younger_object_flag_by_object (ecma_object_t *obj_p, /**<
void void
ecma_gc_init (void) ecma_gc_init (void)
{ {
__memset (ecma_gc_objects_lists, 0, sizeof (ecma_gc_objects_lists)); memset (ecma_gc_objects_lists, 0, sizeof (ecma_gc_objects_lists));
} /* ecma_gc_init */ } /* ecma_gc_init */
/** /**
@@ -614,7 +614,7 @@ ecma_gc_run (ecma_gc_gen_t max_gen_to_collect) /**< maximum generation to run co
JERRY_ASSERT (max_gen_to_collect <= ECMA_GC_GEN_COUNT); JERRY_ASSERT (max_gen_to_collect <= ECMA_GC_GEN_COUNT);
ecma_object_t *gen_last_obj_p[ ECMA_GC_GEN_COUNT ]; ecma_object_t *gen_last_obj_p[ ECMA_GC_GEN_COUNT ];
#ifndef JERRY_NDEBUG #ifndef JERRY_NDEBUG
__memset (gen_last_obj_p, 0, sizeof (gen_last_obj_p)); memset (gen_last_obj_p, 0, sizeof (gen_last_obj_p));
#endif /* !JERRY_NDEBUG */ #endif /* !JERRY_NDEBUG */
for (ecma_gc_gen_t gen_id = ECMA_GC_GEN_0; gen_id <= max_gen_to_collect; gen_id = (ecma_gc_gen_t) (gen_id + 1)) for (ecma_gc_gen_t gen_id = ECMA_GC_GEN_0; gen_id <= max_gen_to_collect; gen_id = (ecma_gc_gen_t) (gen_id + 1))
+2 -2
View File
@@ -1,4 +1,4 @@
/* Copyright 2014 Samsung Electronics Co., Ltd. /* Copyright 2014-2015 Samsung Electronics Co., Ltd.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -790,7 +790,7 @@ ecma_uint32_to_string (uint32_t value, /**< value to convert */
if (likely (p != out_buffer_p)) if (likely (p != out_buffer_p))
{ {
ssize_t bytes_to_move = ((uint8_t*) out_buffer_p + buffer_size) - (uint8_t*) p; ssize_t bytes_to_move = ((uint8_t*) out_buffer_p + buffer_size) - (uint8_t*) p;
__memmove (out_buffer_p, p, (size_t) bytes_to_move); memmove (out_buffer_p, p, (size_t) bytes_to_move);
} }
return (ssize_t) bytes_copied; return (ssize_t) bytes_copied;
+2 -2
View File
@@ -967,7 +967,7 @@ ecma_string_to_zt_string (const ecma_string_t *string_desc_p, /**< ecma-string d
size_t bytes_to_copy = (length + 1) * sizeof (ecma_char_t); size_t bytes_to_copy = (length + 1) * sizeof (ecma_char_t);
__memcpy (buffer_p, ecma_get_magic_string_zt (id), bytes_to_copy); memcpy (buffer_p, ecma_get_magic_string_zt (id), bytes_to_copy);
JERRY_ASSERT (required_buffer_size == (ssize_t) bytes_to_copy); JERRY_ASSERT (required_buffer_size == (ssize_t) bytes_to_copy);
@@ -1101,7 +1101,7 @@ ecma_compare_ecma_strings_longpath (const ecma_string_t *string1_p, /* ecma-stri
req_size = ecma_string_to_zt_string (string2_p, string2_buf, (ssize_t) string_buf_size); req_size = ecma_string_to_zt_string (string2_p, string2_buf, (ssize_t) string_buf_size);
JERRY_ASSERT (req_size > 0); JERRY_ASSERT (req_size > 0);
bool is_equal = (__memcmp (string1_buf, string2_buf, string_buf_size) == 0); bool is_equal = (memcmp (string1_buf, string2_buf, string_buf_size) == 0);
mem_heap_free_block (string1_buf); mem_heap_free_block (string1_buf);
mem_heap_free_block (string2_buf); mem_heap_free_block (string2_buf);
+1 -1
View File
@@ -72,7 +72,7 @@ static ecma_lcache_hash_entry_t ecma_lcache_hash_table[ ECMA_LCACHE_HASH_ROWS_CO
void void
ecma_lcache_init (void) ecma_lcache_init (void)
{ {
__memset (ecma_lcache_hash_table, 0, sizeof (ecma_lcache_hash_table)); memset (ecma_lcache_hash_table, 0, sizeof (ecma_lcache_hash_table));
} /* ecma_lcache_init */ } /* ecma_lcache_init */
/** /**
+14 -14
View File
@@ -30,13 +30,13 @@ void __noreturn
jerry_fatal (jerry_fatal_code_t code) /**< status code */ jerry_fatal (jerry_fatal_code_t code) /**< status code */
{ {
#ifndef JERRY_NDEBUG #ifndef JERRY_NDEBUG
__printf ("Error: "); printf ("Error: ");
switch (code) switch (code)
{ {
case ERR_OUT_OF_MEMORY: case ERR_OUT_OF_MEMORY:
{ {
__printf ("ERR_OUT_OF_MEMORY\n"); printf ("ERR_OUT_OF_MEMORY\n");
break; break;
} }
case ERR_SYSCALL: case ERR_SYSCALL:
@@ -46,23 +46,23 @@ jerry_fatal (jerry_fatal_code_t code) /**< status code */
} }
case ERR_PARSER: case ERR_PARSER:
{ {
__printf ("ERR_PARSER\n"); printf ("ERR_PARSER\n");
break; break;
} }
case ERR_UNIMPLEMENTED_CASE: case ERR_UNIMPLEMENTED_CASE:
{ {
__printf ("ERR_UNIMPLEMENTED_CASE\n"); printf ("ERR_UNIMPLEMENTED_CASE\n");
break; break;
} }
case ERR_FAILED_INTERNAL_ASSERTION: case ERR_FAILED_INTERNAL_ASSERTION:
{ {
__printf ("ERR_FAILED_INTERNAL_ASSERTION\n"); printf ("ERR_FAILED_INTERNAL_ASSERTION\n");
break; break;
} }
} }
#endif /* !JERRY_NDEBUG */ #endif /* !JERRY_NDEBUG */
__exit (code); exit (code);
} /* jerry_fatal */ } /* jerry_fatal */
/** /**
@@ -75,8 +75,8 @@ jerry_assert_fail (const char *assertion, /**< assertion condition string */
const uint32_t line) /** line */ const uint32_t line) /** line */
{ {
#ifndef JERRY_NDEBUG #ifndef JERRY_NDEBUG
__printf ("ICE: Assertion '%s' failed at %s(%s):%u.\n", printf ("ICE: Assertion '%s' failed at %s(%s):%u.\n",
assertion, file, function, line); assertion, file, function, line);
#else /* !JERRY_NDEBUG */ #else /* !JERRY_NDEBUG */
(void) assertion; (void) assertion;
(void) file; (void) file;
@@ -98,7 +98,7 @@ jerry_unreachable (const char *comment, /**< comment to unreachable mark if exis
const uint32_t line) /**< line */ const uint32_t line) /**< line */
{ {
#ifndef JERRY_NDEBUG #ifndef JERRY_NDEBUG
__printf ("ICE: Unreachable control path at %s(%s):%u was executed", file, function, line); printf ("ICE: Unreachable control path at %s(%s):%u was executed", file, function, line);
#else /* !JERRY_NDEBUG */ #else /* !JERRY_NDEBUG */
(void) file; (void) file;
(void) function; (void) function;
@@ -107,9 +107,9 @@ jerry_unreachable (const char *comment, /**< comment to unreachable mark if exis
if (comment != NULL) if (comment != NULL)
{ {
__printf ("(%s)", comment); printf ("(%s)", comment);
} }
__printf (".\n"); printf (".\n");
jerry_fatal (ERR_FAILED_INTERNAL_ASSERTION); jerry_fatal (ERR_FAILED_INTERNAL_ASSERTION);
} /* jerry_unreachable */ } /* jerry_unreachable */
@@ -125,7 +125,7 @@ jerry_unimplemented (const char *comment, /**< comment to unimplemented mark if
const uint32_t line) /**< line */ const uint32_t line) /**< line */
{ {
#ifndef JERRY_NDEBUG #ifndef JERRY_NDEBUG
__printf ("SORRY: Unimplemented case at %s(%s):%u was executed", file, function, line); printf ("SORRY: Unimplemented case at %s(%s):%u was executed", file, function, line);
#else /* !JERRY_NDEBUG */ #else /* !JERRY_NDEBUG */
(void) file; (void) file;
(void) function; (void) function;
@@ -134,9 +134,9 @@ jerry_unimplemented (const char *comment, /**< comment to unimplemented mark if
if (comment != NULL) if (comment != NULL)
{ {
__printf ("(%s)", comment); printf ("(%s)", comment);
} }
__printf (".\n"); printf (".\n");
jerry_fatal (ERR_UNIMPLEMENTED_CASE); jerry_fatal (ERR_UNIMPLEMENTED_CASE);
} /* jerry_unimplemented */ } /* jerry_unimplemented */
+17 -17
View File
@@ -37,28 +37,28 @@ read_sources (const char *script_file_names[],
{ {
const char *script_file_name = script_file_names[i]; const char *script_file_name = script_file_names[i];
_FILE *file = __fopen (script_file_name, "r"); _FILE *file = fopen (script_file_name, "r");
if (file == NULL) if (file == NULL)
{ {
break; break;
} }
int fseek_status = __fseek (file, 0, __SEEK_END); int fseek_status = fseek (file, 0, __SEEK_END);
if (fseek_status != 0) if (fseek_status != 0)
{ {
break; break;
} }
long script_len = __ftell (file); long script_len = ftell (file);
if (script_len < 0) if (script_len < 0)
{ {
break; break;
} }
__rewind (file); rewind (file);
const size_t current_source_size = (size_t)script_len; const size_t current_source_size = (size_t)script_len;
@@ -67,20 +67,20 @@ read_sources (const char *script_file_names[],
break; break;
} }
size_t bytes_read = __fread (source_buffer_tail, 1, current_source_size, file); size_t bytes_read = fread (source_buffer_tail, 1, current_source_size, file);
if (bytes_read < current_source_size) if (bytes_read < current_source_size)
{ {
break; break;
} }
__fclose (file); fclose (file);
source_buffer_tail += current_source_size; source_buffer_tail += current_source_size;
} }
if (i < files_count) if (i < files_count)
{ {
__printf ("Failed to read script N%d\n", i + 1); printf ("Failed to read script N%d\n", i + 1);
return NULL; return NULL;
} }
@@ -101,7 +101,7 @@ main (int argc __unused,
{ {
if (argc >= JERRY_MAX_COMMAND_LINE_ARGS) if (argc >= JERRY_MAX_COMMAND_LINE_ARGS)
{ {
__printf ("Too many command line arguments. Current maximum is %d (JERRY_MAX_COMMAND_LINE_ARGS)\n", argc); printf ("Too many command line arguments. Current maximum is %d (JERRY_MAX_COMMAND_LINE_ARGS)\n", argc);
return JERRY_STANDALONE_EXIT_CODE_FAIL; return JERRY_STANDALONE_EXIT_CODE_FAIL;
} }
@@ -119,26 +119,26 @@ main (int argc __unused,
for (i = 1; i < argc; i++) for (i = 1; i < argc; i++)
{ {
if (!__strcmp ("-v", argv[i])) if (!strcmp ("-v", argv[i]))
{ {
__printf ("Build date: \t%s\n", jerry_build_date); printf ("Build date: \t%s\n", jerry_build_date);
__printf ("Commit hash:\t%s\n", jerry_commit_hash); printf ("Commit hash:\t%s\n", jerry_commit_hash);
__printf ("Branch name:\t%s\n", jerry_branch_name); printf ("Branch name:\t%s\n", jerry_branch_name);
__printf ("\n"); printf ("\n");
} }
if (!__strcmp ("--mem-stats", argv[i])) if (!strcmp ("--mem-stats", argv[i]))
{ {
#ifdef MEM_STATS #ifdef MEM_STATS
flags |= JERRY_FLAG_MEM_STATS; flags |= JERRY_FLAG_MEM_STATS;
#else /* MEM_STATS */ #else /* MEM_STATS */
__printf ("Ignoring --mem-stats because of '!MEM_STATS' build configuration.\n"); printf ("Ignoring --mem-stats because of '!MEM_STATS' build configuration.\n");
#endif /* !MEM_STATS */ #endif /* !MEM_STATS */
} }
else if (!__strcmp ("--parse-only", argv[i])) else if (!strcmp ("--parse-only", argv[i]))
{ {
flags |= JERRY_FLAG_PARSE_ONLY; flags |= JERRY_FLAG_PARSE_ONLY;
} }
else if (!__strcmp ("--show-opcodes", argv[i])) else if (!strcmp ("--show-opcodes", argv[i]))
{ {
flags |= JERRY_FLAG_SHOW_OPCODES; flags |= JERRY_FLAG_SHOW_OPCODES;
} }
+13 -13
View File
@@ -69,19 +69,19 @@ mem_finalize (bool is_show_mem_stats) /**< show heap memory stats
mem_pools_stats_t stats; mem_pools_stats_t stats;
mem_pools_get_stats (&stats); mem_pools_get_stats (&stats);
__printf ("Pools stats:\n"); printf ("Pools stats:\n");
__printf (" Chunk size: %u\n" printf (" Chunk size: %u\n"
" Pools: %lu\n" " Pools: %lu\n"
" Allocated chunks: %lu\n" " Allocated chunks: %lu\n"
" Free chunks: %lu\n" " Free chunks: %lu\n"
" Peak pools: %lu\n" " Peak pools: %lu\n"
" Peak allocated chunks: %lu\n\n", " Peak allocated chunks: %lu\n\n",
MEM_POOL_CHUNK_SIZE, MEM_POOL_CHUNK_SIZE,
stats.pools_count, stats.pools_count,
stats.allocated_chunks, stats.allocated_chunks,
stats.free_chunks, stats.free_chunks,
stats.peak_pools_count, stats.peak_pools_count,
stats.peak_allocated_chunks); stats.peak_allocated_chunks);
#endif /* MEM_STATS */ #endif /* MEM_STATS */
} }
+39 -39
View File
@@ -364,7 +364,7 @@ mem_heap_finalize (void)
VALGRIND_NOACCESS_SPACE(mem_heap.heap_start, mem_heap.heap_size); VALGRIND_NOACCESS_SPACE(mem_heap.heap_start, mem_heap.heap_size);
__memset (&mem_heap, 0, sizeof (mem_heap)); memset (&mem_heap, 0, sizeof (mem_heap));
} /* mem_heap_finalize */ } /* mem_heap_finalize */
/** /**
@@ -883,11 +883,11 @@ mem_heap_print (bool dump_block_headers, /**< print block headers */
if (dump_block_headers) if (dump_block_headers)
{ {
__printf ("Heap: start=%p size=%lu, first block->%p, last block->%p\n", printf ("Heap: start=%p size=%lu, first block->%p, last block->%p\n",
mem_heap.heap_start, mem_heap.heap_start,
mem_heap.heap_size, mem_heap.heap_size,
(void*) mem_heap.first_block_p, (void*) mem_heap.first_block_p,
(void*) mem_heap.last_block_p); (void*) mem_heap.last_block_p);
for (mem_block_header_t *block_p = mem_heap.first_block_p, *next_block_p; for (mem_block_header_t *block_p = mem_heap.first_block_p, *next_block_p;
block_p != NULL; block_p != NULL;
@@ -895,12 +895,12 @@ mem_heap_print (bool dump_block_headers, /**< print block headers */
{ {
VALGRIND_DEFINED_STRUCT(block_p); VALGRIND_DEFINED_STRUCT(block_p);
__printf ("Block (%p): magic num=0x%08x, size in chunks=%lu, previous block->%p next block->%p\n", printf ("Block (%p): magic num=0x%08x, size in chunks=%lu, previous block->%p next block->%p\n",
(void*) block_p, (void*) block_p,
block_p->magic_num, block_p->magic_num,
mem_get_block_chunks_count (block_p), mem_get_block_chunks_count (block_p),
(void*) mem_get_next_block_by_direction (block_p, MEM_DIRECTION_PREV), (void*) mem_get_next_block_by_direction (block_p, MEM_DIRECTION_PREV),
(void*) mem_get_next_block_by_direction (block_p, MEM_DIRECTION_NEXT)); (void*) mem_get_next_block_by_direction (block_p, MEM_DIRECTION_NEXT));
if (dump_block_data) if (dump_block_data)
{ {
@@ -909,9 +909,9 @@ mem_heap_print (bool dump_block_headers, /**< print block headers */
offset < mem_get_block_data_space_size (block_p); offset < mem_get_block_data_space_size (block_p);
offset++) offset++)
{ {
__printf ("%02x ", block_data_p[ offset ]); printf ("%02x ", block_data_p[ offset ]);
} }
__printf ("\n"); printf ("\n");
} }
next_block_p = mem_get_next_block_by_direction (block_p, MEM_DIRECTION_NEXT); next_block_p = mem_get_next_block_by_direction (block_p, MEM_DIRECTION_NEXT);
@@ -923,35 +923,35 @@ mem_heap_print (bool dump_block_headers, /**< print block headers */
#ifdef MEM_STATS #ifdef MEM_STATS
if (dump_stats) if (dump_stats)
{ {
__printf ("Heap stats:\n"); printf ("Heap stats:\n");
__printf (" Heap size = %lu bytes\n" printf (" Heap size = %lu bytes\n"
" Chunk size = %lu bytes\n" " Chunk size = %lu bytes\n"
" Blocks count = %lu\n" " Blocks count = %lu\n"
" Allocated blocks count = %lu\n" " Allocated blocks count = %lu\n"
" Allocated chunks count = %lu\n" " Allocated chunks count = %lu\n"
" Allocated = %lu bytes\n" " Allocated = %lu bytes\n"
" Waste = %lu bytes\n" " Waste = %lu bytes\n"
" Peak allocated blocks count = %lu\n" " Peak allocated blocks count = %lu\n"
" Peak allocated chunks count = %lu\n" " Peak allocated chunks count = %lu\n"
" Peak allocated= %lu bytes\n" " Peak allocated= %lu bytes\n"
" Peak waste = %lu bytes\n", " Peak waste = %lu bytes\n",
mem_heap_stats.size, mem_heap_stats.size,
MEM_HEAP_CHUNK_SIZE, MEM_HEAP_CHUNK_SIZE,
mem_heap_stats.blocks, mem_heap_stats.blocks,
mem_heap_stats.allocated_blocks, mem_heap_stats.allocated_blocks,
mem_heap_stats.allocated_chunks, mem_heap_stats.allocated_chunks,
mem_heap_stats.allocated_bytes, mem_heap_stats.allocated_bytes,
mem_heap_stats.waste_bytes, mem_heap_stats.waste_bytes,
mem_heap_stats.peak_allocated_blocks, mem_heap_stats.peak_allocated_blocks,
mem_heap_stats.peak_allocated_chunks, mem_heap_stats.peak_allocated_chunks,
mem_heap_stats.peak_allocated_bytes, mem_heap_stats.peak_allocated_bytes,
mem_heap_stats.peak_waste_bytes); mem_heap_stats.peak_waste_bytes);
} }
#else /* MEM_STATS */ #else /* MEM_STATS */
(void) dump_stats; (void) dump_stats;
#endif /* !MEM_STATS */ #endif /* !MEM_STATS */
__printf ("\n"); printf ("\n");
} /* mem_heap_print */ } /* mem_heap_print */
/** /**
@@ -1058,7 +1058,7 @@ mem_heap_stats_reset_peak (void)
static void static void
mem_heap_stat_init () mem_heap_stat_init ()
{ {
__memset (&mem_heap_stats, 0, sizeof (mem_heap_stats)); memset (&mem_heap_stats, 0, sizeof (mem_heap_stats));
mem_heap_stats.size = mem_heap.heap_size; mem_heap_stats.size = mem_heap.heap_size;
mem_heap_stats.blocks = 1; mem_heap_stats.blocks = 1;
+1 -1
View File
@@ -273,7 +273,7 @@ mem_pools_stats_reset_peak (void)
static void static void
mem_pools_stat_init (void) mem_pools_stat_init (void)
{ {
__memset (&mem_pools_stats, 0, sizeof (mem_pools_stats)); memset (&mem_pools_stats, 0, sizeof (mem_pools_stats));
} /* mem_pools_stat_init */ } /* mem_pools_stat_init */
/** /**
+6 -6
View File
@@ -1,4 +1,4 @@
/* Copyright 2014 Samsung Electronics Co., Ltd. /* Copyright 2014-2015 Samsung Electronics Co., Ltd.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -51,14 +51,14 @@ array_list_append (array_list al, void *element)
{ {
size_t size = mem_heap_recommend_allocation_size (h->size + h->element_size); size_t size = mem_heap_recommend_allocation_size (h->size + h->element_size);
array_list_header *temp = (array_list_header *) mem_heap_alloc_block (size, MEM_HEAP_ALLOC_SHORT_TERM); array_list_header *temp = (array_list_header *) mem_heap_alloc_block (size, MEM_HEAP_ALLOC_SHORT_TERM);
__memset (temp, 0, size); memset (temp, 0, size);
__memcpy (temp, h, h->size); memcpy (temp, h, h->size);
temp->size = size; temp->size = size;
mem_heap_free_block ((uint8_t *) h); mem_heap_free_block ((uint8_t *) h);
h = temp; h = temp;
al = (array_list) h; al = (array_list) h;
} }
__memcpy (data (al) + (h->len * h->element_size), element, h->element_size); memcpy (data (al) + (h->len * h->element_size), element, h->element_size);
h->len++; h->len++;
return al; return al;
} }
@@ -87,7 +87,7 @@ array_list_set_element (array_list al, size_t index, void *elem)
{ {
array_list_header *h = extract_header (al); array_list_header *h = extract_header (al);
JERRY_ASSERT (index < h->len); JERRY_ASSERT (index < h->len);
__memcpy (data (al) + (index * h->element_size), elem, h->element_size); memcpy (data (al) + (index * h->element_size), elem, h->element_size);
} }
void * void *
@@ -114,7 +114,7 @@ array_list_init (uint8_t element_size)
{ {
size_t size = mem_heap_recommend_allocation_size (sizeof (array_list_header)); size_t size = mem_heap_recommend_allocation_size (sizeof (array_list_header));
array_list_header *header = (array_list_header *) mem_heap_alloc_block (size, MEM_HEAP_ALLOC_SHORT_TERM); array_list_header *header = (array_list_header *) mem_heap_alloc_block (size, MEM_HEAP_ALLOC_SHORT_TERM);
__memset (header, 0, size); memset (header, 0, size);
header->magic = ARRAY_LIST_MAGIC; header->magic = ARRAY_LIST_MAGIC;
header->element_size = element_size; header->element_size = element_size;
header->len = 0; header->len = 0;
+5 -5
View File
@@ -71,8 +71,8 @@ hash_table_insert (hash_table ht, void *key, void *value)
list = array_list_init (bucket_size (hti)); list = array_list_init (bucket_size (hti));
} }
uint8_t *bucket = (uint8_t*) mem_heap_alloc_block (bucket_size (hti), hti->alloc_term); uint8_t *bucket = (uint8_t*) mem_heap_alloc_block (bucket_size (hti), hti->alloc_term);
__memcpy (bucket, key, hti->key_size); memcpy (bucket, key, hti->key_size);
__memcpy (bucket + hti->key_size, value, hti->value_size); memcpy (bucket + hti->key_size, value, hti->value_size);
list = array_list_append (list, bucket); list = array_list_append (list, bucket);
hti->data[index] = list; hti->data[index] = list;
mem_heap_free_block (bucket); mem_heap_free_block (bucket);
@@ -93,7 +93,7 @@ hash_table_lookup (hash_table ht, void *key)
{ {
uint8_t *bucket = (uint8_t*) array_list_element (al, i); uint8_t *bucket = (uint8_t*) array_list_element (al, i);
JERRY_ASSERT (bucket != NULL); JERRY_ASSERT (bucket != NULL);
if (!__memcmp (bucket, key, h->key_size)) if (!memcmp (bucket, key, h->key_size))
{ {
return bucket + h->key_size; return bucket + h->key_size;
} }
@@ -106,14 +106,14 @@ hash_table_init (uint8_t key_size, uint8_t value_size, uint16_t size,
uint16_t (*hash) (void *), mem_heap_alloc_term_t alloc_term) uint16_t (*hash) (void *), mem_heap_alloc_term_t alloc_term)
{ {
hash_table_int *res = (hash_table_int *) mem_heap_alloc_block (sizeof (hash_table_int), alloc_term); hash_table_int *res = (hash_table_int *) mem_heap_alloc_block (sizeof (hash_table_int), alloc_term);
__memset (res, 0, sizeof (hash_table_int)); memset (res, 0, sizeof (hash_table_int));
res->magic = HASH_MAP_MAGIC; res->magic = HASH_MAP_MAGIC;
res->key_size = key_size; res->key_size = key_size;
res->value_size = value_size; res->value_size = value_size;
res->size = size; res->size = size;
res->alloc_term = alloc_term; res->alloc_term = alloc_term;
res->data = (array_list *) mem_heap_alloc_block (size * sizeof (array_list), alloc_term); res->data = (array_list *) mem_heap_alloc_block (size * sizeof (array_list), alloc_term);
__memset (res->data, 0, size * sizeof (array_list)); memset (res->data, 0, size * sizeof (array_list));
res->hash = hash; res->hash = hash;
return res; return res;
} }
+3 -3
View File
@@ -45,10 +45,10 @@ linked_list_init (uint16_t element_size)
linked_list list = (linked_list) mem_heap_alloc_block (size, MEM_HEAP_ALLOC_SHORT_TERM); linked_list list = (linked_list) mem_heap_alloc_block (size, MEM_HEAP_ALLOC_SHORT_TERM);
if (list == null_list) if (list == null_list)
{ {
__printf ("Out of memory"); printf ("Out of memory");
JERRY_UNREACHABLE (); JERRY_UNREACHABLE ();
} }
__memset (list, 0, size); memset (list, 0, size);
linked_list_header* header = (linked_list_header *) list; linked_list_header* header = (linked_list_header *) list;
header->magic = LINKED_LIST_MAGIC; header->magic = LINKED_LIST_MAGIC;
header->prev = header->next = null_list; header->prev = header->next = null_list;
@@ -113,5 +113,5 @@ linked_list_set_element (linked_list list, uint16_t element_num, void *element)
{ {
return; return;
} }
__memcpy (raw + element_num * header->element_size, element, header->element_size); memcpy (raw + element_num * header->element_size, element, header->element_size);
} }
+4 -4
View File
@@ -1,4 +1,4 @@
/* Copyright 2014 Samsung Electronics Co., Ltd. /* Copyright 2014-2015 Samsung Electronics Co., Ltd.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -23,13 +23,13 @@ lit_id_hash_table_init (size_t buckets_count, size_t blocks_count)
{ {
size_t size = mem_heap_recommend_allocation_size (sizeof (lit_id_hash_table)); size_t size = mem_heap_recommend_allocation_size (sizeof (lit_id_hash_table));
lit_id_hash_table *table = (lit_id_hash_table *) mem_heap_alloc_block (size, MEM_HEAP_ALLOC_LONG_TERM); lit_id_hash_table *table = (lit_id_hash_table *) mem_heap_alloc_block (size, MEM_HEAP_ALLOC_LONG_TERM);
__memset (table, 0, size); memset (table, 0, size);
size = mem_heap_recommend_allocation_size (sizeof (literal_index_t) * buckets_count); size = mem_heap_recommend_allocation_size (sizeof (literal_index_t) * buckets_count);
table->raw_buckets = (literal_index_t *) mem_heap_alloc_block (size, MEM_HEAP_ALLOC_LONG_TERM); table->raw_buckets = (literal_index_t *) mem_heap_alloc_block (size, MEM_HEAP_ALLOC_LONG_TERM);
__memset (table->raw_buckets, 0, size); memset (table->raw_buckets, 0, size);
size = mem_heap_recommend_allocation_size (sizeof (literal_index_t *) * blocks_count); size = mem_heap_recommend_allocation_size (sizeof (literal_index_t *) * blocks_count);
table->buckets = (literal_index_t **) mem_heap_alloc_block (size, MEM_HEAP_ALLOC_LONG_TERM); table->buckets = (literal_index_t **) mem_heap_alloc_block (size, MEM_HEAP_ALLOC_LONG_TERM);
__memset (table->buckets, 0, size); memset (table->buckets, 0, size);
table->current_bucket_pos = 0; table->current_bucket_pos = 0;
return table; return table;
} }
+3 -3
View File
@@ -1,4 +1,4 @@
/* Copyright 2014 Samsung Electronics Co., Ltd. /* Copyright 2014-2015 Samsung Electronics Co., Ltd.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -129,10 +129,10 @@ static TYPE *convert_##NAME##_to_raw_data (void) { \
TYPE *DATA = (TYPE *) mem_heap_alloc_block (size, MEM_HEAP_ALLOC_LONG_TERM); \ TYPE *DATA = (TYPE *) mem_heap_alloc_block (size, MEM_HEAP_ALLOC_LONG_TERM); \
if (DATA == NULL) \ if (DATA == NULL) \
{ \ { \
__printf ("Out of memory\n"); \ printf ("Out of memory\n"); \
JERRY_UNREACHABLE (); \ JERRY_UNREACHABLE (); \
} \ } \
__memcpy (DATA, array_list_element (NAME.data, 0), array_list_len (NAME.data) * sizeof (NAME##_stack_value_type)); \ memcpy (DATA, array_list_element (NAME.data, 0), array_list_len (NAME.data) * sizeof (NAME##_stack_value_type)); \
return DATA; \ return DATA; \
} }
+29 -29
View File
@@ -83,13 +83,13 @@ dump_current_line (void)
return; return;
} }
__printf ("// "); printf ("// ");
for (i = buffer; *i != '\n' && *i != 0; i++) for (i = buffer; *i != '\n' && *i != 0; i++)
{ {
__putchar (*i); putchar (*i);
} }
__putchar ('\n'); putchar ('\n');
} }
static token static token
@@ -107,11 +107,11 @@ create_token (token_type type, literal_index_t uid)
static bool static bool
current_token_equals_to (const char *str) current_token_equals_to (const char *str)
{ {
if (__strlen (str) != (size_t) (buffer - token_start)) if (strlen (str) != (size_t) (buffer - token_start))
{ {
return false; return false;
} }
if (!__strncmp (str, token_start, (size_t) (buffer - token_start))) if (!strncmp (str, token_start, (size_t) (buffer - token_start)))
{ {
return true; return true;
} }
@@ -127,7 +127,7 @@ current_token_equals_to_literal (literal lit)
{ {
return false; return false;
} }
if (!__strncmp ((const char *) lit.data.lp.str, token_start, lit.data.lp.length)) if (!strncmp ((const char *) lit.data.lp.str, token_start, lit.data.lp.length))
{ {
return true; return true;
} }
@@ -135,11 +135,11 @@ current_token_equals_to_literal (literal lit)
else if (lit.type == LIT_MAGIC_STR) else if (lit.type == LIT_MAGIC_STR)
{ {
const char *str = (const char *) ecma_get_magic_string_zt (lit.data.magic_str_id); const char *str = (const char *) ecma_get_magic_string_zt (lit.data.magic_str_id);
if (__strlen (str) != (size_t) (buffer - token_start)) if (strlen (str) != (size_t) (buffer - token_start))
{ {
return false; return false;
} }
if (!__strncmp (str, token_start, __strlen (str))) if (!strncmp (str, token_start, strlen (str)))
{ {
return true; return true;
} }
@@ -175,7 +175,7 @@ add_current_token_to_string_cache (void)
+ ((size_t) length + 1) * sizeof (ecma_char_t)); + ((size_t) length + 1) * sizeof (ecma_char_t));
ecma_char_t *temp = (ecma_char_t *) mem_heap_alloc_block (strings_cache_size, ecma_char_t *temp = (ecma_char_t *) mem_heap_alloc_block (strings_cache_size,
MEM_HEAP_ALLOC_SHORT_TERM); MEM_HEAP_ALLOC_SHORT_TERM);
__memcpy (temp, strings_cache, strings_cache_used_size); memcpy (temp, strings_cache, strings_cache_used_size);
STACK_ITERATE_VARG_SET (literals, adjust_string_ptrs, 0, (size_t) (temp - strings_cache)); STACK_ITERATE_VARG_SET (literals, adjust_string_ptrs, 0, (size_t) (temp - strings_cache));
if (strings_cache) if (strings_cache)
{ {
@@ -183,7 +183,7 @@ add_current_token_to_string_cache (void)
} }
strings_cache = temp; strings_cache = temp;
} }
__strncpy ((char *) (strings_cache + strings_cache_used_size), token_start, length); strncpy ((char *) (strings_cache + strings_cache_used_size), token_start, length);
(strings_cache + strings_cache_used_size)[length] = '\0'; (strings_cache + strings_cache_used_size)[length] = '\0';
const literal res = create_literal_from_zt (strings_cache + strings_cache_used_size, length); const literal res = create_literal_from_zt (strings_cache + strings_cache_used_size, length);
strings_cache_used_size = (size_t) (((size_t) length + 1) * sizeof (ecma_char_t) + strings_cache_used_size); strings_cache_used_size = (size_t) (((size_t) length + 1) * sizeof (ecma_char_t) + strings_cache_used_size);
@@ -611,10 +611,10 @@ static token
parse_name (void) parse_name (void)
{ {
char c = LA (0); char c = LA (0);
bool every_char_islower = __islower (c); bool every_char_islower = islower (c);
token known_token = empty_token; token known_token = empty_token;
JERRY_ASSERT (__isalpha (c) || c == '$' || c == '_'); JERRY_ASSERT (isalpha (c) || c == '$' || c == '_');
new_token (); new_token ();
consume_char (); consume_char ();
@@ -625,11 +625,11 @@ parse_name (void)
{ {
break; break;
} }
if (!__isalpha (c) && !__isdigit (c) && c != '$' && c != '_') if (!isalpha (c) && !isdigit (c) && c != '$' && c != '_')
{ {
break; break;
} }
if (every_char_islower && (!__islower (c))) if (every_char_islower && (!islower (c)))
{ {
every_char_islower = false; every_char_islower = false;
} }
@@ -698,7 +698,7 @@ parse_number (void)
uint32_t res = 0; uint32_t res = 0;
token known_token; token known_token;
JERRY_ASSERT (__isdigit (c) || c == '.'); JERRY_ASSERT (isdigit (c) || c == '.');
if (c == '0') if (c == '0')
{ {
@@ -710,7 +710,7 @@ parse_number (void)
if (c == '.') if (c == '.')
{ {
JERRY_ASSERT (!__isalpha (LA (1))); JERRY_ASSERT (!isalpha (LA (1)));
is_fp = true; is_fp = true;
} }
@@ -723,14 +723,14 @@ parse_number (void)
while (true) while (true)
{ {
c = LA (0); c = LA (0);
if (!__isxdigit (c)) if (!isxdigit (c))
{ {
break; break;
} }
consume_char (); consume_char ();
} }
if (__isalpha (c) || c == '_' || c == '$') if (isalpha (c) || c == '_' || c == '$')
{ {
PARSE_ERROR ("Integer literal shall not contain non-digit characters", buffer - buffer_start); PARSE_ERROR ("Integer literal shall not contain non-digit characters", buffer - buffer_start);
} }
@@ -796,7 +796,7 @@ parse_number (void)
if (c == '.') if (c == '.')
{ {
if (__isalpha (LA (1)) || LA (1) == '_' || LA (1) == '$') if (isalpha (LA (1)) || LA (1) == '_' || LA (1) == '$')
{ {
PARSE_ERROR ("Integer literal shall not contain non-digit character after got character", PARSE_ERROR ("Integer literal shall not contain non-digit character after got character",
buffer - buffer_start); buffer - buffer_start);
@@ -812,7 +812,7 @@ parse_number (void)
{ {
consume_char (); consume_char ();
} }
if (!__isdigit (LA (1))) if (!isdigit (LA (1)))
{ {
PARSE_ERROR ("Integer literal shall not contain non-digit character after exponential marker ('e' or 'E')", PARSE_ERROR ("Integer literal shall not contain non-digit character after exponential marker ('e' or 'E')",
buffer - buffer_start); buffer - buffer_start);
@@ -822,12 +822,12 @@ parse_number (void)
continue; continue;
} }
if (__isalpha (c) || c == '_' || c == '$') if (isalpha (c) || c == '_' || c == '$')
{ {
PARSE_ERROR ("Integer literal shall not contain non-digit characters", buffer - buffer_start); PARSE_ERROR ("Integer literal shall not contain non-digit characters", buffer - buffer_start);
} }
if (!__isdigit (c)) if (!isdigit (c))
{ {
break; break;
} }
@@ -840,7 +840,7 @@ parse_number (void)
{ {
ecma_char_t *temp = (ecma_char_t*) mem_heap_alloc_block ((size_t) (tok_length + 1), ecma_char_t *temp = (ecma_char_t*) mem_heap_alloc_block ((size_t) (tok_length + 1),
MEM_HEAP_ALLOC_SHORT_TERM); MEM_HEAP_ALLOC_SHORT_TERM);
__strncpy ((char *) temp, token_start, (size_t) (tok_length)); strncpy ((char *) temp, token_start, (size_t) (tok_length));
temp[tok_length] = '\0'; temp[tok_length] = '\0';
ecma_number_t res = ecma_zt_string_to_number (temp); ecma_number_t res = ecma_zt_string_to_number (temp);
JERRY_ASSERT (!ecma_number_is_nan (res)); JERRY_ASSERT (!ecma_number_is_nan (res));
@@ -938,7 +938,7 @@ parse_string (void)
if (c == '\\') if (c == '\\')
{ {
/* Only single escape character is allowed. */ /* Only single escape character is allowed. */
if (LA (1) == 'x' || LA (1) == 'u' || __isdigit (LA (1))) if (LA (1) == 'x' || LA (1) == 'u' || isdigit (LA (1)))
{ {
// PARSE_WARN ("Escape sequences are ignored yet", token_start - buffer_start); // PARSE_WARN ("Escape sequences are ignored yet", token_start - buffer_start);
consume_char (); consume_char ();
@@ -977,7 +977,7 @@ grobble_whitespaces (void)
{ {
char c = LA (0); char c = LA (0);
while ((__isspace (c) && c != '\n')) while ((isspace (c) && c != '\n'))
{ {
consume_char (); consume_char ();
c = LA (0); c = LA (0);
@@ -1046,12 +1046,12 @@ lexer_next_token_private (void)
JERRY_ASSERT (token_start == NULL); JERRY_ASSERT (token_start == NULL);
if (__isalpha (c) || c == '$' || c == '_') if (isalpha (c) || c == '$' || c == '_')
{ {
return parse_name (); return parse_name ();
} }
if (__isdigit (c) || (c == '.' && __isdigit (LA (1)))) if (isdigit (c) || (c == '.' && isdigit (LA (1))))
{ {
return parse_number (); return parse_number ();
} }
@@ -1072,7 +1072,7 @@ lexer_next_token_private (void)
return parse_string (); return parse_string ();
} }
if (__isspace (c)) if (isspace (c))
{ {
grobble_whitespaces (); grobble_whitespaces ();
return lexer_next_token_private (); return lexer_next_token_private ();
@@ -1271,7 +1271,7 @@ lexer_dump_line (size_t line)
{ {
for (; *buf != '\n' && *buf != '\0'; buf++) for (; *buf != '\n' && *buf != '\0'; buf++)
{ {
__putchar (*buf); putchar (*buf);
} }
return; return;
} }
+2 -2
View File
@@ -48,7 +48,7 @@ create_literal_from_str (const char *s, ecma_length_t len)
literal literal
create_literal_from_str_compute_len (const char *s) create_literal_from_str_compute_len (const char *s)
{ {
return create_literal_from_zt ((const ecma_char_t *) s, (ecma_length_t) __strlen (s)); return create_literal_from_zt ((const ecma_char_t *) s, (ecma_length_t) strlen (s));
} }
literal literal
@@ -62,7 +62,7 @@ create_literal_from_zt (const ecma_char_t *s, ecma_length_t len)
{ {
continue; continue;
} }
if (!__strncmp ((const char *) s, (const char *) ecma_get_magic_string_zt (msi), len)) if (!strncmp ((const char *) s, (const char *) ecma_get_magic_string_zt (msi), len))
{ {
literal ret; literal ret;
+2 -2
View File
@@ -619,7 +619,7 @@ scopes_tree_raw_data (scopes_tree tree, lit_id_hash_table *lit_ids)
/* Dump bytecode and fill literal indexes 'hash' table. */ /* Dump bytecode and fill literal indexes 'hash' table. */
size_t size = ((size_t) (scopes_tree_count_opcodes (tree) + 1) * sizeof (opcode_t)); // +1 for valgrind size_t size = ((size_t) (scopes_tree_count_opcodes (tree) + 1) * sizeof (opcode_t)); // +1 for valgrind
opcode_t *opcodes = (opcode_t *) mem_heap_alloc_block (size, MEM_HEAP_ALLOC_LONG_TERM); opcode_t *opcodes = (opcode_t *) mem_heap_alloc_block (size, MEM_HEAP_ALLOC_LONG_TERM);
__memset (opcodes, 0, size); memset (opcodes, 0, size);
merge_subscopes (tree, opcodes, lit_ids); merge_subscopes (tree, opcodes, lit_ids);
if (lit_id_to_uid != null_hash) if (lit_id_to_uid != null_hash)
{ {
@@ -647,7 +647,7 @@ scopes_tree
scopes_tree_init (scopes_tree parent) scopes_tree_init (scopes_tree parent)
{ {
scopes_tree tree = (scopes_tree) mem_heap_alloc_block (sizeof (scopes_tree_int), MEM_HEAP_ALLOC_SHORT_TERM); scopes_tree tree = (scopes_tree) mem_heap_alloc_block (sizeof (scopes_tree_int), MEM_HEAP_ALLOC_SHORT_TERM);
__memset (tree, 0, sizeof (scopes_tree_int)); memset (tree, 0, sizeof (scopes_tree_int));
tree->t.magic = TREE_MAGIC; tree->t.magic = TREE_MAGIC;
tree->t.parent = (tree_header *) parent; tree->t.parent = (tree_header *) parent;
tree->t.children = null_list; tree->t.children = null_list;
+1 -1
View File
@@ -113,7 +113,7 @@ serializer_print_opcodes (void)
return; return;
} }
__printf ("AFTER OPTIMIZER:\n"); printf ("AFTER OPTIMIZER:\n");
for (loc = 0; loc < bytecode_data.opcodes_count; loc++) for (loc = 0; loc < bytecode_data.opcodes_count; loc++)
{ {
+15 -15
View File
@@ -25,43 +25,43 @@
size_t line, column; \ size_t line, column; \
lexer_locus_to_line_and_column ((locus) (LOCUS), &line, &column); \ lexer_locus_to_line_and_column ((locus) (LOCUS), &line, &column); \
lexer_dump_line (line); \ lexer_dump_line (line); \
__printf ("\n"); \ printf ("\n"); \
for (size_t i = 0; i < column; i++) { \ for (size_t i = 0; i < column; i++) { \
__putchar (' '); \ putchar (' '); \
} \ } \
__printf ("^\n"); \ printf ("^\n"); \
__printf ("ERROR: Ln %d, Col %d: %s\n", line + 1, column + 1, MESSAGE); \ printf ("ERROR: Ln %d, Col %d: %s\n", line + 1, column + 1, MESSAGE); \
jerry_fatal (ERR_PARSER); \ jerry_fatal (ERR_PARSER); \
} while (0) } while (0)
#define PARSE_WARN(MESSAGE, LOCUS) do { \ #define PARSE_WARN(MESSAGE, LOCUS) do { \
size_t line, column; \ size_t line, column; \
lexer_locus_to_line_and_column ((locus) (LOCUS), &line, &column); \ lexer_locus_to_line_and_column ((locus) (LOCUS), &line, &column); \
__printf ("WARNING: Ln %d, Col %d: %s\n", line + 1, column + 1, MESSAGE); \ printf ("WARNING: Ln %d, Col %d: %s\n", line + 1, column + 1, MESSAGE); \
} while (0) } while (0)
#define PARSE_ERROR_VARG(MESSAGE, LOCUS, ...) do { \ #define PARSE_ERROR_VARG(MESSAGE, LOCUS, ...) do { \
size_t line, column; \ size_t line, column; \
lexer_locus_to_line_and_column ((locus) (LOCUS), &line, &column); \ lexer_locus_to_line_and_column ((locus) (LOCUS), &line, &column); \
lexer_dump_line (line); \ lexer_dump_line (line); \
__printf ("\n"); \ printf ("\n"); \
for (size_t i = 0; i < column; i++) { \ for (size_t i = 0; i < column; i++) { \
__putchar (' '); \ putchar (' '); \
} \ } \
__printf ("^\n"); \ printf ("^\n"); \
__printf ("ERROR: Ln %d, Col %d: ", line + 1, column + 1); \ printf ("ERROR: Ln %d, Col %d: ", line + 1, column + 1); \
__printf (MESSAGE, __VA_ARGS__); \ printf (MESSAGE, __VA_ARGS__); \
__printf ("\n"); \ printf ("\n"); \
jerry_fatal (ERR_PARSER); \ jerry_fatal (ERR_PARSER); \
} while (0) } while (0)
#define PARSE_SORRY(MESSAGE, LOCUS) do { \ #define PARSE_SORRY(MESSAGE, LOCUS) do { \
size_t line, column; \ size_t line, column; \
lexer_locus_to_line_and_column ((locus) (LOCUS), &line, &column); \ lexer_locus_to_line_and_column ((locus) (LOCUS), &line, &column); \
lexer_dump_line (line); \ lexer_dump_line (line); \
__printf ("\n"); \ printf ("\n"); \
for (size_t i = 0; i < column; i++) { \ for (size_t i = 0; i < column; i++) { \
__putchar (' '); \ putchar (' '); \
} \ } \
__printf ("^\n"); \ printf ("^\n"); \
__printf ("SORRY, Unimplemented: Ln %d, Col %d: %s\n", line + 1, column + 1, MESSAGE); \ printf ("SORRY, Unimplemented: Ln %d, Col %d: %s\n", line + 1, column + 1, MESSAGE); \
JERRY_UNIMPLEMENTED ("Unimplemented parser feature."); \ JERRY_UNIMPLEMENTED ("Unimplemented parser feature."); \
} while (0) } while (0)
#else /* JERRY_NDEBUG */ #else /* JERRY_NDEBUG */
+1 -1
View File
@@ -134,7 +134,7 @@ opfunc_native_call (opcode_t opdata, /**< operation data */
ecma_string_to_zt_string (str_p, zt_str_p, zt_str_size); ecma_string_to_zt_string (str_p, zt_str_p, zt_str_size);
#if CONFIG_ECMA_CHAR_ENCODING == CONFIG_ECMA_CHAR_ASCII #if CONFIG_ECMA_CHAR_ENCODING == CONFIG_ECMA_CHAR_ASCII
__printf ("%s\n", (char*) zt_str_p); printf ("%s\n", (char*) zt_str_p);
#elif CONFIG_ECMA_CHAR_ENCODING == CONFIG_ECMA_CHAR_UTF16 #elif CONFIG_ECMA_CHAR_ENCODING == CONFIG_ECMA_CHAR_UTF16
JERRY_UNIMPLEMENTED ("UTF-16 support is not implemented."); JERRY_UNIMPLEMENTED ("UTF-16 support is not implemented.");
#endif /* CONFIG_ECMA_CHAR_ENCODING == CONFIG_ECMA_CHAR_UTF16 */ #endif /* CONFIG_ECMA_CHAR_ENCODING == CONFIG_ECMA_CHAR_UTF16 */
+89 -89
View File
@@ -53,22 +53,22 @@ dump_literal (literal lit)
{ {
if (ecma_number_is_nan (lit.data.num)) if (ecma_number_is_nan (lit.data.num))
{ {
__printf ("%s : NUMBER", "NaN"); printf ("%s : NUMBER", "NaN");
} }
else else
{ {
__printf ("%d : NUMBER", lit.data.num); printf ("%d : NUMBER", lit.data.num);
} }
break; break;
} }
case LIT_MAGIC_STR: case LIT_MAGIC_STR:
{ {
__printf ("%s : MAGIC STRING", (const char *) ecma_get_magic_string_zt (lit.data.magic_str_id)); printf ("%s : MAGIC STRING", (const char *) ecma_get_magic_string_zt (lit.data.magic_str_id));
break; break;
} }
case LIT_STR: case LIT_STR:
{ {
__printf ("%s : STRING", (const char *) (lit.data.lp.str)); printf ("%s : STRING", (const char *) (lit.data.lp.str));
break; break;
} }
default: default:
@@ -81,12 +81,12 @@ dump_literal (literal lit)
void void
pp_literals (const literal lits[], literal_index_t size) pp_literals (const literal lits[], literal_index_t size)
{ {
__printf ("LITERALS %d:\n", size); printf ("LITERALS %d:\n", size);
for (literal_index_t i = 0; i < size; i++) for (literal_index_t i = 0; i < size; i++)
{ {
__printf ("%3d ", i); printf ("%3d ", i);
dump_literal (lits[i]); dump_literal (lits[i]);
__putchar ('\n'); putchar ('\n');
} }
} }
@@ -95,7 +95,7 @@ static char buff[ECMA_MAX_CHARS_IN_STRINGIFIED_NUMBER];
static void static void
clear_temp_buffer (void) clear_temp_buffer (void)
{ {
__memset (buff, 0, ECMA_MAX_CHARS_IN_STRINGIFIED_NUMBER); memset (buff, 0, ECMA_MAX_CHARS_IN_STRINGIFIED_NUMBER);
} }
static const char * static const char *
@@ -121,7 +121,7 @@ tmp_id_to_str (idx_t id)
JERRY_ASSERT (id != LITERAL_TO_REWRITE); JERRY_ASSERT (id != LITERAL_TO_REWRITE);
JERRY_ASSERT (id >= 128); JERRY_ASSERT (id >= 128);
clear_temp_buffer (); clear_temp_buffer ();
__strncpy (buff, "tmp", 3); strncpy (buff, "tmp", 3);
if (id / 100 != 0) if (id / 100 != 0)
{ {
buff[3] = (char) (id / 100 + '0'); buff[3] = (char) (id / 100 + '0');
@@ -172,7 +172,7 @@ pp_printf (const char *format, opcode_t opcode, literal_index_t lit_ids[], opcod
{ {
if (*format != '%') if (*format != '%')
{ {
__putchar (*format); putchar (*format);
format++; format++;
continue; continue;
} }
@@ -183,17 +183,17 @@ pp_printf (const char *format, opcode_t opcode, literal_index_t lit_ids[], opcod
case 'd': case 'd':
{ {
raw_opcode raw = *(raw_opcode*) &opcode; raw_opcode raw = *(raw_opcode*) &opcode;
__printf ("%d", raw.uids[current_arg]); printf ("%d", raw.uids[current_arg]);
break; break;
} }
case 's': case 's':
{ {
__printf ("%s", var_to_str (opcode, lit_ids, oc, current_arg)); printf ("%s", var_to_str (opcode, lit_ids, oc, current_arg));
break; break;
} }
default: default:
{ {
__putchar ('%'); putchar ('%');
continue; continue;
} }
} }
@@ -216,18 +216,18 @@ dump_asm (opcode_counter_t oc, opcode_t opcode)
{ {
uint8_t i = 0; uint8_t i = 0;
uint8_t opcode_id = opcode.op_idx; uint8_t opcode_id = opcode.op_idx;
__printf ("%3d: %20s ", oc, opcode_names[opcode_id]); printf ("%3d: %20s ", oc, opcode_names[opcode_id]);
if (opcode_id != NAME_TO_ID (nop) && opcode_id != NAME_TO_ID (ret)) if (opcode_id != NAME_TO_ID (nop) && opcode_id != NAME_TO_ID (ret))
{ {
for (i = 1; i < opcode_sizes[opcode_id]; i++) for (i = 1; i < opcode_sizes[opcode_id]; i++)
{ {
__printf ("%4d ", ((raw_opcode *) &opcode)->uids[i]); printf ("%4d ", ((raw_opcode *) &opcode)->uids[i]);
} }
} }
for (; i < 4; i++) for (; i < 4; i++)
{ {
__printf (" "); printf (" ");
} }
} }
@@ -235,7 +235,7 @@ void
pp_op_meta (opcode_counter_t oc, op_meta opm, bool rewrite) pp_op_meta (opcode_counter_t oc, op_meta opm, bool rewrite)
{ {
dump_asm (oc, opm.op); dump_asm (oc, opm.op);
__printf (" // "); printf (" // ");
switch (opm.op.op_idx) switch (opm.op.op_idx)
{ {
@@ -282,35 +282,35 @@ pp_op_meta (opcode_counter_t oc, op_meta opm, bool rewrite)
PP_OP (delete_prop, "%s = delete %s.%s;"); PP_OP (delete_prop, "%s = delete %s.%s;");
PP_OP (typeof, "%s = typeof %s;"); PP_OP (typeof, "%s = typeof %s;");
PP_OP (with, "with (%s);"); PP_OP (with, "with (%s);");
case NAME_TO_ID (is_true_jmp_up): __printf ("if (%s) goto %d;", VAR (1), oc - OC (2, 3)); break; case NAME_TO_ID (is_true_jmp_up): printf ("if (%s) goto %d;", VAR (1), oc - OC (2, 3)); break;
case NAME_TO_ID (is_false_jmp_up): __printf ("if (%s == false) goto %d;", VAR (1), oc - OC (2, 3)); break; case NAME_TO_ID (is_false_jmp_up): printf ("if (%s == false) goto %d;", VAR (1), oc - OC (2, 3)); break;
case NAME_TO_ID (is_true_jmp_down): __printf ("if (%s) goto %d;", VAR (1), oc + OC (2, 3)); break; case NAME_TO_ID (is_true_jmp_down): printf ("if (%s) goto %d;", VAR (1), oc + OC (2, 3)); break;
case NAME_TO_ID (is_false_jmp_down): __printf ("if (%s == false) goto %d;", VAR (1), oc + OC (2, 3)); break; case NAME_TO_ID (is_false_jmp_down): printf ("if (%s == false) goto %d;", VAR (1), oc + OC (2, 3)); break;
case NAME_TO_ID (jmp_up): __printf ("goto %d;", oc - OC (1, 2)); break; case NAME_TO_ID (jmp_up): printf ("goto %d;", oc - OC (1, 2)); break;
case NAME_TO_ID (jmp_down): __printf ("goto %d;", oc + OC (1, 2)); break; case NAME_TO_ID (jmp_down): printf ("goto %d;", oc + OC (1, 2)); break;
case NAME_TO_ID (try_block): __printf ("try (end: %d);", oc + OC (1, 2)); break; case NAME_TO_ID (try_block): printf ("try (end: %d);", oc + OC (1, 2)); break;
case NAME_TO_ID (assignment): case NAME_TO_ID (assignment):
{ {
__printf ("%s = ", VAR (1)); printf ("%s = ", VAR (1));
switch (opm.op.data.assignment.type_value_right) switch (opm.op.data.assignment.type_value_right)
{ {
case OPCODE_ARG_TYPE_STRING: __printf ("'%s': STRING;", VAR (3)); break; case OPCODE_ARG_TYPE_STRING: printf ("'%s': STRING;", VAR (3)); break;
case OPCODE_ARG_TYPE_NUMBER: __printf ("%s: NUMBER;", VAR (3)); break; case OPCODE_ARG_TYPE_NUMBER: printf ("%s: NUMBER;", VAR (3)); break;
case OPCODE_ARG_TYPE_NUMBER_NEGATE: __printf ("-%s: NUMBER;", VAR (3)); break; case OPCODE_ARG_TYPE_NUMBER_NEGATE: printf ("-%s: NUMBER;", VAR (3)); break;
case OPCODE_ARG_TYPE_SMALLINT: __printf ("%d: SMALLINT;", opm.op.data.assignment.value_right); break; case OPCODE_ARG_TYPE_SMALLINT: printf ("%d: SMALLINT;", opm.op.data.assignment.value_right); break;
case OPCODE_ARG_TYPE_SMALLINT_NEGATE: __printf ("-%d: SMALLINT;", opm.op.data.assignment.value_right); break; case OPCODE_ARG_TYPE_SMALLINT_NEGATE: printf ("-%d: SMALLINT;", opm.op.data.assignment.value_right); break;
case OPCODE_ARG_TYPE_VARIABLE: __printf ("%s : TYPEOF(%s);", VAR (3), VAR (3)); break; case OPCODE_ARG_TYPE_VARIABLE: printf ("%s : TYPEOF(%s);", VAR (3), VAR (3)); break;
case OPCODE_ARG_TYPE_SIMPLE: case OPCODE_ARG_TYPE_SIMPLE:
{ {
switch (opm.op.data.assignment.value_right) switch (opm.op.data.assignment.value_right)
{ {
case ECMA_SIMPLE_VALUE_NULL: __printf ("null"); break; case ECMA_SIMPLE_VALUE_NULL: printf ("null"); break;
case ECMA_SIMPLE_VALUE_FALSE: __printf ("false"); break; case ECMA_SIMPLE_VALUE_FALSE: printf ("false"); break;
case ECMA_SIMPLE_VALUE_TRUE: __printf ("true"); break; case ECMA_SIMPLE_VALUE_TRUE: printf ("true"); break;
case ECMA_SIMPLE_VALUE_UNDEFINED: __printf ("undefined"); break; case ECMA_SIMPLE_VALUE_UNDEFINED: printf ("undefined"); break;
default: JERRY_UNREACHABLE (); default: JERRY_UNREACHABLE ();
} }
__printf (": SIMPLE;"); printf (": SIMPLE;");
break; break;
} }
} }
@@ -320,7 +320,7 @@ pp_op_meta (opcode_counter_t oc, op_meta opm, bool rewrite)
{ {
if (opm.op.data.call_n.arg_list == 0) if (opm.op.data.call_n.arg_list == 0)
{ {
__printf ("%s = %s ();", VAR (1), VAR (2)); printf ("%s = %s ();", VAR (1), VAR (2));
} }
else else
{ {
@@ -333,15 +333,15 @@ pp_op_meta (opcode_counter_t oc, op_meta opm, bool rewrite)
{ {
if (opm.op.data.native_call.arg_list == 0) if (opm.op.data.native_call.arg_list == 0)
{ {
__printf ("%s = ", VAR (1)); printf ("%s = ", VAR (1));
switch (opm.op.data.native_call.name) switch (opm.op.data.native_call.name)
{ {
case OPCODE_NATIVE_CALL_LED_TOGGLE: __printf ("LEDToggle ();"); break; case OPCODE_NATIVE_CALL_LED_TOGGLE: printf ("LEDToggle ();"); break;
case OPCODE_NATIVE_CALL_LED_ON: __printf ("LEDOn ();"); break; case OPCODE_NATIVE_CALL_LED_ON: printf ("LEDOn ();"); break;
case OPCODE_NATIVE_CALL_LED_OFF: __printf ("LEDOff ();"); break; case OPCODE_NATIVE_CALL_LED_OFF: printf ("LEDOff ();"); break;
case OPCODE_NATIVE_CALL_LED_ONCE: __printf ("LEDOnce ();"); break; case OPCODE_NATIVE_CALL_LED_ONCE: printf ("LEDOnce ();"); break;
case OPCODE_NATIVE_CALL_WAIT: __printf ("wait ();"); break; case OPCODE_NATIVE_CALL_WAIT: printf ("wait ();"); break;
case OPCODE_NATIVE_CALL_PRINT: __printf ("print ();"); break; case OPCODE_NATIVE_CALL_PRINT: printf ("print ();"); break;
default: JERRY_UNREACHABLE (); default: JERRY_UNREACHABLE ();
} }
} }
@@ -356,7 +356,7 @@ pp_op_meta (opcode_counter_t oc, op_meta opm, bool rewrite)
{ {
if (opm.op.data.construct_n.arg_list == 0) if (opm.op.data.construct_n.arg_list == 0)
{ {
__printf ("%s = new %s;", VAR (1), VAR (2)); printf ("%s = new %s;", VAR (1), VAR (2));
} }
else else
{ {
@@ -369,7 +369,7 @@ pp_op_meta (opcode_counter_t oc, op_meta opm, bool rewrite)
{ {
if (opm.op.data.func_decl_n.arg_list == 0) if (opm.op.data.func_decl_n.arg_list == 0)
{ {
__printf ("function %s ();", VAR (1)); printf ("function %s ();", VAR (1));
} }
else else
{ {
@@ -384,11 +384,11 @@ pp_op_meta (opcode_counter_t oc, op_meta opm, bool rewrite)
{ {
if (opm.op.data.func_expr_n.name_lit_idx == INVALID_VALUE) if (opm.op.data.func_expr_n.name_lit_idx == INVALID_VALUE)
{ {
__printf ("%s = function ();", VAR (1)); printf ("%s = function ();", VAR (1));
} }
else else
{ {
__printf ("%s = function %s ();", VAR (1), VAR (2)); printf ("%s = function %s ();", VAR (1), VAR (2));
} }
} }
else else
@@ -402,7 +402,7 @@ pp_op_meta (opcode_counter_t oc, op_meta opm, bool rewrite)
{ {
if (opm.op.data.array_decl.list == 0) if (opm.op.data.array_decl.list == 0)
{ {
__printf ("%s = [];", VAR (1)); printf ("%s = [];", VAR (1));
} }
else else
{ {
@@ -415,7 +415,7 @@ pp_op_meta (opcode_counter_t oc, op_meta opm, bool rewrite)
{ {
if (opm.op.data.obj_decl.list == 0) if (opm.op.data.obj_decl.list == 0)
{ {
__printf ("%s = {};", VAR (1)); printf ("%s = {};", VAR (1));
} }
else else
{ {
@@ -430,7 +430,7 @@ pp_op_meta (opcode_counter_t oc, op_meta opm, bool rewrite)
{ {
case OPCODE_META_TYPE_UNDEFINED: case OPCODE_META_TYPE_UNDEFINED:
{ {
__printf ("unknown meta;"); printf ("unknown meta;");
break; break;
} }
case OPCODE_META_TYPE_THIS_ARG: case OPCODE_META_TYPE_THIS_ARG:
@@ -467,57 +467,57 @@ pp_op_meta (opcode_counter_t oc, op_meta opm, bool rewrite)
{ {
case NAME_TO_ID (call_n): case NAME_TO_ID (call_n):
{ {
__printf ("%s = %s (", var_to_str (start_op, NULL, start, 1), printf ("%s = %s (", var_to_str (start_op, NULL, start, 1),
var_to_str (start_op, NULL, start, 2)); var_to_str (start_op, NULL, start, 2));
break; break;
} }
case NAME_TO_ID (native_call): case NAME_TO_ID (native_call):
{ {
__printf ("%s = ", var_to_str (start_op, NULL, start, 1)); printf ("%s = ", var_to_str (start_op, NULL, start, 1));
switch (start_op.data.native_call.name) switch (start_op.data.native_call.name)
{ {
case OPCODE_NATIVE_CALL_LED_TOGGLE: __printf ("LEDToggle ("); break; case OPCODE_NATIVE_CALL_LED_TOGGLE: printf ("LEDToggle ("); break;
case OPCODE_NATIVE_CALL_LED_ON: __printf ("LEDOn ("); break; case OPCODE_NATIVE_CALL_LED_ON: printf ("LEDOn ("); break;
case OPCODE_NATIVE_CALL_LED_OFF: __printf ("LEDOff ("); break; case OPCODE_NATIVE_CALL_LED_OFF: printf ("LEDOff ("); break;
case OPCODE_NATIVE_CALL_LED_ONCE: __printf ("LEDOnce ("); break; case OPCODE_NATIVE_CALL_LED_ONCE: printf ("LEDOnce ("); break;
case OPCODE_NATIVE_CALL_WAIT: __printf ("wait ("); break; case OPCODE_NATIVE_CALL_WAIT: printf ("wait ("); break;
case OPCODE_NATIVE_CALL_PRINT: __printf ("print ("); break; case OPCODE_NATIVE_CALL_PRINT: printf ("print ("); break;
default: JERRY_UNREACHABLE (); default: JERRY_UNREACHABLE ();
} }
break; break;
} }
case NAME_TO_ID (construct_n): case NAME_TO_ID (construct_n):
{ {
__printf ("%s = new %s (", var_to_str (start_op, NULL, start, 1), printf ("%s = new %s (", var_to_str (start_op, NULL, start, 1),
var_to_str (start_op, NULL, start, 2)); var_to_str (start_op, NULL, start, 2));
break; break;
} }
case NAME_TO_ID (func_decl_n): case NAME_TO_ID (func_decl_n):
{ {
__printf ("function %s (", var_to_str (start_op, NULL, start, 1)); printf ("function %s (", var_to_str (start_op, NULL, start, 1));
break; break;
} }
case NAME_TO_ID (func_expr_n): case NAME_TO_ID (func_expr_n):
{ {
if (start_op.data.func_expr_n.name_lit_idx == INVALID_VALUE) if (start_op.data.func_expr_n.name_lit_idx == INVALID_VALUE)
{ {
__printf ("%s = function (", var_to_str (start_op, NULL, start, 1)); printf ("%s = function (", var_to_str (start_op, NULL, start, 1));
} }
else else
{ {
__printf ("%s = function %s (", var_to_str (start_op, NULL, start, 1), printf ("%s = function %s (", var_to_str (start_op, NULL, start, 1),
var_to_str (start_op, NULL, start, 2)); var_to_str (start_op, NULL, start, 2));
} }
break; break;
} }
case NAME_TO_ID (array_decl): case NAME_TO_ID (array_decl):
{ {
__printf ("%s = [", var_to_str (start_op, NULL, start, 1)); printf ("%s = [", var_to_str (start_op, NULL, start, 1));
break; break;
} }
case NAME_TO_ID (obj_decl): case NAME_TO_ID (obj_decl):
{ {
__printf ("%s = {", var_to_str (start_op, NULL, start, 1)); printf ("%s = {", var_to_str (start_op, NULL, start, 1));
break; break;
} }
default: default:
@@ -536,30 +536,30 @@ pp_op_meta (opcode_counter_t oc, op_meta opm, bool rewrite)
{ {
case OPCODE_META_TYPE_THIS_ARG: case OPCODE_META_TYPE_THIS_ARG:
{ {
__printf ("this_arg = %s", var_to_str (meta_op, NULL, counter, 2)); printf ("this_arg = %s", var_to_str (meta_op, NULL, counter, 2));
break; break;
} }
case OPCODE_META_TYPE_VARG: case OPCODE_META_TYPE_VARG:
{ {
__printf ("%s", var_to_str (meta_op, NULL, counter, 2)); printf ("%s", var_to_str (meta_op, NULL, counter, 2));
break; break;
} }
case OPCODE_META_TYPE_VARG_PROP_DATA: case OPCODE_META_TYPE_VARG_PROP_DATA:
{ {
__printf ("%s:%s", var_to_str (meta_op, NULL, counter, 2), printf ("%s:%s", var_to_str (meta_op, NULL, counter, 2),
var_to_str (meta_op, NULL, counter, 3)); var_to_str (meta_op, NULL, counter, 3));
break; break;
} }
case OPCODE_META_TYPE_VARG_PROP_GETTER: case OPCODE_META_TYPE_VARG_PROP_GETTER:
{ {
__printf ("%s = get %s ();", var_to_str (meta_op, NULL, counter, 2), printf ("%s = get %s ();", var_to_str (meta_op, NULL, counter, 2),
var_to_str (meta_op, NULL, counter, 3)); var_to_str (meta_op, NULL, counter, 3));
break; break;
} }
case OPCODE_META_TYPE_VARG_PROP_SETTER: case OPCODE_META_TYPE_VARG_PROP_SETTER:
{ {
__printf ("%s = set (%s);", var_to_str (meta_op, NULL, counter, 2), printf ("%s = set (%s);", var_to_str (meta_op, NULL, counter, 2),
var_to_str (meta_op, NULL, counter, 3)); var_to_str (meta_op, NULL, counter, 3));
break; break;
} }
default: default:
@@ -569,7 +569,7 @@ pp_op_meta (opcode_counter_t oc, op_meta opm, bool rewrite)
} }
if (counter != oc) if (counter != oc)
{ {
__printf (", "); printf (", ");
} }
break; break;
} }
@@ -579,17 +579,17 @@ pp_op_meta (opcode_counter_t oc, op_meta opm, bool rewrite)
{ {
case NAME_TO_ID (array_decl): case NAME_TO_ID (array_decl):
{ {
__printf ("];"); printf ("];");
break; break;
} }
case NAME_TO_ID (obj_decl): case NAME_TO_ID (obj_decl):
{ {
__printf ("};"); printf ("};");
break; break;
} }
default: default:
{ {
__printf (");"); printf (");");
} }
} }
} }
@@ -597,37 +597,37 @@ pp_op_meta (opcode_counter_t oc, op_meta opm, bool rewrite)
} }
case OPCODE_META_TYPE_END_WITH: case OPCODE_META_TYPE_END_WITH:
{ {
__printf ("end with;"); printf ("end with;");
break; break;
} }
case OPCODE_META_TYPE_FUNCTION_END: case OPCODE_META_TYPE_FUNCTION_END:
{ {
__printf ("function end: %d;", oc + OC (2, 3)); printf ("function end: %d;", oc + OC (2, 3));
break; break;
} }
case OPCODE_META_TYPE_CATCH: case OPCODE_META_TYPE_CATCH:
{ {
__printf ("catch end: %d;", oc + OC (2, 3)); printf ("catch end: %d;", oc + OC (2, 3));
break; break;
} }
case OPCODE_META_TYPE_CATCH_EXCEPTION_IDENTIFIER: case OPCODE_META_TYPE_CATCH_EXCEPTION_IDENTIFIER:
{ {
__printf ("catch (%s);", VAR (2)); printf ("catch (%s);", VAR (2));
break; break;
} }
case OPCODE_META_TYPE_FINALLY: case OPCODE_META_TYPE_FINALLY:
{ {
__printf ("finally end: %d;", oc + OC (2, 3)); printf ("finally end: %d;", oc + OC (2, 3));
break; break;
} }
case OPCODE_META_TYPE_END_TRY_CATCH_FINALLY: case OPCODE_META_TYPE_END_TRY_CATCH_FINALLY:
{ {
__printf ("end try"); printf ("end try");
break; break;
} }
case OPCODE_META_TYPE_STRICT_CODE: case OPCODE_META_TYPE_STRICT_CODE:
{ {
__printf ("use strict;"); printf ("use strict;");
break; break;
} }
default: default:
@@ -645,9 +645,9 @@ pp_op_meta (opcode_counter_t oc, op_meta opm, bool rewrite)
if (rewrite) if (rewrite)
{ {
__printf (" // REWRITE"); printf (" // REWRITE");
} }
__printf ("\n"); printf ("\n");
} }
#endif /* JERRY_ENABLE_PRETTY_PRINTER */ #endif /* JERRY_ENABLE_PRETTY_PRINTER */
+93 -93
View File
@@ -58,17 +58,17 @@ interp_mem_stats_print_legend (void)
return; return;
} }
__printf ("----- Legend of memory usage trace during interpretation -----\n\n" printf ("----- Legend of memory usage trace during interpretation -----\n\n"
"\tEntering block = beginning execution of initial (global) scope or function.\n\n" "\tEntering block = beginning execution of initial (global) scope or function.\n\n"
"\tInformation on each value is formatted as following: (p -> n ( [+-]c, local l, peak g), where:\n" "\tInformation on each value is formatted as following: (p -> n ( [+-]c, local l, peak g), where:\n"
"\t p - value just before starting of item's execution;\n" "\t p - value just before starting of item's execution;\n"
"\t n - value just after end of item's execution;\n" "\t n - value just after end of item's execution;\n"
"\t [+-c] - difference between n and p;\n" "\t [+-c] - difference between n and p;\n"
"\t l - temporary usage of memory during item's execution;\n" "\t l - temporary usage of memory during item's execution;\n"
"\t g - global peak of the value during program's execution.\n\n" "\t g - global peak of the value during program's execution.\n\n"
"\tChunks are items allocated in a pool." "\tChunks are items allocated in a pool."
" If there is no pool with a free chunk upon chunk allocation request,\n" " If there is no pool with a free chunk upon chunk allocation request,\n"
"\tthen new pool is allocated on the heap (that causes increase of number of allocated heap bytes).\n\n"); "\tthen new pool is allocated on the heap (that causes increase of number of allocated heap bytes).\n\n");
} }
static void static void
@@ -114,7 +114,7 @@ interp_mem_stats_context_enter (int_data_t *int_data_p,
INTERP_MEM_PRINT_INDENTATION_MAX); INTERP_MEM_PRINT_INDENTATION_MAX);
char indent_prefix[INTERP_MEM_PRINT_INDENTATION_MAX + 2]; char indent_prefix[INTERP_MEM_PRINT_INDENTATION_MAX + 2];
__memset (indent_prefix, ' ', sizeof (indent_prefix)); memset (indent_prefix, ' ', sizeof (indent_prefix));
indent_prefix [indentation] = '|'; indent_prefix [indentation] = '|';
indent_prefix [indentation + 1] = '\0'; indent_prefix [indentation + 1] = '\0';
@@ -127,16 +127,16 @@ interp_mem_stats_context_enter (int_data_t *int_data_p,
&int_data_p->pools_stats_context_enter, &int_data_p->pools_stats_context_enter,
false, false); false, false);
__printf ("\n%s--- Beginning interpretation of a block at position %u ---\n" printf ("\n%s--- Beginning interpretation of a block at position %u ---\n"
"%s Allocated heap bytes: %5u\n" "%s Allocated heap bytes: %5u\n"
"%s Waste heap bytes: %5u\n" "%s Waste heap bytes: %5u\n"
"%s Pools: %5u\n" "%s Pools: %5u\n"
"%s Allocated pool chunks: %5u\n\n", "%s Allocated pool chunks: %5u\n\n",
indent_prefix, (uint32_t) block_position, indent_prefix, (uint32_t) block_position,
indent_prefix, int_data_p->heap_stats_context_enter.allocated_bytes, indent_prefix, int_data_p->heap_stats_context_enter.allocated_bytes,
indent_prefix, int_data_p->heap_stats_context_enter.waste_bytes, indent_prefix, int_data_p->heap_stats_context_enter.waste_bytes,
indent_prefix, int_data_p->pools_stats_context_enter.pools_count, indent_prefix, int_data_p->pools_stats_context_enter.pools_count,
indent_prefix, int_data_p->pools_stats_context_enter.allocated_chunks); indent_prefix, int_data_p->pools_stats_context_enter.allocated_chunks);
} }
static void static void
@@ -152,7 +152,7 @@ interp_mem_stats_context_exit (int_data_t *int_data_p,
INTERP_MEM_PRINT_INDENTATION_MAX); INTERP_MEM_PRINT_INDENTATION_MAX);
char indent_prefix[INTERP_MEM_PRINT_INDENTATION_MAX + 2]; char indent_prefix[INTERP_MEM_PRINT_INDENTATION_MAX + 2];
__memset (indent_prefix, ' ', sizeof (indent_prefix)); memset (indent_prefix, ' ', sizeof (indent_prefix));
indent_prefix [indentation] = '|'; indent_prefix [indentation] = '|';
indent_prefix [indentation + 1] = '\0'; indent_prefix [indentation + 1] = '\0';
@@ -172,40 +172,40 @@ interp_mem_stats_context_exit (int_data_t *int_data_p,
int_data_p->context_peak_allocated_pool_chunks -= JERRY_MAX (int_data_p->pools_stats_context_enter.allocated_chunks, int_data_p->context_peak_allocated_pool_chunks -= JERRY_MAX (int_data_p->pools_stats_context_enter.allocated_chunks,
pools_stats_context_exit.allocated_chunks); pools_stats_context_exit.allocated_chunks);
__printf ("%sAllocated heap bytes in the context: %5u -> %5u (%+5d, local %5u, peak %5u)\n", printf ("%sAllocated heap bytes in the context: %5u -> %5u (%+5d, local %5u, peak %5u)\n",
indent_prefix, indent_prefix,
int_data_p->heap_stats_context_enter.allocated_bytes, int_data_p->heap_stats_context_enter.allocated_bytes,
heap_stats_context_exit.allocated_bytes, heap_stats_context_exit.allocated_bytes,
heap_stats_context_exit.allocated_bytes - int_data_p->heap_stats_context_enter.allocated_bytes, heap_stats_context_exit.allocated_bytes - int_data_p->heap_stats_context_enter.allocated_bytes,
int_data_p->context_peak_allocated_heap_bytes, int_data_p->context_peak_allocated_heap_bytes,
heap_stats_context_exit.global_peak_allocated_bytes); heap_stats_context_exit.global_peak_allocated_bytes);
__printf ("%sWaste heap bytes in the context: %5u -> %5u (%+5d, local %5u, peak %5u)\n", printf ("%sWaste heap bytes in the context: %5u -> %5u (%+5d, local %5u, peak %5u)\n",
indent_prefix, indent_prefix,
int_data_p->heap_stats_context_enter.waste_bytes, int_data_p->heap_stats_context_enter.waste_bytes,
heap_stats_context_exit.waste_bytes, heap_stats_context_exit.waste_bytes,
heap_stats_context_exit.waste_bytes - int_data_p->heap_stats_context_enter.waste_bytes, heap_stats_context_exit.waste_bytes - int_data_p->heap_stats_context_enter.waste_bytes,
int_data_p->context_peak_waste_heap_bytes, int_data_p->context_peak_waste_heap_bytes,
heap_stats_context_exit.global_peak_waste_bytes); heap_stats_context_exit.global_peak_waste_bytes);
__printf ("%sPools count in the context: %5u -> %5u (%+5d, local %5u, peak %5u)\n", printf ("%sPools count in the context: %5u -> %5u (%+5d, local %5u, peak %5u)\n",
indent_prefix, indent_prefix,
int_data_p->pools_stats_context_enter.pools_count, int_data_p->pools_stats_context_enter.pools_count,
pools_stats_context_exit.pools_count, pools_stats_context_exit.pools_count,
pools_stats_context_exit.pools_count - int_data_p->pools_stats_context_enter.pools_count, pools_stats_context_exit.pools_count - int_data_p->pools_stats_context_enter.pools_count,
int_data_p->context_peak_pools_count, int_data_p->context_peak_pools_count,
pools_stats_context_exit.global_peak_pools_count); pools_stats_context_exit.global_peak_pools_count);
__printf ("%sAllocated pool chunks in the context: %5u -> %5u (%+5d, local %5u, peak %5u)\n", printf ("%sAllocated pool chunks in the context: %5u -> %5u (%+5d, local %5u, peak %5u)\n",
indent_prefix, indent_prefix,
int_data_p->pools_stats_context_enter.allocated_chunks, int_data_p->pools_stats_context_enter.allocated_chunks,
pools_stats_context_exit.allocated_chunks, pools_stats_context_exit.allocated_chunks,
pools_stats_context_exit.allocated_chunks - int_data_p->pools_stats_context_enter.allocated_chunks, pools_stats_context_exit.allocated_chunks - int_data_p->pools_stats_context_enter.allocated_chunks,
int_data_p->context_peak_allocated_pool_chunks, int_data_p->context_peak_allocated_pool_chunks,
pools_stats_context_exit.global_peak_allocated_chunks); pools_stats_context_exit.global_peak_allocated_chunks);
__printf ("\n%s--- End of interpretation of a block at position %u ---\n\n", printf ("\n%s--- End of interpretation of a block at position %u ---\n\n",
indent_prefix, (uint32_t) block_position); indent_prefix, (uint32_t) block_position);
} }
static void static void
@@ -222,7 +222,7 @@ interp_mem_stats_opcode_enter (opcode_counter_t opcode_position,
INTERP_MEM_PRINT_INDENTATION_MAX); INTERP_MEM_PRINT_INDENTATION_MAX);
char indent_prefix[INTERP_MEM_PRINT_INDENTATION_MAX + 2]; char indent_prefix[INTERP_MEM_PRINT_INDENTATION_MAX + 2];
__memset (indent_prefix, ' ', sizeof (indent_prefix)); memset (indent_prefix, ' ', sizeof (indent_prefix));
indent_prefix [indentation] = '|'; indent_prefix [indentation] = '|';
indent_prefix [indentation + 1] = '\0'; indent_prefix [indentation + 1] = '\0';
@@ -232,8 +232,8 @@ interp_mem_stats_opcode_enter (opcode_counter_t opcode_position,
opcode_t opcode = read_opcode (opcode_position); opcode_t opcode = read_opcode (opcode_position);
__printf ("%s-- Opcode: %s (position %u) --\n", printf ("%s-- Opcode: %s (position %u) --\n",
indent_prefix, __op_names [opcode.op_idx], (uint32_t) opcode_position); indent_prefix, __op_names [opcode.op_idx], (uint32_t) opcode_position);
interp_mem_stats_print_indentation += INTERP_MEM_PRINT_INDENTATION_STEP; interp_mem_stats_print_indentation += INTERP_MEM_PRINT_INDENTATION_STEP;
} }
@@ -255,7 +255,7 @@ interp_mem_stats_opcode_exit (int_data_t *int_data_p,
INTERP_MEM_PRINT_INDENTATION_MAX); INTERP_MEM_PRINT_INDENTATION_MAX);
char indent_prefix[INTERP_MEM_PRINT_INDENTATION_MAX + 2]; char indent_prefix[INTERP_MEM_PRINT_INDENTATION_MAX + 2];
__memset (indent_prefix, ' ', sizeof (indent_prefix)); memset (indent_prefix, ' ', sizeof (indent_prefix));
indent_prefix [indentation] = '|'; indent_prefix [indentation] = '|';
indent_prefix [indentation + 1] = '\0'; indent_prefix [indentation + 1] = '\0';
@@ -277,53 +277,53 @@ interp_mem_stats_opcode_exit (int_data_t *int_data_p,
opcode_t opcode = read_opcode (opcode_position); opcode_t opcode = read_opcode (opcode_position);
__printf ("%s Allocated heap bytes: %5u -> %5u (%+5d, local %5u, peak %5u)\n", printf ("%s Allocated heap bytes: %5u -> %5u (%+5d, local %5u, peak %5u)\n",
indent_prefix, indent_prefix,
heap_stats_before_p->allocated_bytes, heap_stats_before_p->allocated_bytes,
heap_stats_after.allocated_bytes, heap_stats_after.allocated_bytes,
heap_stats_after.allocated_bytes - heap_stats_before_p->allocated_bytes, heap_stats_after.allocated_bytes - heap_stats_before_p->allocated_bytes,
heap_stats_after.peak_allocated_bytes - JERRY_MAX (heap_stats_before_p->allocated_bytes, heap_stats_after.peak_allocated_bytes - JERRY_MAX (heap_stats_before_p->allocated_bytes,
heap_stats_after.allocated_bytes), heap_stats_after.allocated_bytes),
heap_stats_after.global_peak_allocated_bytes); heap_stats_after.global_peak_allocated_bytes);
if (heap_stats_before_p->waste_bytes != heap_stats_after.waste_bytes) if (heap_stats_before_p->waste_bytes != heap_stats_after.waste_bytes)
{ {
__printf ("%s Waste heap bytes: %5u -> %5u (%+5d, local %5u, peak %5u)\n", printf ("%s Waste heap bytes: %5u -> %5u (%+5d, local %5u, peak %5u)\n",
indent_prefix, indent_prefix,
heap_stats_before_p->waste_bytes, heap_stats_before_p->waste_bytes,
heap_stats_after.waste_bytes, heap_stats_after.waste_bytes,
heap_stats_after.waste_bytes - heap_stats_before_p->waste_bytes, heap_stats_after.waste_bytes - heap_stats_before_p->waste_bytes,
heap_stats_after.peak_waste_bytes - JERRY_MAX (heap_stats_before_p->waste_bytes, heap_stats_after.peak_waste_bytes - JERRY_MAX (heap_stats_before_p->waste_bytes,
heap_stats_after.waste_bytes), heap_stats_after.waste_bytes),
heap_stats_after.global_peak_waste_bytes); heap_stats_after.global_peak_waste_bytes);
} }
if (pools_stats_before_p->pools_count != pools_stats_after.pools_count) if (pools_stats_before_p->pools_count != pools_stats_after.pools_count)
{ {
__printf ("%s Pools: %5u -> %5u (%+5d, local %5u, peak %5u)\n", printf ("%s Pools: %5u -> %5u (%+5d, local %5u, peak %5u)\n",
indent_prefix, indent_prefix,
pools_stats_before_p->pools_count, pools_stats_before_p->pools_count,
pools_stats_after.pools_count, pools_stats_after.pools_count,
pools_stats_after.pools_count - pools_stats_before_p->pools_count, pools_stats_after.pools_count - pools_stats_before_p->pools_count,
pools_stats_after.peak_pools_count - JERRY_MAX (pools_stats_before_p->pools_count, pools_stats_after.peak_pools_count - JERRY_MAX (pools_stats_before_p->pools_count,
pools_stats_after.pools_count), pools_stats_after.pools_count),
pools_stats_after.global_peak_pools_count); pools_stats_after.global_peak_pools_count);
} }
if (pools_stats_before_p->allocated_chunks != pools_stats_after.allocated_chunks) if (pools_stats_before_p->allocated_chunks != pools_stats_after.allocated_chunks)
{ {
__printf ("%s Allocated pool chunks: %5u -> %5u (%+5d, local %5u, peak %5u)\n", printf ("%s Allocated pool chunks: %5u -> %5u (%+5d, local %5u, peak %5u)\n",
indent_prefix, indent_prefix,
pools_stats_before_p->allocated_chunks, pools_stats_before_p->allocated_chunks,
pools_stats_after.allocated_chunks, pools_stats_after.allocated_chunks,
pools_stats_after.allocated_chunks - pools_stats_before_p->allocated_chunks, pools_stats_after.allocated_chunks - pools_stats_before_p->allocated_chunks,
pools_stats_after.peak_allocated_chunks - JERRY_MAX (pools_stats_before_p->allocated_chunks, pools_stats_after.peak_allocated_chunks - JERRY_MAX (pools_stats_before_p->allocated_chunks,
pools_stats_after.allocated_chunks), pools_stats_after.allocated_chunks),
pools_stats_after.global_peak_allocated_chunks); pools_stats_after.global_peak_allocated_chunks);
} }
__printf ("%s-- End of execution of opcode %s (position %u) --\n\n", printf ("%s-- End of execution of opcode %s (position %u) --\n\n",
indent_prefix, __op_names [opcode.op_idx], opcode_position); indent_prefix, __op_names [opcode.op_idx], opcode_position);
} }
#endif /* MEM_STATS */ #endif /* MEM_STATS */
@@ -414,8 +414,8 @@ run_int_loop (int_data_t *int_data)
mem_heap_stats_t heap_stats_before; mem_heap_stats_t heap_stats_before;
mem_pools_stats_t pools_stats_before; mem_pools_stats_t pools_stats_before;
__memset (&heap_stats_before, 0, sizeof (heap_stats_before)); memset (&heap_stats_before, 0, sizeof (heap_stats_before));
__memset (&pools_stats_before, 0, sizeof (pools_stats_before)); memset (&pools_stats_before, 0, sizeof (pools_stats_before));
#endif /* MEM_STATS */ #endif /* MEM_STATS */
while (true) while (true)
+1 -1
View File
@@ -65,7 +65,7 @@ main( int __unused argc,
ecma_number_to_zt_string (nums[i], zt_str, sizeof (zt_str)); ecma_number_to_zt_string (nums[i], zt_str, sizeof (zt_str));
if (__strcmp ((char*)zt_str, (char*)zt_strings [i]) != 0) if (strcmp ((char*)zt_str, (char*)zt_strings [i]) != 0)
{ {
return 1; return 1;
} }
+4 -4
View File
@@ -48,7 +48,7 @@ main( int __unused argc,
srand((unsigned int) time(NULL)); srand((unsigned int) time(NULL));
unsigned int seed = (unsigned int)rand(); unsigned int seed = (unsigned int)rand();
__printf("seed=%u\n", seed); printf("seed=%u\n", seed);
srand(seed); srand(seed);
for ( uint32_t i = 0; i < test_iters; i++ ) for ( uint32_t i = 0; i < test_iters; i++ )
@@ -62,7 +62,7 @@ main( int __unused argc,
if ( ptrs[j] != NULL ) if ( ptrs[j] != NULL )
{ {
__memset(ptrs[j], 0, MEM_POOL_CHUNK_SIZE); memset(ptrs[j], 0, MEM_POOL_CHUNK_SIZE);
} }
} }
@@ -86,8 +86,8 @@ main( int __unused argc,
mem_pools_stats_t stats; mem_pools_stats_t stats;
mem_pools_get_stats( &stats); mem_pools_get_stats( &stats);
__printf("Pools stats:\n"); printf("Pools stats:\n");
__printf(" Chunk size: %u\n" printf(" Chunk size: %u\n"
" Pools: %lu\n" " Pools: %lu\n"
" Allocated chunks: %lu\n" " Allocated chunks: %lu\n"
" Free chunks: %lu\n" " Free chunks: %lu\n"
+1 -1
View File
@@ -33,7 +33,7 @@ main( int __unused argc,
mem_init (); mem_init ();
deserializer_init (); deserializer_init ();
parser_init (program, __strlen (program), true); parser_init (program, strlen (program), true);
parser_parse_program (); parser_parse_program ();
parser_free (); parser_free ();