Loading target-sparc/op.cdeleted 100644 → 0 +0 −38 Original line number Diff line number Diff line /* SPARC micro operations Copyright (C) 2003 Thomas M. Ogrisegg <tom@fnord.at> This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "exec.h" #include "helper.h" /* Load and store */ #define MEMSUFFIX _raw #include "op_mem.h" #if !defined(CONFIG_USER_ONLY) #define MEMSUFFIX _user #include "op_mem.h" #define MEMSUFFIX _kernel #include "op_mem.h" #ifdef TARGET_SPARC64 #define MEMSUFFIX _hypv #include "op_mem.h" #endif #endif target-sparc/op_mem.hdeleted 100644 → 0 +0 −51 Original line number Diff line number Diff line #ifdef TARGET_ABI32 #define ADDR(x) ((x) & 0xffffffff) #else #define ADDR(x) (x) #endif #ifdef __i386__ /*** Integer store ***/ void OPPROTO glue(op_std, MEMSUFFIX)(void) { uint64_t tmp = ((uint64_t)T1 << 32) | (uint64_t)(T2 & 0xffffffff); glue(stq, MEMSUFFIX)(ADDR(T0), tmp); } #endif /* __i386__ */ /*** Floating-point store ***/ void OPPROTO glue(op_stdf, MEMSUFFIX) (void) { glue(stfq, MEMSUFFIX)(ADDR(T0), DT0); } /*** Floating-point load ***/ void OPPROTO glue(op_lddf, MEMSUFFIX) (void) { DT0 = glue(ldfq, MEMSUFFIX)(ADDR(T0)); } #if defined(CONFIG_USER_ONLY) void OPPROTO glue(op_ldqf, MEMSUFFIX) (void) { // XXX add 128 bit load CPU_QuadU u; u.ll.upper = glue(ldq, MEMSUFFIX)(ADDR(T0)); u.ll.lower = glue(ldq, MEMSUFFIX)(ADDR(T0 + 8)); QT0 = u.q; } void OPPROTO glue(op_stqf, MEMSUFFIX) (void) { // XXX add 128 bit store CPU_QuadU u; u.q = QT0; glue(stq, MEMSUFFIX)(ADDR(T0), u.ll.upper); glue(stq, MEMSUFFIX)(ADDR(T0 + 8), u.ll.lower); } #endif #undef MEMSUFFIX Loading
target-sparc/op.cdeleted 100644 → 0 +0 −38 Original line number Diff line number Diff line /* SPARC micro operations Copyright (C) 2003 Thomas M. Ogrisegg <tom@fnord.at> This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "exec.h" #include "helper.h" /* Load and store */ #define MEMSUFFIX _raw #include "op_mem.h" #if !defined(CONFIG_USER_ONLY) #define MEMSUFFIX _user #include "op_mem.h" #define MEMSUFFIX _kernel #include "op_mem.h" #ifdef TARGET_SPARC64 #define MEMSUFFIX _hypv #include "op_mem.h" #endif #endif
target-sparc/op_mem.hdeleted 100644 → 0 +0 −51 Original line number Diff line number Diff line #ifdef TARGET_ABI32 #define ADDR(x) ((x) & 0xffffffff) #else #define ADDR(x) (x) #endif #ifdef __i386__ /*** Integer store ***/ void OPPROTO glue(op_std, MEMSUFFIX)(void) { uint64_t tmp = ((uint64_t)T1 << 32) | (uint64_t)(T2 & 0xffffffff); glue(stq, MEMSUFFIX)(ADDR(T0), tmp); } #endif /* __i386__ */ /*** Floating-point store ***/ void OPPROTO glue(op_stdf, MEMSUFFIX) (void) { glue(stfq, MEMSUFFIX)(ADDR(T0), DT0); } /*** Floating-point load ***/ void OPPROTO glue(op_lddf, MEMSUFFIX) (void) { DT0 = glue(ldfq, MEMSUFFIX)(ADDR(T0)); } #if defined(CONFIG_USER_ONLY) void OPPROTO glue(op_ldqf, MEMSUFFIX) (void) { // XXX add 128 bit load CPU_QuadU u; u.ll.upper = glue(ldq, MEMSUFFIX)(ADDR(T0)); u.ll.lower = glue(ldq, MEMSUFFIX)(ADDR(T0 + 8)); QT0 = u.q; } void OPPROTO glue(op_stqf, MEMSUFFIX) (void) { // XXX add 128 bit store CPU_QuadU u; u.q = QT0; glue(stq, MEMSUFFIX)(ADDR(T0), u.ll.upper); glue(stq, MEMSUFFIX)(ADDR(T0 + 8), u.ll.lower); } #endif #undef MEMSUFFIX