nxasm_x86.nx
buildroot/runtime/nxasm_x86.nx
about
dependencies 1 imports · 26 importers
diagram shows first 10 each side; +0 more imports, +16 more importers in the complete lists below.
imports: nxasm_x86_enc.nx
imported by: nx_pe_compile_win.nxnx_pe_compile_win_call.nxnx_pe_compile_win_dll.nxnx_pe_compile_win_fread.nxnx_pe_compile_win_gui.nxnx_pe_compile_win_halloc.nxnx_pe_compile_win_httpd.nxnx_pe_compile_win_index.nxnx_pe_compile_win_io.nxnx_pe_compile_win_iotcli.nxnx_pe_compile_win_mmap.nxnx_pe_compile_win_nishi.nxnx_pe_compile_win_organ.nxnx_pe_compile_win_sw.nxnx_pe_compile_win_table.nxnx_pe_compile_win_uiserve.nxnx_pe_compile_win_write.nxnx_pe_compile_win_wsa.nxnx_pe_dll_com_device.nxnx_pe_dll_d3d11.nxnx_pe_dll_d3d11ctx.nxnx_pe_dll_d3d11draw.nxnx_pe_dll_d3d11shade.nxnx_pe_dll_d3d11tex.nxnx_pe_dll_id3d11.nxnx_pe_natbw.nx
structs
| none |
consts
| 19 | const OP_KIND: i64 = 0 |
| 20 | const OP_REG: i64 = 1 |
| 21 | const OP_IMM: i64 = 2 |
| 22 | const OP_BASE: i64 = 3 |
| 23 | const OP_DISP: i64 = 4 |
| 24 | const OP_SYMOFF: i64 = 5 |
| 25 | const OP_SYMLEN: i64 = 6 |
| 26 | const OP_INDEX: i64 = 7 // SIB index reg (-1 = none); op arrays are mmap(72)=9 slots |
| 27 | const OP_SCALE: i64 = 8 // SIB scale value {1,2,4,8} |
| 28 | const K_REG: i64 = 0 |
| 29 | const K_IMM: i64 = 1 |
| 30 | const K_MEM: i64 = 2 |
| 31 | const K_XMM: i64 = 3 // an xmm-named register operand (distinct from a GPR so movq can pick the GPR<->xmm SSE form) |
| 32 | const K_SYM: i64 = 3 |
| 33 | const K_NONE: i64 = 4 |
| 34 | const K_IND: i64 = 5 |
| 35 | const K_RIP: i64 = 6 |
| 40 | const ASM_MAX_LABELS: i64 = 65536 |
| 321 | const ASM_LH_SIZE: i64 = 262144 // 2^18 = 4x ASM_MAX_LABELS load<=25% |
| 322 | const ASM_LH_MASK: i64 = 262143 |
functions
| 43 | func axc_is_space(c: i64) -> i64 |
| 48 | func axc_is_digit(c: i64) -> i64 |
| 52 | func axc_is_ident(c: i64) -> i64 |
| 62 | func axc_cstr_len(s: *u8) -> i64 called by 1: axc_tok_is |
| 69 | func axc_tok_is(src: *u8, off: i64, len: i64, lit: *u8) -> i64 called by 35: nxpcw_assemble_mainnxc_assemblepcwd_assemble_exportsfr_lbloffgi_lbloffnxh_assemble+29 calls 1: axc_cstr_len |
| 81 | func axc_slice_eq(src: *u8, a: i64, alen: i64, b: i64, blen: i64) -> i64 |
| 92 | func axc_reg_num(src: *u8, off: i64, len: i64) -> i64 |
| 175 | func axc_parse_int(src: *u8, pos: *i64, le: i64) -> i64 |
| 197 | func axc_parse_operand(src: *u8, pos: *i64, le: i64, op: *i64) -> i64 called by 1: axc_pass calls 6: axc_is_spaceaxc_is_identaxc_reg_numaxc_parse_intaxc_is_digitaxc_tok_is |
| 300 | func axc_label_find(src: *u8, lab_off: *i64, lab_len: *i64, lab_addr: *i64, calls 1: axc_slice_eq |
| 324 | func axc_lh_hash(src: *u8, off: i64, len: i64) -> i64 |
| 336 | func axc_lh_build(src: *u8, lab_off: *i64, lab_len: *i64, n_lab: i64, lh: *i64) -> i64 |
| 357 | func axc_label_find_h(src: *u8, lab_off: *i64, lab_len: *i64, lab_addr: *i64, |
| 378 | func axc_label_resolve(src: *u8, lab_off: *i64, lab_len: *i64, lab_addr: *i64, |
| 391 | func axc_alu(out: *u8, op0: *i64, op1: *i64, rr_op: i64, imm_ext: i64) -> i64 |
| 397 | func axc_jcc_cc(src: *u8, off: i64, len: i64) -> i64 |
| 408 | func axc_setcc_cc(src: *u8, off: i64, len: i64) -> i64 |
| 420 | func axc_cmovcc_cc(src: *u8, off: i64, len: i64) -> i64 |
| 436 | func x86_atomic_rm(out: *u8, is0f: i64, opcode: i64, reg: i64, base: i64) -> i64 called by 1: axc_emit |
| 448 | func x86_mfence_enc(out: *u8) -> i64 { out[0] = 0x0f as u8; out[1] = 0xae as u8; out[2] = 0xf0 as u8; return 3 } called by 1: axc_emit |
| 454 | func axc_emit(out: *u8, src: *u8, mn: i64, mnl: i64, op0: *i64, op1: *i64, op2: *i64, |
| 844 | func axc_emit_bytes(src: *u8, start: i64, le: i64, dest: *u8, dest_off: i64, do_emit: i64) -> i64 |
| 877 | func axc_apply_section(src: *u8, t0: i64, tlen: i64, j: i64, le: i64) -> i64 |
| 895 | func axc_pass(src: *u8, n: i64, out: *u8, text_size: i64, pass: i64, |
| 1056 | func nxasm_x86_assemble(src: *u8, n: i64, out: *u8, out_cap: i64, p_entry: *i64) -> i64 |