188 dataDataSegment->
size = bytes;
190 dataDataSegment->
type = type;
193#if defined(CPU_BIG_ENDIAN)
194 char * value = (
char *)&_value;
195 for(
int i=0; i<bytes; ++i ) {
196 dataDataSegment->
data[bytes-i-1] = value[i];
199 memcpy( dataDataSegment->
data, &_value, bytes );
205 while( final->next ) {
208 final->next = dataDataSegment;
210 data->data = dataDataSegment;
248 dataDataSegment->
size = bytes;
250 dataDataSegment->
type = type;
254 for(
int i=0; i<bytes; ++i ) {
255 dataDataSegment->
data[i] = (char)(result[i] & 0xff );
261 while( final->next ) {
264 final->next = dataDataSegment;
266 data->data = dataDataSegment;
303 dataDataSegment->
size = bytes;
305 memset( dataDataSegment->
data, 0, bytes + 1 );
306 dataDataSegment->
type = type;
307 memcpy( dataDataSegment->
data, value, bytes );
318 while( final->next ) {
321 final->next = dataDataSegment;
323 data->data = dataDataSegment;
349 dataDataSegment->
size = bytes;
351 memset( dataDataSegment->
data, 0, bytes );
365#if defined(CPU_BIG_ENDIAN)
366 dataDataSegment->
data[
offset+1] = (
unsigned char)current->
value & 0xff;
367 dataDataSegment->
data[
offset] = (
unsigned char)((current->
value>>8) & 0xff);
370 dataDataSegment->
data[
offset+1] = (
unsigned char)((current->
value>>8) & 0xff);
375#if defined(CPU_BIG_ENDIAN)
376 dataDataSegment->
data[
offset+3] = (
unsigned char)current->
value & 0xff;
377 dataDataSegment->
data[
offset+2] = (
unsigned char)((current->
value>>8) & 0xff);
378 dataDataSegment->
data[
offset+1] = (
unsigned char)((current->
value>>16) & 0xff);
379 dataDataSegment->
data[
offset] = (
unsigned char)((current->
value>>24) & 0xff);
382 dataDataSegment->
data[
offset+1] = (
unsigned char)((current->
value>>8) & 0xff);
383 dataDataSegment->
data[
offset+2] = (
unsigned char)((current->
value>>16) & 0xff);
384 dataDataSegment->
data[
offset+3] = (
unsigned char)((current->
value>>24) & 0xff);
389 current = current->
next;
390 currentField = currentField->
next;
396 while( final->next ) {
399 final->next = dataDataSegment;
401 data->data = dataDataSegment;
void cpu_float_single_from_double_to_int_array(Environment *_environment, double _value, int _result[])
#define VT_FLOAT_BITWIDTH(p)
DataSegment * data_segment_define_or_retrieve_numeric(Environment *_environment, int _number)
VariableType variable_type_from_numeric_value(Environment *_environment, int _number)
DataSegment * data_segment_define_or_retrieve(Environment *_environment, char *_name)
char * unescape_string(Environment *_environment, char *_value, int _printing, int *_final_size)
void data_string(Environment *_environment, char *_value)
Emit code for DATA instruction (string values).
void data_type(Environment *_environment)
void data_floating(Environment *_environment, double _value)
Emit code for DATA instruction (float values).
void data_numeric(Environment *_environment, int _value)
Emit code for DATA instruction (numeric values).
FloatTypePrecision precision
int lastDefinedLabelIsNumeric
Constant * currentFieldsValues
int lastDefinedLabelNumeric
int dataLastAbsoluteAddress
VariableType dataDataType
FloatTypePrecision precision
#define VT_OPTIMAL_SHIFT(s)
struct _Environment Environment
Structure of compilation environment.
struct _Constant Constant
Structure of a single constant.
struct _DataDataSegment DataDataSegment
enum _VariableType VariableType
Type of variables.
struct _DataSegment DataSegment