<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/py/py.mk, branch 0.9.4</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=0.9.4</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=0.9.4'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2016-12-21T21:29:32+00:00</updated>
<entry>
<title>extmod/modutimeq: Refactor into optimized class.</title>
<updated>2016-12-21T21:29:32+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2016-12-21T21:29:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=d02f6a9956760425188f517f3708c76123e53d2a'/>
<id>urn:sha1:d02f6a9956760425188f517f3708c76123e53d2a</id>
<content type='text'>
    import utimeq, utime
    # Max queue size, the queue allocated statically on creation
    q = utimeq.utimeq(10)
    q.push(utime.ticks_ms(), data1, data2)
    res = [0, 0, 0]
    # Items in res are filled up with results
    q.pop(res)
</content>
</entry>
<entry>
<title>py: Add inline Xtensa assembler.</title>
<updated>2016-12-09T06:07:38+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-12-09T06:03:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=f76b1bfa9f59fcfa03837c6934ad51d2db3ff4a3'/>
<id>urn:sha1:f76b1bfa9f59fcfa03837c6934ad51d2db3ff4a3</id>
<content type='text'>
This patch adds the MICROPY_EMIT_INLINE_XTENSA option, which, when
enabled, allows the @micropython.asm_xtensa decorator to be used.

The following opcodes are currently supported (ax is a register, a0-a15):

    ret_n()
    callx0(ax)
    j(label)
    jx(ax)

    beqz(ax, label)
    bnez(ax, label)
    mov(ax, ay)
    movi(ax, imm) # imm can be full 32-bit, uses l32r if needed

    and_(ax, ay, az)
    or_(ax, ay, az)
    xor(ax, ay, az)
    add(ax, ay, az)
    sub(ax, ay, az)
    mull(ax, ay, az)

    l8ui(ax, ay, imm)
    l16ui(ax, ay, imm)
    l32i(ax, ay, imm)
    s8i(ax, ay, imm)
    s16i(ax, ay, imm)
    s32i(ax, ay, imm)
    l16si(ax, ay, imm)
    addi(ax, ay, imm)

    ball(ax, ay, label)
    bany(ax, ay, label)
    bbc(ax, ay, label)
    bbs(ax, ay, label)
    beq(ax, ay, label)
    bge(ax, ay, label)
    bgeu(ax, ay, label)
    blt(ax, ay, label)
    bnall(ax, ay, label)
    bne(ax, ay, label)
    bnone(ax, ay, label)

Upon entry to the assembly function the registers a0, a12, a13, a14 are
pushed to the stack and the stack pointer (a1) decreased by 16.  Upon
exit, these registers and the stack pointer are restored, and ret.n is
executed to return to the caller (caller address is in a0).

Note that the ABI for the Xtensa emitters is non-windowing.
</content>
</entry>
<entry>
<title>py: Integrate Xtensa assembler into native emitter.</title>
<updated>2016-12-09T05:51:49+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-12-09T05:39:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=8e5aced1fd4845b23b203d8d15f9b34b6b022ceb'/>
<id>urn:sha1:8e5aced1fd4845b23b203d8d15f9b34b6b022ceb</id>
<content type='text'>
The config option MICROPY_EMIT_XTENSA can now be enabled to target the
Xtensa architecture with @micropython.native and @micropython.viper
decorators.
</content>
</entry>
<entry>
<title>py: Factor out common code from assemblers into asmbase.[ch].</title>
<updated>2016-11-27T22:24:50+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-11-27T22:24:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=612599587bef71e1deca9a77a8e2e16e69b045de'/>
<id>urn:sha1:612599587bef71e1deca9a77a8e2e16e69b045de</id>
<content type='text'>
All assemblers should "derive" from mp_asm_base_t.
</content>
</entry>
<entry>
<title>stmhal/moduselect: Move to extmod/ for reuse by other ports.</title>
<updated>2016-11-20T21:05:56+00:00</updated>
<author>
<name>Paul Sokolovsky</name>
<email>pfalcon@users.sourceforge.net</email>
</author>
<published>2016-11-20T20:49:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=8f5bc3ffc0603bbc338f9a24bd7d278b72d5c9d7'/>
<id>urn:sha1:8f5bc3ffc0603bbc338f9a24bd7d278b72d5c9d7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py/lexer: Rewrite mp_lexer_new_from_fd in terms of mp_reader.</title>
<updated>2016-11-16T07:13:51+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-11-16T07:12:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=66d955c218b66076a3d4300f70388c634c0d3099'/>
<id>urn:sha1:66d955c218b66076a3d4300f70388c634c0d3099</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py/lexer: Provide generic mp_lexer_new_from_file based on mp_reader.</title>
<updated>2016-11-16T07:13:51+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-11-16T05:25:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=e5ef15a9d7bead2a60009caedbc128a8906c7ecd'/>
<id>urn:sha1:e5ef15a9d7bead2a60009caedbc128a8906c7ecd</id>
<content type='text'>
If a port defines MICROPY_READER_POSIX or MICROPY_READER_FATFS then
lexer.c now provides an implementation of mp_lexer_new_from_file using
the mp_reader_new_file function.
</content>
</entry>
<entry>
<title>py/lexer: Rewrite mp_lexer_new_from_str_len in terms of mp_reader_mem.</title>
<updated>2016-11-16T07:13:50+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-11-16T05:22:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=511c083811ca538753dfccc7c908048b2c23bea4'/>
<id>urn:sha1:511c083811ca538753dfccc7c908048b2c23bea4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>py: Factor out persistent-code reader into separate files.</title>
<updated>2016-11-16T07:13:50+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-11-16T05:04:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=6b239c271c9c7041f9741c2a0f348f350808ad8a'/>
<id>urn:sha1:6b239c271c9c7041f9741c2a0f348f350808ad8a</id>
<content type='text'>
Implementations of persistent-code reader are provided for POSIX systems
and systems using FatFS.  Macros to use these are MICROPY_READER_POSIX and
MICROPY_READER_FATFS respectively.  If an alternative implementation is
needed then a port can define the function mp_reader_new_file.
</content>
</entry>
<entry>
<title>py: Factor persistent code load/save funcs into persistentcode.[ch].</title>
<updated>2016-11-16T05:14:14+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-11-16T00:55:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=6810f2c134f9329e9dc18f4e0d3a1936ca6d8011'/>
<id>urn:sha1:6810f2c134f9329e9dc18f4e0d3a1936ca6d8011</id>
<content type='text'>
</content>
</entry>
</feed>
