|
|
1.1 ! root 1: /* ! 2: * Tiny Code Generator for QEMU ! 3: * ! 4: * Copyright (c) 2009 Ulrich Hecht <[email protected]> ! 5: * ! 6: * Permission is hereby granted, free of charge, to any person obtaining a copy ! 7: * of this software and associated documentation files (the "Software"), to deal ! 8: * in the Software without restriction, including without limitation the rights ! 9: * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ! 10: * copies of the Software, and to permit persons to whom the Software is ! 11: * furnished to do so, subject to the following conditions: ! 12: * ! 13: * The above copyright notice and this permission notice shall be included in ! 14: * all copies or substantial portions of the Software. ! 15: * ! 16: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ! 17: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ! 18: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ! 19: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ! 20: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ! 21: * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN ! 22: * THE SOFTWARE. ! 23: */ ! 24: ! 25: static const int tcg_target_reg_alloc_order[] = { ! 26: }; ! 27: ! 28: static const int tcg_target_call_iarg_regs[] = { ! 29: }; ! 30: ! 31: static const int tcg_target_call_oarg_regs[] = { ! 32: }; ! 33: ! 34: static void patch_reloc(uint8_t *code_ptr, int type, ! 35: tcg_target_long value, tcg_target_long addend) ! 36: { ! 37: tcg_abort(); ! 38: } ! 39: ! 40: static inline int tcg_target_get_call_iarg_regs_count(int flags) ! 41: { ! 42: tcg_abort(); ! 43: return 0; ! 44: } ! 45: ! 46: /* parse target specific constraints */ ! 47: static int target_parse_constraint(TCGArgConstraint *ct, const char **pct_str) ! 48: { ! 49: tcg_abort(); ! 50: return 0; ! 51: } ! 52: ! 53: /* Test if a constant matches the constraint. */ ! 54: static inline int tcg_target_const_match(tcg_target_long val, ! 55: const TCGArgConstraint *arg_ct) ! 56: { ! 57: tcg_abort(); ! 58: return 0; ! 59: } ! 60: ! 61: /* load a register with an immediate value */ ! 62: static inline void tcg_out_movi(TCGContext *s, TCGType type, ! 63: int ret, tcg_target_long arg) ! 64: { ! 65: tcg_abort(); ! 66: } ! 67: ! 68: /* load data without address translation or endianness conversion */ ! 69: static inline void tcg_out_ld(TCGContext *s, TCGType type, int arg, ! 70: int arg1, tcg_target_long arg2) ! 71: { ! 72: tcg_abort(); ! 73: } ! 74: ! 75: static inline void tcg_out_st(TCGContext *s, TCGType type, int arg, ! 76: int arg1, tcg_target_long arg2) ! 77: { ! 78: tcg_abort(); ! 79: } ! 80: ! 81: static inline void tcg_out_op(TCGContext *s, int opc, ! 82: const TCGArg *args, const int *const_args) ! 83: { ! 84: tcg_abort(); ! 85: } ! 86: ! 87: void tcg_target_init(TCGContext *s) ! 88: { ! 89: /* gets called with KVM */ ! 90: } ! 91: ! 92: void tcg_target_qemu_prologue(TCGContext *s) ! 93: { ! 94: /* gets called with KVM */ ! 95: } ! 96: ! 97: static inline void tcg_out_mov(TCGContext *s, int ret, int arg) ! 98: { ! 99: tcg_abort(); ! 100: } ! 101: ! 102: static inline void tcg_out_addi(TCGContext *s, int reg, tcg_target_long val) ! 103: { ! 104: tcg_abort(); ! 105: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.