Statistics
| Branch: | Revision:

root / target-alpha / op_helper.c @ b758aca1

History | View | Annotate | Download (28 kB)

# Date Author Comment
508b43ea 05/31/2011 08:18 pm Richard Henderson

target-alpha: Merge HW_REI and HW_RET implementations.

Signed-off-by: Richard Henderson <>

129d8aa5 05/31/2011 08:18 pm Richard Henderson

target-alpha: Rationalize internal processor registers.

Delete all the code that tried to emulate the real IPRs of some
unnamed CPU. Replace those with just 3 slots that we can use to
communicate trap information between the helper functions that
signal exceptions and the OS trap handler....

2374e73e 05/31/2011 08:18 pm Richard Henderson

target-alpha: Fix translation of PALmode memory insns.

All of the "raw" memory accesses should be "phys" instead. Fix
some confusion about argument ordering of the store routines.
Fix the implementation of store-conditional.

Delete the "alt-mode" helpers. Because we only implement two...

618ba8e6 04/20/2011 11:37 am Stefan Weil

Remove unused function parameter from cpu_restore_state

The previous patch removed the need for parameter puc.
Is is now unused, so remove it.

Cc: Aurelien Jarno <>
Reviewed-by: Peter Maydell <>
Signed-off-by: Stefan Weil <>

a4d2d1a0 04/17/2011 09:32 pm Aurelien Jarno

target-alpha: use new float64_unordered_quiet() function

Use float64_unordered_quiet() in helper_cmptun() instead of doing the
the comparison manually.

According to the "Alpha Compiler Writer's Guide", we should use the
_quiet version here, as CMPTUN and CMPTEQ should generate InvalidOp...

211315fb 04/17/2011 09:32 pm Aurelien Jarno

softfloat: rename float*_eq() into float*_eq_quiet()

float*_eq functions have a different semantics than other comparison
functions. Fix that by first renaming float*_quiet() into float*_eq_quiet().

Note that it is purely mechanical, and the behaviour should be unchanged....

18569871 01/02/2011 12:15 pm Peter Maydell

softfloat: Rename float*_is_nan() functions to float*_is_quiet_nan()

The softfloat functions float*_is_nan() were badly misnamed,
because they return true only for quiet NaNs, not for all NaNs.
Rename them to float*_is_quiet_nan() to more accurately reflect...

18f8e2c0 04/27/2010 06:50 am Richard Henderson

target-alpha: Implement RPCC.

A minimal implementation that more or less corresponds to the
user-level version used by target-i386. More hoops will want
to be jumped through when alpha gets system-level emulation.

Signed-off-by: Richard Henderson <>...

dc96be4b 04/27/2010 06:50 am Richard Henderson

target-alpha: Implement cpys{, n, e} inline.

Signed-off-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

ac316ca4 04/27/2010 06:50 am Richard Henderson

target-alpha: Implement rs/rc properly.

This is a per-cpu flag; there's no need for a spinlock of any kind.

We were also failing to manipulate the flag with $31 as a target reg
and failing to clear the flag on execution of a return-from-interrupt
instruction....

593f17e5 04/27/2010 06:50 am Richard Henderson

target-alpha: Implement cvtlq inline.

It's a simple shift and mask sequence.

Signed-off-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

6910b8f6 04/27/2010 06:50 am Richard Henderson

target-alpha: Fix load-locked/store-conditional.

Use an exception plus start_exclusive to implement the compare-and-swap.
This follows the example set by the MIPS and PPC ports.

Signed-off-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

735cf45f 04/10/2010 03:44 am Richard Henderson

target-alpha: Implement cvtql inline.

It's a simple mask and shift sequence.
Also, fix a typo in the actual masks used.

Signed-off-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

f24518b5 02/28/2010 06:45 pm Richard Henderson

target-alpha: Implement IEEE FP qualifiers.

IEEE FP instructions are split up so that the rounding mode
coming from the instruction and exceptions (both masking and
delivery) are handled external to the base FP operation.
FP exceptions are properly raised for non-finite inputs to...

866be65d 02/24/2010 12:36 am Richard Henderson

target-alpha: Clean up arithmetic traps.

Replace the EXCP_ARITH_OVERFLOW placeholder with the complete
set of bits from the EXC_SUM IPR. Use them in the existing
places where we raise arithmetic exceptions.

Signed-off-by: Richard Henderson <>...

c2c789cf 02/24/2010 12:36 am Richard Henderson

target-alpha: Mark helper_excp as NORETURN.

Signed-off-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

68bd052e 12/17/2009 07:12 pm Richard Henderson

target-alpha: Fix cvtlq.

We were missing the 0xc0000000 mask, leading to incorrect results.

Signed-off-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

d0af5445 12/17/2009 07:12 pm Richard Henderson

target-alpha: Fix float32_to_s vs zero exponent.

There was a bug in float32_to_s that incorrectly mapped a zero exponent
to 0x38. This meant 0.0f != 0. At the same time, fix a generic type
punning bug in helper_memory_to_s and helper_s_to_memory.

Signed-off-by: Richard Henderson <>...

dbb30fe6 12/17/2009 07:12 pm Richard Henderson

target-alpha: Implement fp branch/cmov inline.

The old fcmov implementation had a typo:
- tcg_gen_mov_i64(cpu_fir[rc], cpu_fir[ra]);
which moved the condition, not the second source, to the destination.

But it's also easy to implement the simplified fp comparison inline....

248c42f3 12/13/2009 10:36 pm Richard Henderson

target-alpha: Expand ins*l inline.

Similar in difficulty to ext*l, already expanded.

Signed-off-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

14ab1634 12/13/2009 10:36 pm Richard Henderson

target-alpha: Expand msk*l inline.

Similar in difficulty to ext*l, already expanded.

Signed-off-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

ffec44f1 12/13/2009 10:36 pm Richard Henderson

target-alpha: Expand msk*h inline.

Signed-off-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

50eb6e5c 12/13/2009 10:36 pm Richard Henderson

target-alpha: Expand ins*h inline.

Signed-off-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

13e4df99 12/13/2009 10:26 pm Richard Henderson

target-alpha: Implement missing MVI instructions.

Signed-off-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

19188121 12/13/2009 09:32 pm Richard Henderson

target-alpha: Remove bogus DO_TB_FLUSH code from translator.

Signed-off-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

ba0e276d 12/13/2009 09:32 pm Richard Henderson

target-alpha: Fixes for alpha-linux syscalls.

1. Add correct definitions of error numbers.
2. Implement SYS_osf_sigprocmask
3. Implement SYS_osf_get/setsysinfo for IEEE_FP_CONTROL.

This last requires exposing the FPCR value to do_syscall.
Since this value is actually split up into the float_status,...

c227f099 10/02/2009 12:12 am Anthony Liguori

Revert "Get rid of _t suffix"

In the very least, a change like this requires discussion on the list.

The naming convention is goofy and it causes a massive merge problem. Something
like this must be presented on the list first so people can provide input...

99a0949b 10/01/2009 09:45 pm malc

Get rid of _t suffix

Some not so obvious bits, slirp and Xen were left alone for the time
being.

Signed-off-by: malc <>

6f4fc367 09/21/2009 09:39 pm Blue Swirl

Add 'static' to please Sparse

Signed-off-by: Blue Swirl <>

636aa200 08/16/2009 12:06 pm Blue Swirl

Replace always_inline with inline

We define inline as always_inline.

Signed-off-by: Blue Swirl <>

8167ee88 07/16/2009 11:47 pm Blue Swirl

Update to a hopefully more future proof FSF address

Signed-off-by: Blue Swirl <>

1a1f7dbc 04/11/2009 12:27 am aurel32

target-alpha: remove amask helper

The direct use of helper_amask in translate.c was bogus (as env is not
assigned). Directly code amask in tcg and remove the helper.

Signed-off-by: Tristan Gingold <>
Signed-off-by: Aurelien Jarno <>...

8579095b 04/11/2009 12:27 am aurel32

target-alpha: remove helper_load_implver

There is no need to use an helper. Directly load the value with tcg code.

Signed-off-by: Tristan Gingold <>
Signed-off-by: Aurelien Jarno <>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7074 c046a42c-6fe2-441c-8c8c-71466251a162

ecbb5ea1 04/11/2009 12:27 am aurel32

target-alpha: overflow condition for sublv and subqv

The conditions to detect overflow in sub operations was wrong.

This patch is necessary to boot Tru64.

Signed-off-by: Tristan Gingold <>
Signed-off-by: Aurelien Jarno <>...

75fc9c0c 03/29/2009 02:14 am aurel32

target-alpha: tb_flush helper should flush the tb (and not the tlb).

Looks to be a typo fix.

Signed-off-by: Tristan Gingold <>
Signed-off-by: Aurelien Jarno <>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6926 c046a42c-6fe2-441c-8c8c-71466251a162

fad6cb1a 01/05/2009 12:05 am aurel32

Update FSF address in GPL/LGPL boilerplate

The attached patch updates the FSF address in the GPL/LGPL boilerplate
in most GPL/LGPLed files, and also in COPYING.LIB.

Signed-off-by: Stuart Brady <>
Signed-off-by: Aurelien Jarno <>...

e2eb2798 11/22/2008 01:49 am aurel32

target-alpha: use CPU_Float/CPU_Double instead of ugly casts

Signed-off-by: Aurelien Jarno <>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5771 c046a42c-6fe2-441c-8c8c-71466251a162

a7812ae4 11/17/2008 04:43 pm pbrook

TCG variable type checking.

Signed-off-by: Paul Brook <>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5729 c046a42c-6fe2-441c-8c8c-71466251a162

970d622e 11/10/2008 01:10 pm aurel32

target-alpha: fix cmpbge instruction

The cmpbge instruction should compare all 8 bytes of one 64-bit value with
another. However, we were looping with a < 7 condition which was skipping
the top byte. So if we were doing a compare where the top byte was...

8bb6e981 09/30/2008 09:45 am aurel32

target-alpha: convert palcode ops to TCG

Signed-off-by: Aurelien Jarno <>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5360 c046a42c-6fe2-441c-8c8c-71466251a162

f18cd223 09/29/2008 08:21 pm aurel32

target-alpha: convert FP ops to TCG

- Convert FP ops to TCG
- Fix S format
- Implement F and G formats (untested)
- Fix MF_FPCR an MT_FPCR
- Fix FTOIS, FTOIT, ITOFF, ITOFS, ITOFT
- Fix CPYSN, CPYSE

Signed-off-by: Aurelien Jarno <>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5354 c046a42c-6fe2-441c-8c8c-71466251a162

04acd307 09/18/2008 04:45 pm aurel32

target-alpha: convert remaining arith3 functions to TCG

Signed-off-by: Aurelien Jarno <>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5254 c046a42c-6fe2-441c-8c8c-71466251a162

6ad02592 09/18/2008 03:02 am aurel32

target-alpha: switch a few helpers to TCG

Switch a few helpers to TCG and implement RC and RS instructions

Signed-off-by: Aurelien Jarno <>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5247 c046a42c-6fe2-441c-8c8c-71466251a162

b3249f63 09/18/2008 01:04 am aurel32

target-alpha: convert byte manipulation instructions to TCG

Signed-off-by: Aurelien Jarno <>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5246 c046a42c-6fe2-441c-8c8c-71466251a162

ae8ecd42 09/17/2008 01:44 am aurel32

target-alpha: convert arith2 instructions to TCG

Replace gen_arith2 generic macro and dyngon ops by instruction specific
optimized TCG code.

Signed-off-by: Aurelien Jarno <>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5235 c046a42c-6fe2-441c-8c8c-71466251a162

9b7b85d2 05/25/2008 03:36 am pbrook

Fix off-by-one unwinding error.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4570 c046a42c-6fe2-441c-8c8c-71466251a162

2d8ee4e7 12/01/2007 10:18 am blueswir1

Fix Sparc host compile problem reported by Shaddy Baddah

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3750 c046a42c-6fe2-441c-8c8c-71466251a162

44f8625d 11/11/2007 02:35 pm bellard

fixed invalid type

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3582 c046a42c-6fe2-441c-8c8c-71466251a162

273af660 10/29/2007 04:39 pm ths

Adjust s390 addresses (the MSB is defined as "to be ignored").

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3486 c046a42c-6fe2-441c-8c8c-71466251a162

603fccce 10/28/2007 02:54 pm j_mayer

Make Alpha and PowerPC targets use shared helpers
for clz, clo, ctz, cto and ctpop.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3466 c046a42c-6fe2-441c-8c8c-71466251a162

f071b4d3 10/28/2007 03:56 am j_mayer

Alpha coding style and inlining fixes.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3462 c046a42c-6fe2-441c-8c8c-71466251a162

e14fe0a9 10/26/2007 02:34 am j_mayer

Use host-utils for Alpha 64x64 bits multiplications.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3443 c046a42c-6fe2-441c-8c8c-71466251a162

b1806c9e 10/14/2007 11:18 am j_mayer

Generate micro-ops for Alpha executive and supervisor modes.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3385 c046a42c-6fe2-441c-8c8c-71466251a162

6ebbf390 10/14/2007 10:07 am j_mayer

Replace is_user variable with mmu_idx in softmmu core,
allowing support of more than 2 mmu access modes.
Add backward compatibility is_user variable in targets code when needed.
Implement per target cpu_mmu_index function, avoiding duplicated code
and #ifdef TARGET_xxx in softmmu core functions....

5fafdf24 09/17/2007 12:08 am ths

find -type f | xargs sed -i 's/[\t ]$//g' # on most files

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3173 c046a42c-6fe2-441c-8c8c-71466251a162

4c9649a9 04/05/2007 09:58 am j_mayer

Alpha architecture emulation core.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2597 c046a42c-6fe2-441c-8c8c-71466251a162