Add support of floating-point literals
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
#include "deserializer.h"
|
||||
#include "bytecode-data.h"
|
||||
|
||||
int *num_data = NULL;
|
||||
ecma_number_t *num_data = NULL;
|
||||
uint8_t num_size = 0;
|
||||
|
||||
const ecma_char_t *
|
||||
@@ -42,7 +42,7 @@ deserialize_string_by_id (uint8_t id)
|
||||
return ((const ecma_char_t *) bytecode_data + offset);
|
||||
}
|
||||
|
||||
int
|
||||
ecma_number_t
|
||||
deserialize_num_by_id (uint8_t id)
|
||||
{
|
||||
uint16_t str_size, str_offset;
|
||||
@@ -65,7 +65,7 @@ deserialize_num_by_id (uint8_t id)
|
||||
data++;
|
||||
|
||||
num_size = *(++data);
|
||||
num_data = (int *) ++data;
|
||||
num_data = (ecma_number_t *) ++data;
|
||||
}
|
||||
|
||||
if (id >= num_size)
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#include "ecma-globals.h"
|
||||
|
||||
const ecma_char_t *deserialize_string_by_id (uint8_t);
|
||||
int deserialize_num_by_id (uint8_t);
|
||||
ecma_number_t deserialize_num_by_id (uint8_t);
|
||||
const void *deserialize_bytecode (void);
|
||||
uint8_t deserialize_min_temp (void);
|
||||
|
||||
|
||||
@@ -52,14 +52,14 @@ pp_strings (const char *strings[], uint8_t size)
|
||||
}
|
||||
|
||||
void
|
||||
pp_nums (const int32_t nums[], uint8_t size, uint8_t strings_num)
|
||||
pp_nums (const ecma_number_t nums[], uint8_t size, uint8_t strings_num)
|
||||
{
|
||||
uint8_t i;
|
||||
|
||||
__printf ("NUMS %d:\n", size);
|
||||
for (i = 0; i < size; i++)
|
||||
{
|
||||
__printf ("%3d %7d\n", i + strings_num, nums[i]);
|
||||
__printf ("%3d %7d\n", i + strings_num, (int) nums[i]);
|
||||
}
|
||||
__printf ("\n");
|
||||
}
|
||||
|
||||
@@ -20,6 +20,6 @@
|
||||
|
||||
void pp_opcode (opcode_counter_t, OPCODE, bool);
|
||||
void pp_strings (const char **, uint8_t);
|
||||
void pp_nums (const int32_t *, uint8_t, uint8_t);
|
||||
void pp_nums (const ecma_number_t *, uint8_t, uint8_t);
|
||||
|
||||
#endif // PRETTY_PRINTER
|
||||
|
||||
@@ -72,14 +72,14 @@ serializer_dump_strings (const char *strings[], uint8_t size)
|
||||
}
|
||||
|
||||
void
|
||||
serializer_dump_nums (const int32_t nums[], uint8_t size, uint16_t offset, uint8_t strings_num)
|
||||
serializer_dump_nums (const ecma_number_t nums[], uint8_t size, uint16_t offset, uint8_t strings_num)
|
||||
{
|
||||
uint8_t i, *data;
|
||||
uint8_t i, *data, type_size = sizeof (ecma_number_t);
|
||||
|
||||
if (print_opcodes)
|
||||
pp_nums (nums, size, strings_num);
|
||||
|
||||
data = mem_heap_alloc_block ((size_t) (offset + size * 4 + 1), MEM_HEAP_ALLOC_LONG_TERM);
|
||||
data = mem_heap_alloc_block ((size_t) (offset + size * type_size + 1), MEM_HEAP_ALLOC_LONG_TERM);
|
||||
if (!data)
|
||||
parser_fatal (ERR_MEMORY);
|
||||
|
||||
@@ -91,8 +91,8 @@ serializer_dump_nums (const int32_t nums[], uint8_t size, uint16_t offset, uint8
|
||||
data++;
|
||||
for (i = 0; i < size; i++)
|
||||
{
|
||||
__memcpy (data, nums + i, 4);
|
||||
data += 4;
|
||||
__memcpy (data, nums + i, type_size);
|
||||
data += type_size;
|
||||
}
|
||||
|
||||
#ifndef JERRY_NDEBUG
|
||||
|
||||
@@ -24,7 +24,7 @@ void serializer_init (bool show_opcodes);
|
||||
|
||||
uint16_t serializer_dump_strings (const char **, uint8_t);
|
||||
|
||||
void serializer_dump_nums (const int32_t *, uint8_t, uint16_t, uint8_t);
|
||||
void serializer_dump_nums (const ecma_number_t *, uint8_t, uint16_t, uint8_t);
|
||||
|
||||
void serializer_dump_opcode (OPCODE);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user