diff options
| author | grischka <grischka> | 2009-12-19 22:08:37 +0100 |
|---|---|---|
| committer | grischka <grischka> | 2009-12-19 22:16:20 +0100 |
| commit | 1308e8ebcfba43b4b96b7ef32f1a177b1168665d (patch) | |
| tree | eed594426e6d4d6f266be4cc0cfe0cde9627ad43 /i386-gen.c | |
| parent | e81569bc70697d4380e7456e7938dec29c91af73 (diff) | |
| download | tinycc-1308e8ebcfba43b4b96b7ef32f1a177b1168665d.tar.gz tinycc-1308e8ebcfba43b4b96b7ef32f1a177b1168665d.tar.bz2 | |
integrate x86_64-asm.c into i386-asm.c
Also, disable 16bit support for now as it causes bugs
in 32bit mode. #define I386_ASM_16 if you want it.
Diffstat (limited to 'i386-gen.c')
| -rw-r--r-- | i386-gen.c | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -109,6 +109,12 @@ void o(unsigned int c) } } +void gen_le16(int v) +{ + g(v); + g(v >> 8); +} + void gen_le32(int c) { g(c); @@ -161,6 +167,13 @@ static void gen_addr32(int r, Sym *sym, int c) gen_le32(c); } +static void gen_addrpc32(int r, Sym *sym, int c) +{ + if (r & VT_SYM) + greloc(cur_text_section, sym, ind, R_386_PC32); + gen_le32(c - 4); +} + /* generate a modrm reference. 'op_reg' contains the addtionnal 3 opcode bits */ static void gen_modrm(int op_reg, int r, Sym *sym, int c) |
