|
|
1.1 ! root 1: /* ! 2: * Tiny Code Generator for QEMU ! 3: * ! 4: * Copyright (c) 2008 Fabrice Bellard ! 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: #include <stdarg.h> ! 25: #include <stdlib.h> ! 26: #include <stdio.h> ! 27: #include <string.h> ! 28: #include <inttypes.h> ! 29: ! 30: #include "config.h" ! 31: #include "osdep.h" ! 32: #include "cpu.h" // For TARGET_LONG_BITS ! 33: #include "tcg.h" ! 34: ! 35: int64_t tcg_helper_shl_i64(int64_t arg1, int64_t arg2) ! 36: { ! 37: return arg1 << arg2; ! 38: } ! 39: ! 40: int64_t tcg_helper_shr_i64(int64_t arg1, int64_t arg2) ! 41: { ! 42: return (uint64_t)arg1 >> arg2; ! 43: } ! 44: ! 45: int64_t tcg_helper_sar_i64(int64_t arg1, int64_t arg2) ! 46: { ! 47: return arg1 >> arg2; ! 48: } ! 49: ! 50: int64_t tcg_helper_div_i64(int64_t arg1, int64_t arg2) ! 51: { ! 52: return arg1 / arg2; ! 53: } ! 54: ! 55: int64_t tcg_helper_rem_i64(int64_t arg1, int64_t arg2) ! 56: { ! 57: return arg1 % arg2; ! 58: } ! 59: ! 60: uint64_t tcg_helper_divu_i64(uint64_t arg1, uint64_t arg2) ! 61: { ! 62: return arg1 / arg2; ! 63: } ! 64: ! 65: uint64_t tcg_helper_remu_i64(uint64_t arg1, uint64_t arg2) ! 66: { ! 67: return arg1 % arg2; ! 68: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.