summary refs log tree commit diff
path: root/to-consider.e
blob: 109464bce4ccf2e7135755cd06d1a60640749921 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
~   This file is for stuff that should probably be deleted after flatassembler
~ is removed, but is being kept here temporarily so that those decisions can
~ be made in an organized fashion.


~   In the interests of reducing our executable's size, since a lot of it goes
~ to pack* invocations, we define words that combine lit with pack*. This
~ shaves roughly 700 bytes as of when it was added.
~
~ TODO are these really used anymore? also, they're the only thing beforenext
~ is used for. note that they can't go in core.e because ' is not compatible
~ with the label transform.
~
~ (output point, value -- output point)
: litpack64
  [ here @
    lods64
    :rax push-reg64
    ' pack64 entry-to-execution-token pack-beforenext
    here ! ] ;asm
: litpack32
  [ here @
    lods64
    :rax push-reg64
    ' pack32 entry-to-execution-token pack-beforenext
    here ! ] ;asm
: litpack16
  [ here @
    lods64
    :rax push-reg64
    ' pack16 entry-to-execution-token pack-beforenext
    here ! ] ;asm
: litpack8
  [ here @
    lods64
    :rax push-reg64
    ' pack8 entry-to-execution-token pack-beforenext
    here ! ] ;asm