Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
212c296c
Commit
212c296c
authored
Dec 30, 2013
by
Damien George
Browse files
Make unix-cpy cross platform; remove dependency of asmx64 on mpconfig.
parent
cd340c44
Changes
6
Hide whitespace changes
Inline
Side-by-side
py/asmx64.c
View file @
212c296c
...
...
@@ -5,7 +5,6 @@
#include
<string.h>
#include
"misc.h"
#include
"mpconfig.h"
#include
"asmx64.h"
/* all offsets are measured in multiples of 8 bytes */
...
...
@@ -603,7 +602,12 @@ void asm_x64_call_i1(asm_x64_t* as, void* func, int i1)
*/
void
asm_x64_call_ind
(
asm_x64_t
*
as
,
void
*
ptr
,
int
temp_r64
)
{
asm_x64_mov_i64_to_r64_optimised
(
as
,
(
machine_int_t
)
ptr
,
temp_r64
);
#ifdef __LP64__
asm_x64_mov_i64_to_r64_optimised
(
as
,
(
int64_t
)
ptr
,
temp_r64
);
#else
// If we get here, sizeof(int) == sizeof(void*).
asm_x64_mov_i64_to_r64_optimised
(
as
,
(
int64_t
)(
unsigned
int
)
ptr
,
temp_r64
);
#endif
asm_x64_write_byte_2
(
as
,
OPCODE_CALL_RM32
,
MODRM_R64
(
2
)
|
MODRM_RM_REG
|
MODRM_RM_R64
(
temp_r64
));
// this reduces code size by 2 bytes per call, but doesn't seem to speed it up at all
// doesn't work anymore because calls are 64 bits away
...
...
py/showbc.c
View file @
212c296c
...
...
@@ -283,12 +283,12 @@ void mp_show_byte_code(const byte *ip, int len) {
case
MP_BC_BUILD_SET
:
DECODE_UINT
;
printf
(
"BUILD_SET
%lu"
,
unum
);
printf
(
"BUILD_SET
"
UINT_FMT
,
unum
);
break
;
case
MP_BC_SET_ADD
:
DECODE_UINT
;
printf
(
"SET_ADD
%lu"
,
unum
);
printf
(
"SET_ADD
"
UINT_FMT
,
unum
);
break
;
case
MP_BC_UNPACK_SEQUENCE
:
...
...
stm/Makefile
View file @
212c296c
...
...
@@ -171,6 +171,9 @@ $(BUILD)/%.o: $(CC3KSRC)/%.c
$(BUILD)/%.o
:
$(PYSRC)/%.s
$(AS)
-o
$@
$<
$(BUILD)/%.o
:
$(PYSRC)/%.S
$(CC)
$(CFLAGS)
-c
-o
$@
$<
$(BUILD)/%.o
:
$(PYSRC)/%.c mpconfig.h
$(CC)
$(CFLAGS)
-c
-o
$@
$<
...
...
unix-cpy/Makefile
View file @
212c296c
...
...
@@ -9,6 +9,7 @@ SRC_C = \
main.c
\
PY_O
=
\
nlrx86.o
\
nlrx64.o
\
malloc.o
\
qstr.o
\
...
...
@@ -57,13 +58,13 @@ $(PROG): $(BUILD) $(OBJ)
$(CC)
-o
$@
$(OBJ)
$(LIB)
$(LDFLAGS)
$(BUILD)
:
mkdir
$@
mkdir
-p
$@
$(BUILD)/%.o
:
%.c
$(CC)
$(CFLAGS)
-c
-o
$@
$<
$(BUILD)/%.o
:
$(PYSRC)/%.
s
$(
AS)
-o
$@
$<
$(BUILD)/%.o
:
$(PYSRC)/%.
S
$(
CC)
$(CFLAGS)
-c
-o
$@
$<
$(BUILD)/%.o
:
$(PYSRC)/%.c mpconfig.h
$(CC)
$(CFLAGS)
-c
-o
$@
$<
...
...
unix-cpy/mpconfig.h
View file @
212c296c
...
...
@@ -8,10 +8,22 @@
// type definitions for the specific machine
#define BYTES_PER_WORD (8)
#ifdef __LP64__
typedef
long
machine_int_t
;
// must be pointer size
typedef
unsigned
long
machine_uint_t
;
// must be pointer size
#define UINT_FMT "%lu"
#define INT_FMT "%ld"
#else
// These are definitions for machines where sizeof(int) == sizeof(void*),
// regardless for actual size.
typedef
int
machine_int_t
;
// must be pointer size
typedef
unsigned
int
machine_uint_t
;
// must be pointer size
#define UINT_FMT "%u"
#define INT_FMT "%d"
#endif
#define BYTES_PER_WORD sizeof(machine_int_t)
typedef
int64_t
machine_int_t
;
// must be pointer size
typedef
uint64_t
machine_uint_t
;
// must be pointer size
typedef
void
*
machine_ptr_t
;
// must be of pointer size
typedef
const
void
*
machine_const_ptr_t
;
// must be of pointer size
typedef
double
machine_float_t
;
...
...
unix/Makefile
View file @
212c296c
...
...
@@ -72,9 +72,6 @@ $(BUILD):
$(BUILD)/%.o
:
%.c
$(CC)
$(CFLAGS)
-c
-o
$@
$<
$(BUILD)/%.o
:
$(PYSRC)/%.s
$(AS)
-o
$@
$<
$(BUILD)/%.o
:
$(PYSRC)/%.S
$(CC)
$(CFLAGS)
-c
-o
$@
$<
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment